Фон неймана 2 поколение. Принципы фон Неймана построения электронно-вычислительной машины

Архитектура ЭВМ и принципы фон Неймана

Термин «архитектура» используется для описания принципа действия, конфигурации и взаимного соединения основных логических узлов ЭВМ. Архитектура – это многоуровневая иерархия аппаратно-программных средств, из которых строится ЭВМ.

Основы учения об архитектуре ЭВМ заложил выдающийся американский математик Джон фон Нейман. Первая ЭВМ "Эниак" была создана в США в 1946 г. В группу создателей входил фон Нейман , который и предложил основные принципы построения ЭВМ : переход к двоичной системе счисления для представления информации и принцип хранимой программы.

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

Основные принципы построения ЭВМ :

1. Любую ЭВМ образуют три основных компонента: процессор, память и устр. ввода-вывода (УВВ).

2. Информация, с которой работает ЭВМ, делится на два типа:

    набор команд по обработке (программы); данные подлежащие обработке.

3. И команды, и данные вводятся в память (ОЗУ) – принцип хранимой программы .

4. Руководит обработкой процессор, устройство управления (УУ) которого выбирает команды из ОЗУ и организует их выполнение, а арифметико-логическое устройство (АЛУ) проводит арифметические и логические операции над данными.


5. С процессором и ОЗУ связаны устройства ввода-вывода (УВВ).

Фон Нейман не только выдвинул основополагающие принципы логического устройства ЭВМ, но и предложил структуру, которая воспроизводилась в течение первых двух поколений ЭВМ.

Внешнее запоминающее устройство (ВЗУ)

Рис. 1. Архитектура ЭВМ Конец формы,

Оперативное запоминающее устройство (ОЗУ)

построенной на принципах

фон Неймана

- направление потоков информации; - направление управляющих сигналов от процессора к остальным узлам ЭВМ

Разработанные фон Нейманом основы архитектуры вычислительных устройств оказались настолько фундаментальными, что получили в литературе название «фон Неймановской архитектуры». Подавляющее большинство ВМ на сегодняшний день – фон-неймановские машины .

Появление третьего поколения ЭВМ было обусловлено переходом от транзисторов к интегральным микросхемам, что привело к росту быстродействия процессора. Теперь процессор был вынужден простаивать, ожидая информации от более медленных устройств ввода-вывода, и это снижало эффективность работы всей ЭВМ в целом. Для решения этой проблемы были созданы специальные схемы управления работой внешних устройств, или просто контроллеры .

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

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

Как работает системная шина? Мы уже говорили, что единичные и нулевые биты существуют только в головах программистов. Для процессора реальны только напряжения на его контактах. Каждый контакт соответствует одному биту, и процессору нужно различать только две градации напряжения: есть-нет, высокое-низкое. Поэтому адрес для процессора – это последовательность напряжений на специальных контактах, называемых шиной адреса. Можно представить себе, то после того, как на контактах шины адреса выставляются напряжения, на контактах шины данных появляются напряжения, кодирующие хранящееся по указанному адресу число. Эта картина очень грубая, потому что для извлечения данных из памяти необходимо время. Чтобы не запутаться, работой процессора управляет специальный тактовый генератор. Он вырабатывает импульсы, которые делят работу процессора на отдельные шажки. Единицей времени процессора служит один такт, т. е. промежуток между двумя импульсами тактового генератора.

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

Системная шина характеризуется тактовой частотой и разрядностью. Количество одновременно передаваемых по шине бит называется разрядностью шины . Тактовая частота характеризует число элементарных операций по передаче данных в 1 секунду. Разрядность шины измеряется в битах, тактовая частота – в мегагерцах.


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

Рис. 2. Схема устройства компьютера, построенного по магистральному принципу

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

Конфигурацией компьютера называют фактический набор компонентов ЭВМ, которые составляют компьютер. Принцип открытой архитектуры позволяет менять состав устройств ЭВМ. К информационной магистрали могут подключаться дополнительные периферийные устройства, одни модели устройств могут заменяться другими.

Аппаратное подключение периферийного устройства к магистрали на физическом уровне осуществляется через специальный блок - контроллер (другие названия - адаптер, плата, карта). Для установки контроллеров на материнской плате имеются специальные разъёмы - слоты .

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

