В отчете «Предварительное обсуждение логической конструкции электронной вычислительной машины», подготовленном в 1946 г. фон Нейманом совместно с Г. Гольдстейном и А. Берксом изложены основные принципы логической структуры ЭВМ (компьютера фон Неймана):
- принцип использования двоичной системы счисления для представления информации в ЭВМ. Машина должна работать не в десятичной системе счисления (как механические арифмометры), а в двоичной (бинарной). Это означает, что программа и данные должны быть записаны в коде двоичной системы, где каждое число или символ представляется определенной комбинацией нулей и единиц;
- программное управление работой ЭВМ. Программы состоят из отдельных шагов — команд; команда осуществляет единичный акт преобразования информации; последовательность команд, необходимая для реализации алгоритма, является программой; все разновидности команд, использующиеся в конкретной ЭВМ, в совокупности являются языком машины или системой команд машины;
- принцип условного перехода. Возможность перехода в процессе вычислений на тот или иной участок программы в зависимости от промежуточных, получаемых в ходе вычислений результатов; реализация принципа условного перехода позволяет осуществлять в программе циклы с автоматическим выходом из них, итерационные процессы и т.п. Благодаря принципу условного перехода число команд в программе получается во много раз меньше, чем число выполненных машиной команд при исполнении данной программы за счет многократного вхождения в работу участков программы;
- принцип хранимой программы. Программа, которая управляет последовательностью выполнения операций, должна храниться в памяти машины. Там же должны храниться исходные данные и промежуточные результаты;
- принцип иерархичности запоминающих устройств. Память компьютера следует организовать по иерархическому принципу, т. е. она должна состоять, по крайней мере, из двух частей: быстрой, но небольшой по емкости (оперативной) и большой (медленной) внешней.
Классическая структурная схема ЭВМ, построенной в соответствии с принципами фон Неймана, приведена на рисунке 2.1. На схеме представлены: память (оперативная и внешняя), состоящая из перенумерованных ячеек (номер ячейки называют адресом); процессор, включающий в себя устройство управления (УУ) и арифметико–логическое устройство (АЛУ); устройство ввода; устройство вывода. Эти устройства соединены каналами связи, по которым передается информация (управляющая – прерывистые стрелки, данные – непрерывные стрелки).
Рисунок 2.1 — Классическая структурная схема ЭВМ
Функции памяти:
- приём информации из других устройств;
- запоминание информации;
- выдача информации по запросу в другие устройства машины.
Функции процессора:
- обработка данных по заданной программе путем выполнения арифметических и логических операций;
- программное управление работой устройств компьютера.
Та часть процессора, которая выполняет команды, называется арифметико–логическим устройством, а другая его часть, выполняющая функции управления устройствами, называется устройством управления. Обычно эти два устройства выделяются чисто условно, конструктивно они не разделены. АЛУ реализует важную часть процесса обработки данных, заключающуюся в выполнении набора про- стых операций. Операции АЛУ подразделяются на три основные категории: арифметические, логические и операции над битами. Арифметической операцией называют процедуру обработки данных, аргументы и результат которой являются числами (сложение, вычитание, умножение, деление). Логической операцией именуют процедуру, осуществляющую построение сложного высказывания (операции И, ИЛИ, НЕ). Операции над битами обычно подразумевают сдвиги.
Алгоритмом решения задачи численным методом называют последовательность арифметических и логических операций, которые надо произвести над исходными данными и промежуточными результатами для получения решения задачи. Алгоритм можно задать указанием, какие следует произвести операции, в каком порядке и над какими словами. Описание алгоритма в форме, воспринимаемой ЭВМ, называется программой.
Программа состоит из отдельных команд. Каждая команда предписывает определенное действие и указывает, над какими словами (операндами) это действие производится. Программа представляет собой совокупность команд, записанных в определенной последовательности, обеспечивающей решение задачи на ЭВМ.
Для того чтобы устройство управления могло воспринимать команды, они должны быть закодированы в цифровой форме. Автоматическое управление процессом решения задачи достигается на основе принципа программного управления, который составляет главную особенность ЭВМ.
Другим важнейшим принципом является принцип хранимой в памяти программы, согласно которому программа, закодированная в цифровом виде, хранится в памяти наравне с числами. В команде указываются не сами участвующие в операциях числа, а адреса ячеек ОП, в которых они находятся, и адрес ячейки, куда помещается результат операции.
Использование двоичных схем, принципов программного управления и хранимой в памяти программы позволило достигнуть высокого быстродействия и сократить во много раз число команд в программах решения задач, содержащих вычисляемые циклы, по сравнению с числом операций, которые производит машина при выполнении этих программ.
Команды выполняются в порядке, соответствующем их расположению в последовательных ячейках памяти, кроме команд безусловного и условного перехода, изменяющих этот порядок соответственно безусловно или только при выполнении некоторого условия, обычно задаваемого в виде равенства нулю, положительного или отрицательного результата предыдущей команды или отношения типа <, =, > для указываемых командой чисел. Благодаря наличию команд условного перехода ЭВМ может автоматически изменять ход выполняемого процесса, решать сложные логические задачи.
При помощи устройства ввода программа и исходные данные считываются и переносятся в ОП.
Как правило, процесс выполнения команды разбивается на следующие этапы:
- из ячейки памяти, адрес которой хранится в счетчике команд УУ, выбирается очередная команда, содержимое счетчика команд при этом увеличивается на длину команды;
- выбранная команда передается в УУ на регистр команд;
- УУ расшифровывает адресное поле команды;
- по сигналам УУ операнды считываются из памяти и записываются в АЛУ на специальные регистры операндов;
- УУ расшифровывает код операции и выдает в АЛУ сигнал выполнения соответствующей операции над данными;
- результат операции либо остается в процессоре, либо отправляется в память, если в команде был указан адрес результата;
- все предыдущие этапы повторяются до достижения команды «стоп».