Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
02. Организация компьютеров.doc
Скачиваний:
21
Добавлен:
16.12.2018
Размер:
556.03 Кб
Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

К

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

1

N

(1.1)

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

.

.

Код операции

Адрес 1

. . .

Адрес K

Операционная часть

Адресная часть

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

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

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

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

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

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

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

11010011101……….10001

,

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

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

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