Связь компьютера с внешними устройствами осуществляется через порты – специальные разъёмы на задней панели компьютера. Различают последовательные и параллельные порты. Последовательные (COM – порты) служат для подключения манипуляторов, модема и передают небольшие объёмы информации на большие расстояния. Параллельные (LPT - порты) служат для подключения принтеров, сканеров и передают большие объёмы информации на небольшие расстояния. В последнее время широкое распространение получили последовательные универсальные порты (USB), к которым можно подключать различные устройства.

Основы учения об архитектуре вычислительных машин заложил выдающийся американский математик Джон фон Нейман. Он подключился к созданию первой в мире ламповой ЭВМ ENIAC в 1944 г., когда ее конструкция была уже выбрана. В процессе работы во время многочисленных дискуссий со своими коллегами Г. Голдстайном и А. Берксом фон Нейман высказал идею принципиально новой ЭВМ. В 1946 г. ученые изложили свои принципы построения вычислительных машин в ставшей классической статье "Предварительное рассмотрение логической конструкции электронно-вычислительного устройства". С тех пор прошло полвека, но выдвинутые в ней положения сохраняют актуальность и сегодня.

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

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

Фон Нейман не только выдвинул основополагающие принципы логического устройства ЭВМ, но и предложил ее структуру, которая воспроизводилась в течение первых двух поколений ЭВМ. Основными блоками по Нейману являются устройство управления (УУ) и арифметико-логическое устройство (АЛУ) (обычно объединяемые в центральный процессор), память, внешняя память, устройства ввода и вывода. Следует отметить, что внешняя память отличается от устройств ввода и вывода тем, что данные в нее заносятся в виде, удобном компьютеру, но недоступном для непосредственного восприятия человеком. Так, накопитель на магнитных дисках относится к внешней памяти, а клавиатура - устройство ввода, дисплей и печать - устройства вывода.

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

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

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

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

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

Принципы фон Неймана

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

Принцип адресности- Структурно основная память состоит из пронумерованных ячеек, причем процессору в произвольный момент доступна любая ячейка. Двоичные коды команд и данных разделяются на единицы информации, называемые словами, и хранятся в ячейках памяти, а для доступа к ним используются номера соответствующих ячеек -- адреса.

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

Принцип двоичного кодирования - Согласно этому принципу, вся информация, как данные, так и команды, кодируются двоичными цифрами 0 и 1. Каждый тип информации представляется двоичной последовательностью и имеет свой формат. Последовательность битов в формате, имеющая определенный смысл, называется полем. В числовой информации обычно выделяют поле знака и поле значащих разрядов. В формате команды можно выделить два поля: поле кода операции и поле адресов.

В 1946 году Д. фон Нейман, Г. Голдстайн и А. Беркс в своей совместной статье изложили новые принципы построения и функционирования ЭВМ. В дальнейшем на основе этих принципов производились первые два поколения компьютеров. В более поздних поколениях происходили некоторые изменения, хотя принципы Неймана актуальны и сегодня.

По сути, Нейману удалось обобщить научные разработки и открытия многих других ученых и сформулировать на их основе принципиально новое.

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

Принцип однородности памяти: программы и данные хранятся в одной и той же памяти.

Принцип адресности: структурно основная память состоит из пронумерованных ячеек. Процессору в произвольный момент времени доступна любая ячейка.

Компьютеры, построенные на перечисленных принципах, относятся к типу фон – неймановских.

Самым главным следствием этих принципов можно назвать то, что теперь программа уже не была постоянной частью машины (как например, у калькулятора). Программу стало возможно легко изменить. Для сравнения, программа компьютера ENIAC (где не было хранимой в памяти программы) определялась специальными перемычками на панели. Чтобы перепрограммировать машину (установить перемычки по-другому) мог потребоваться далеко не один день. И хотя программы для современных компьютеров могут писаться годы, однако они работают на миллионах компьютеров, установка программ не требует значительных временных затрат.

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

