Скачиваний:
102
Добавлен:
09.05.2014
Размер:
481.28 Кб
Скачать

1.2. Неймановский принцип программного управления

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

В основе неймановского принципа программного управления лежит представление алгоритмов в форме операторных схем. Операторная схема алгоритмазадает правило вычислений как композицию операндов двух типов:

основных операторовоператоров преобразования информации, предписывающих определенные операции над определенными данными;

операторов перехода (следования), анализирующих данные для определения следующего выполняемого оператора.

Неймановский принцип программного управлениясостоит в следующем:

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

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

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

И

b b b . . . . . . . . b b

1

N

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

Здесь b – бит – двоичная переменная, принимающая значения b=0, b=1. Биты называютсяразрядами словаи нумеруются от 1 доN. Число битов Nв слове называетсядлиной слова. Кроме бита в качестве элемента информации используется последовательность из восьми битов, называемаябайтом. Один байт позволяет закодировать 28 = 256 различных состояний и используется для представления значений от 0 до 255 или одного символа алфавитно-цифровой информации (буквы, цифры или специального символа). В таком случае длина машинного слова принимается кратной байту и может составлять 1, 2, 4 или 8 байтов, т.е. 8, 16, 32 или 64 бита соответственно.

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

Память компьютера не имеет ничего общего с памятью, существующей в живой природе. Память компьютера – совокупность ячеек, т.е. склад для хранения информации. Ячейки нумеруются натуральными числами 0, 1, 2, … , которые являются адресами ячейки и одновременно адресами хранимых в ячейках слов. Чтобы записать слово в память, необходимо указать адрес А и представить слово, которое будет помещено в ячейкуА. Чтобы прочитать слово, необходимо указать адресА, но по которому из ячейкиАбудет выбрана копия хранимого в ней слова. Любое слово, записанное однажды, можно читать сколько угодно раз.

Команды имеют операционно-адресную структуру:

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

Здесь КО– код операции, представляемый полем изlбитов,А1, А2 иА3 – адреса операндов длиной вmбитов. В поле кода операции можно закодировать наименования доL=2l операций номерами 0, 1, … , L-1.В поле адреса можно указать адресаM=2mоперандов, представляемых целыми числами 0, 1, … , m-1.

Основные команды реализуют операторы вида:

[ А3] := [А1 ] * [А2],

где [ Аi ] – слово с адресомАi, := – знак “присвоить”, * символ операции, указанный в коде операции. В соответствии со структурой команды (1.2.2) и используя мнемонические обозначения кода операции и адресов, команду можно представить в следующем виде

* [ А1 ] [А2] [А3],

где* символ операции и [А1 ], [А2], [А3] – операнды, размещаемые в ячейках памяти с адресамиА1,А2,А3. Однако эта команда, представленная в двоичной форме (1.2.1), хранится в памяти компьютера как слово, состоящее из последовательности битов:

в котором могут быть выделены поля кода операции и адресов в соответствии со структурой команды (1.2.1).

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

Процесс вычислений, выполненных компьютером по заданной программе, состоит в последовательном выполнении команд. Первой выполняется команда, заданная начальным адресом – адресом первой команды программы. Адрес следующей команды однозначно определяется в процессе выполнения текущей команды. Основные команды выполняются в естественном порядке – в порядке их следования по адресам А,А+1,А+2 и т.д. Команды перехода определяют адрес следующей команды принудительно. Например, при положительном результате предыдущей операции адрес следующей команды будетА1, а при отрицательном результатеА2, гдеА1иА2– адреса, указанные в команде перехода. Процесс вычислений заканчивается после выполнения последней команды программы.