Джон фон нейман и его принципы. Появление эвм, принципы фон неймана

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

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

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

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

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

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

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

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

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

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

Анализ

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

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

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

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

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

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

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

Следствия

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

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

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

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

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

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

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

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

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

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

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

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

Критика

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

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

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

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

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

Заключение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Все современные ЭВМ, не смотря на то, что прошло большое колличество времени, работают на принципах предложенных американским математиком Джоном фон Нейманом (1903 - 1957). Также внес значительный вклад в развитие и применение ЭВМ. Был первым кто основал принципы по которым работает ЭВМ:

1. Принцип двоичного кодирования: вся информация в ЭВМ представлена в двоичном виде, сочетание 0 и 1.

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

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

4. Принцип последовательного программного управления: программа состоит из совокупности команд, которые выполняются ЦП последовательно друг за другом.

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

. Классификация современных ЭВМ.

Современные ЭВМ подразделяются на встроенные микро­процессоры , микроЭВМ (персональные компьютеры), большие ЭВМ и суперЭВМ - комплекс ЭВМ с несколькими процессорами.

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

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

Производительность микропроцессоров составляет несколько миллионов опе­ра­ций в секунду, а объемы современных блоков оперативной памяти - несколько миллионов байтов.

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

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

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

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

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

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

Большие ЭВМ - компьютеры высокой производительности с большим объемом внешней памяти. Большие ЭВМ исполь­зуют в качестве серверов сетей ЭВМ и больших хранилищ данных.

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

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

Производительность суперЭВМ составляет десятки и сотни тысяч мил­лиардов вычи­сли­тель­ных операций в секунду. При этом в суперЭВМ все более увели­чивается количество процессоров и усложняется архитектура ЭВМ.

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

Рисунок 9.5 – Джон фон Нейман, 1945 г.

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

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

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

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

Таким образом, процессор исполняет программу автоматически, без вмешательства человека.

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

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

Для доступа к программам, командам и операндам используются их адреса. В качестве адресов выступают номера ячеек памяти ЭВМ, предназначенных для хранения объектов. Информация(командная и данные: числовая, текстовая, графическая и т.п.) кодируется двоичными цифрами 0 и 1.



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Структура отдельной команды имеет вид:

<код операции> <операнды>,

где <код операции> определяет, какая операция должна выполняться;

<операнды> - список (возможно, одноэлементный) тех констант, адресов или имен переменных, над которыми выполняется данная операция.

В зависимости от числа операндов различают одно-, двух- и трехадресные машинные команды. Каждая команда имеет определенный объем, измеряемый байтами.

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



Таким образом, процессор исполняет программу автоматически, без вмешательства человека.

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

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

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

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

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

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

Машина фон Неймана состояла из памяти, представлявшей собой набор регистров, АЛУ, устройства ввода-вывода и устройства управления (рис. 3.7).

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

Рис. 3.7. Машина фон Неймана

Устройство управления считывает из памяти содержимое ячейки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство - «Регистр команд ». Регистр команд хранит команду во время ее исполнения. Устройство управления расшифровывает тип операции команды, считывает из памяти данные, адреса которых указаны в команде, и приступает к ее выполнению. Для каждой команды устройство управления имеет свой алгоритм обработки, который заключается в выработке управляющих сигналов для всех остальных устройств машины. Этот алгоритм мог быть реализован на основе комбинационных логических схем или с помощью специальной внутренней памяти, куда эти алгоритмы были записаны в виде микрокоманд, объединенных в микропрограммы. Выполнение микропрограммы происходит по тому же принципу, что и программы в основной памяти, т.е. по принципу фон Неймана. Каждая микрокоманда содержит набор управляющих сигналов для устройств машины. Отметим, что устройства управления выполнением команд процессоров в современных компьютерных системах также строятся по принципу комбинационных схем или микропрограммных автоматов, в соответствии с чем делятся на RISC и CISC процессоры, о которых будет рассказано ниже.

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

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