В начале 1956 г. по инициативе академика С.Л. Соболева, заведующего кафедрой вычислительной математики на механико-математическом факультете Московского университета, в вычислительном центре МГУ был учрежден отдел электроники и стал работать семинар с целью создать практичный образец цифровой вычислительной машины, предназначенной для использования в вузах, а также в лабораториях и конструкторских бюро промышленных предприятий. Требовалось разработать малую ЭВМ, простую в освоении и применениях, надежную, недорогую и вместе с тем эффективную в широком спектре задач. Обстоятельное изучение в течение года имевшихся в то время вычислительных машин и технических возможностей их реализации привело к нестандартному решению употребить в создаваемой машине не двоичный, а троичный симметричный код, реализовав уравновешенную систему счисления, которую Д. Кнут двадцать лет спустя назовет быть может, самой изящной и как затем стало известно, достоинства которой были выявлены К. Шенноном в 1950г. В отличие от общепринятого в современных компьютерах двоичного кода с цифрами 0, 1, арифметически неполноценного вследствие невозможности непосредственного представления в нем отрицательных чисел, троичный код с цифрами -1, 0, 1 обеспечивает оптимальное построение арифметики чисел со знаком. Троичная система счисления основана на том же позиционном принципе кодирования чисел, что и принятая в современных компьютерах двоичная система, однако вес i -й позиции (разряда) в ней равен не 2 i , а 3 i . При этом сами разряды не двухзначны (не биты), а трехзначны (триты) - помимо 0 и 1 допускают третье значение, которым в симметричной системе служит -1, благодаря чему единообразно представимы как положительные, так и отрицательные числа. Значение n -тритного целого числа N определяется аналогично значению n -битного:

где а i ∈ {1, 0, -1} - значение цифры i -го разряда.

В апреле 1960 г. были проведены междуведомственные испытания опытного образца вычислительной машины, названной «Сетунь».По результатам этих испытаний “Сетунь” была признана первым действующим образцом универсальной вычислительной машины на безламповых элементах, которому свойственны “высокая производительность, достаточная надежность, малые габариты и простота технического обслуживания”.“Сетунь”, благодаря естественности троичного симметричного кода, оказалась поистине универсальным, несложно программируемым и весьма эффективным вычислительным инструментом, положительно зарекомендовавшим себя, в частности, как техническое средство обучения вычислительной математике более чем в тридцати вузах. А в Военно-воздушной инженерной академии им. Жуковского именно на “Сетуни” была впервые реализована автоматизированная система компьютерного обучения.

В соответствии с принципами фон Неймана компьютер состоит из:

· арифметико-логического устройства - АЛУ (англ. ALU, Arithmetic and Logic Unit), выполняющего арифметические и логические операции; устройства управления -УУ, предназначенного для организации выполнения программ;

· запоминающих устройств (ЗУ) , в т.ч. оперативного запоминающего устройства (ОЗУ – первичная память) и внешнего запоминающего устройства (ВЗУ); в основной памяти хранятся данные и программы; модуль памяти состоит из множества пронумерованных ячеек, в каждую ячейку может быть записано двоичное число, которое интерпретируется либо как команда, либо как данные;

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

Обеспечивает взаимодействие между процессором (АЛУ и УУ), основной памятью и устройствами ввода – вывода системная шина .

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

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

2.2 Команда, форматы команд

Команда – это описание элементарной операции, которую должен выполнить компьютер.

Структура команды.

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

В общем случае команда содержит следующую информацию:

Ø код выполняемой операции;

Ø указания по определению операндов или их адресов;

Ø указания по размещению получаемого результата.

Для любой конкретной машины должно быть задано число двоичных разрядов, отводимых в команде для каждого из её адресов и для кода операций, так же как и сами фактические коды операций. Число двоичных разрядов в команде, отведенное при конструировании машины для каждого из её адресов, определяет верхнюю границу числа ячеек памяти машины, имеющих отдельные адреса: если адрес в команде изображается с помощью n двоичных разрядов, то в памяти с быстрой выборкой не может содержаться больше чем 2 n ячеек.

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

В современных машинах длина команд переменная (как правило, от двух до четырёх байт), а способы указания адресов переменных весьма разнообразны.

В адресной части команды может быть указан, например:

Операнд;

Адрес операнда;

Адрес адреса операнда (номер байта, начиная с которого расположен адрес операнда) и т.д.

Рассмотрим структуру возможных вариантов нескольких типов команд.

Трёхадресные команды.

Двухадресные команды.

Одноадресные команды.

Безадресные команды.

Рассмотрим бинарную операцию сложения: с = a + b.

Для каждой переменной в памяти определим условные адреса:

Пусть 53 – код операции сложения.

В этом случае структура трёхадресной команды выглядит следующим образом:

· Трёхадресные команды.

Процесс выполнения команды разбивается на следующие этапы:

Из ячейки памяти, адрес которой хранится в счётчике команд, выбирается очередная команда; содержимое счётчика изменяется и теперь содержит адрес следующей по порядку команды;

Выбранная команда передаётся в устройство управления на регистр команд;

Устройство управления расшифровывает адресное поле команды;

По сигналам УУ значения операндов считываются из памяти и записываются в АЛУ на специальные регистры операндов;

УУ расшифровывает код операции и выдаёт в АЛУ сигнал выполнить соответствующую операцию над данными;

Результат операции в данном случае отправляется в память(в одноадресных и двухадресных ЭВМ остаётся в процессоре);

Все предыдущие действия выполняются до достижения команды ОСТАНОВ.

2.3 ЭВМ как автомат

«Электрон­ные цифровые машины с программным управлением представляют собой пример одного из наиболее распространенных в настоящее время типов преобразователей дискретной информации, называемых дискретными или цифровыми автоматами»(Глушков В.М. Синтез цифровых автоматов)

Любая вычислительная машина работает автоматически (будь то большая или малая ЭВМ, персональный компь­ютер или Супер-ЭВМ). В этом смысле вычислительная машина как автомат может быть описана структурной схемой, представленной на рис. 2.1.

В предыдущих параграфах была рассмотрена структурная схема вычислительной машины. Исходя из структурной схемы вычислительной машины и схемы автомата, мы можем сопоставить блоки схемы автомата и элементы структурной схемы ЭВМ.

В качестве исполнительных элементов в автомат включаются:

· арифметико-логическое устройство:

· память;

· устройства ввода-вывода информации.

Управляющим элементом автомата является устройство управления, которое собственно обеспечивает автоматический режим работы. Как уже отмечалось, в современных вычислительных устройствах основным исполнительным элементом является процессор или микропроцессор, который содержит в себе АЛУ, память, устройство управления.

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

Сегодня трудно поверить, но компьютеры, без которых многие уже не могут представить свою жизнь, появились всего каких-то 70 лет назад. Одним из тех, кто сделал решающий вклад в их создание, был американский ученый Джон фон Нейман. Он предложил принципы, на которых и по сей день работает большинство ЭВМ. Рассмотрим, как работает машина фон Неймана.

Краткая биографическая справка

Янош Нейман родился в 1930 году в Будапеште, в очень состоятельной еврейской семье, которой впоследствии удалось получить дворянский титул. Он с детства отличался выдающимися способностями во всех областях. В 23 года Нейман уже защитил кандидатскую диссертацию в области экспериментальной физики и химии. В 1930-м молодого ученого пригласили на работу в США, в Одновременно с этим Нейман стал одним из первых сотрудников Института перспективных исследований, где проработал профессором до конца жизни. Научные интересы Неймана были довольно обширны. В частности, он является одним из создателей матаппарата квантовой механики и концепции клеточных автоматов.

Вклад в информатику

Прежде чем выяснить, какому принципу не соответствует архитектура фон Неймана, будет интересно узнать о том, как ученый пришел к идее создания вычислительной машины современного типа.

Будучи экспертом в области математики взрывов и ударных волн, в начале 1940-х фон Нейман являлся научным консультантом в одной из лабораторий Управления боеприпасов Армии Соединенных Штатов. Осенью 1943 года он прибыл в Лос-Аламос для участия в разработке Манхеттэнского проекта по личному приглашению его руководителя Перед ним была поставлена задача рассчитать силу имплозийного сжатия заряда атомной бомбы до критической массы. Для ее решения требовались большие вычисления, которые на первых порах осуществлялись на ручных калькуляторах, а позже на механических табуляторах фирмы IBM, с использованием перфокарт.

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

Принципы фон Неймана

Информатика как наука к 1945 году зашла в тупик, так как все хранили в своей памяти обрабатываемые числа в 10-м виде, а программы для совершения операций задавались посредством установки перемычек на коммутационной панели.

Это значительно ограничивало возможности компьютеров. Настоящим прорывом стали принципы фон Неймана. Кратко их можно выразить одним предложением: переход к двоичной системе счисления и принцип хранимой программы.

Анализ

Рассмотрим, на каких принципах основана классическая структура машины фон Неймана, более подробно:

1. Переход к двоичной системе от десятиричной

Этот принцип неймановской архитектуры позволяет использовать достаточно простые логические устройства.

2. Программное управление электронной вычислительной машиной

Работа ЭВМ контролируется набором команд, выполняемых последовательно друг за другом. Разработка первых машины с программой, хранимой в памяти, положила начало современному программированию.

3. Данные и программы в памяти компьютера хранятся совместно

При этом и данные, и команды программы имеют одинаковый способ записи в двоичной системе счисления, поэтому в определенных ситуациях над ними возможно выполнение тех же действий, что и над данными.

Следствия

Кроме того, архитектура Фоннеймановской машины обладает следующими особенностями:

1. Ячейки памяти имеют адреса, которые пронумерованы последовательно

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

2. Возможность условного перехода в ходе выполнения программы

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

Как работает машина фон Неймана

Такая математическая модель состоит из запоминающего (ЗУ), управляющего, а также устройств ввода и вывода. Все команды программы записываются в ячейках памяти, расположенных по соседству, а данные для их обработки — в произвольных ячейках.

Любая команда должна состоять из:

  • указания, какая операция должна быть выполнена;
  • адресов ячеек памяти, в которых хранятся исходные данные, затрагиваемые указанной операцией;
  • адресов ячеек, в которые следует записать результат.

Указанные командами операции над конкретными исходными данными выполняются АЛУ, а результаты записываются в ячейках памяти, т. е. сохраняются в виде, удобном для последующей машинной обработки, либо передаются на устройство вывода (монитор, принтер и пр.) и становятся доступны человеку.

УУ управляет всеми частями ЭВМ. От него на остальные устройства поступают сигналы-приказы «что делать», а от других устройств оно получает информацию о то, в каком состоянии они находятся.

У управляющего устройства есть специальный регистр, называемый «счетчиком команд» СК. После загрузки исходных данных и программы в память, СК записывается адрес ее 1-й команды. УУ считывает из памяти ЭВМ содержимое ячейки, адрес которой находится в СК, и помещает его в «Регистр команд». Управляющее устройство определяет операцию, соответствующую конкретной команде, и «отмечает» в памяти компьютера данные, адреса которых в ней указаны. Далее АЛУ или ЭВМ приступают к выполнению операции, по завершении которой содержимое СК изменяется на единицу, т. е. указывает на следующую команду.

Критика

Недостатки и современные перспективы продолжают оставаться предметом дискуссий. То, что машины, созданные на принципах, выдвинутых этим выдающимся ученым, не совершенны, было замечено еще очень давно.

Поэтому в экзаменационных билетах по информатике нередко можно встретить вопрос "какому принципу не соответствует архитектура фон Неймана и какие недостатки у нее есть".

При ответе на его вторую часть обязательно следует указать:

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

Что касается того, какому принципу не соответствует архитектура фон Неймана, то речь идет о параллельности организации большого числа потоков данных и команд, свойственной многопроцессорной архитектуре.

Заключение

Теперь вам известно, какому принципу не соответствует архитектура фон Неймана. Очевидно, что наука и технологии не стоят на месте, и, возможно, очень скоро в каждом доме появятся компьютеры совершенно нового типа, благодаря которым человечество выйдет на новый уровень своего развития. Кстати, подготовиться к экзамену поможет программа-тренажер "Архитектура фон Неймана". Такие цифровые образовательные ресурсы облегчают усвоение материала и дают возможность оценить свои знания.

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

Энциклопедичный YouTube

  • 1 / 5

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

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

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

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

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

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

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

    Принципы фон Неймана

    Принцип однородности памяти Принципиальное отличие архитектуры "фон Неймана" (принстонской) от "Гарвардской ". Команды и данные хранятся в одной и той же памяти и внешне в памяти неразличимы. Распознать их можно только по способу использования; то есть одно и то же значение в ячейке памяти может использоваться и как данные, и как команда, и как адрес в зависимости лишь от способа обращения к нему. Это позволяет производить над командами те же операции, что и над числами, и, соответственно, открывает ряд возможностей. Так, циклически изменяя адресную часть команды, можно обеспечить обращение к последовательным элементам массива данных. Такой прием носит название модификации команд и с позиций современного программирования не приветствуется. Более полезным является другое следствие принципа однородности, когда команды одной программы могут быть получены как результат исполнения другой программы. Эта возможность лежит в основе трансляции - перевода текста программы с языка высокого уровня на язык конкретной вычислительной машины. Принцип адресности Структурно основная память состоит из пронумерованных ячеек, причём процессору в произвольный момент доступна любая ячейка. Двоичные коды команд и данных разделяются на единицы информации, называемые словами, и хранятся в ячейках памяти, а для доступа к ним используются номера соответствующих ячеек - адреса. Принцип программного управления Все вычисления, предусмотренные алгоритмом решения задачи, должны быть представлены в виде программы, состоящей из последовательности управляющих слов - команд. Каждая команда предписывает некоторую операцию из набора операций, реализуемых вычислительной машиной. Команды программы хранятся в последовательных ячейках памяти вычислительной машины и выполняются в естественной последовательности, то есть в порядке их положения в программе. При необходимости, с помощью специальных команд, эта последовательность может быть изменена. Решение об изменении порядка выполнения команд программы принимается либо на основании анализа результатов предшествующих вычислений, либо безусловно. Принцип двоичного кодирования Согласно этому принципу, вся информация, как данные, так и команды, кодируются двоичными цифрами 0 и 1. Каждый тип информации представляется двоичной последовательностью и имеет свой формат. Последовательность битов в формате, имеющая определенный смысл, называется полем. В числовой информации обычно выделяют поле знака и поле значащих разрядов. В формате команды в простейшем случае можно выделить два поля: поле кода операции и поле адресов.

    Компьютеры, построенные на принципах фон Неймана

    По плану, первым компьютером, построенным по архитектуре фон Неймана, должен был стать EDVAC (Electronic Discrete Variable Automatic Computer) - одна из первых электронных вычислительных машин. В отличие от своего предшественника ЭНИАКа, это был компьютер на двоичной, а не десятичной основе. Как и ЭНИАК, EDVAC был разработан в Институте Мура Пенсильванского Университета для Лаборатории баллистических исследований (англ.) Армии США командой инженеров и учёных во главе с Джоном Преспером Экертом (англ.) и Джоном Уильямом Мокли при активной помощи математика], однако до 1951 года EDVAC не был запущен из-за технических трудностей в создании надёжной компьютерной памяти и разногласий в группе разработчиков. Другие научно-исследовательские институты, ознакомившись с ЭНИАКом и проектом EDVAC, сумели решить эти проблемы гораздо раньше. Первыми компьютерами, в которых были реализованы основные особенности архитектуры фон Неймана, были:

    1. прототип - Манчестерская малая экспериментальная машина - Манчестерский университет , Великобритания, 21 июня 1948 года;
    2. EDSAC - Кембриджский университет , Великобритания, 6 мая 1949 года;
    3. Манчестерский Марк I - Манчестерский университет , Великобритания, 1949 год;
    4. BINAC - США, апрель или август 1949 года;
    5. CSIR Mk 1
    6. EDVAC - США, август 1949 года - фактически запущен в 1952 году;
    7. CSIRAC - Австралия, ноябрь 1949 года;
    8. SEAC - США, 9 мая 1950 года;
    9. ORDVAC - США, ноябрь 1951 года;
    10. IAS-машина - США, 10 июня 1952 года;
    11. MANIAC I - США, март 1952 года;
    12. AVIDAC - США, 28 января 1953 года;
    13. ORACLE - США, конец 1953 года;
    14. WEIZAC - Израиль, 1955 год;
    15. SILLIAC - Австралия, 4 июля 1956 года.

    В СССР первой полностью электронной вычислительной машиной, близкой к принципам фон Неймана, стала МЭСМ , построенная Лебедевым (на базе киевского Института электротехники АН УССР), прошедшая государственные приемочные испытания в декабре 1951 года.

    Узкое место архитектуры фон Неймана

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

    Термин «узкое место архитектуры фон Неймана» ввел Джон Бэкус в 1977 в своей лекции «Можно ли освободить программирование от стиля фон Неймана?», которую он прочитал при вручении ему Премии Тьюринга

    Ученые из США и Италии в 2015 заявили о создании прототипа мем-процессора (английское memprocessor) с отличной от фон-неймановской архитектурой и возможности его использования для решения -полных задач .

    См. также

    Литература

    • Herman H. Goldstine. The Computer from Pascal to von Neumann . - Princeton University Press, 1980. - 365 p. - ISBN 9780691023670 . (англ.)
    • William Aspray. John von Neumann and the Origins of Modern Computing . - MIT Press, 1990. - 394 p. - ISBN 0262011212 . (англ.)
    • Scott McCartney. ENIAC: The Triumphs and Tragedies of the World"s First Computer . - Berkley Books, 2001. - 262 p. -
Поделиться