Классификация команд процессора

Цикл выполнения команды

Цикл выполнения команды – это последовательность действий, которая совершается процессором при выполнении одной машинной команды. При выполнении каждой машинной команды процессор должен выполнить как минимум три действия: выборку, декодирование и выполнение. Если в команде используется операнд, расположенный в оперативной памяти, то процессору придётся выполнить ещё две операции: выборку операнда из памяти и запись результата в память. Ниже описаны эти пять операций.

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

· Декодирование команды. Блок управления определяет тип выполняемой команды, пересылает указанные в ней операнды в АЛУ и генерирует электрические сигналы управления АЛУ, которые соответствуют типу выполняемой операции.

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

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

· Запись результата в память. Если результат выполнения команды должен быть сохранён в памяти, блок управления начинает операцию сохранения данных в памяти.

Суммируем полученные знания и составим цикл выполнения команды:

1. Выбрать из очереди команд команду, на которую указывает счётчик команд.

2. Определить адрес следующей команды в очереди команд и записать адрес следующей команды в счётчик команд.

3. Декодировать команду.

4. Если в команде есть операнды, находящиеся в памяти, то выбрать операнды.

5. Выполнить команду и установить флаги.

6. Записать результат в память (по необходимости).

7. Начать выполнение следующей команды с п.1.

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

Классификация команд процессора

Основные команды ЭВМ классифицируются вкратце следующим образом: по функциям (выполняемым операциям), направлению приема-передачи информации, адресности.

1. Команды обработки данных, в том числе (01 - первый операнд, 02 - второй):

1.1. Короткие операции (один такт).

1.1.1. Логические:

- логическое сложение (для каждого бита 01 и 02 осуществляется операция ИЛИ);

- логическое умножение (для каждого бита 01 и 02 осуществляется операция И);

- инверсия (в O1 все единицы заменяются на нули, и наоборот);

- сравнение логическое (если O1 = 02, то некий регистр устанавливается в 1, иначе - в 0).

1.1.2. Арифметические:

- сложение или вычитание операндов;

- сравнение арифметическое (если O1 > O2, или O1 = O2, или O1 < O2, то некий регистр устанавливается в 1, иначе - в 0).

1.2. Длинные операции (несколько тактов):

- сложение/вычитание с фиксированной точкой;

- умножение/деление с фиксированной точкой.

2. Операции управления:

- безусловный переход (ветвление, branch);

- условный переход (по условию, результатам вычислений (conditional branch)).

3. Операции обращения к внешним устройствам (требование на запись или считывание информации).

Естественно, могут существовать и другие операции - десятичная арифметика, обработка символьнойинформации, работа с числами половинной (полуслово, например 16 бит) или двойной (двойное слово, например 64 бит) длины.

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

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

В трехадресной машине, например, сложение двух чисел требует одной команды (извлечь число по А1, число по А2, сложить и записать результат по A3). В двухадресной необходимы две команды (первая - извлечь число по А1 и поместить в РЧ (или сумматор), вторая - извлечь число по А1, сложить с содержимым РЧ и результат записать по А2). Легко видеть, что одноадресная машина потребует три команды. Поэтому неудивительно, что основная тенденция в развитии ЦУ ЭВМ состоит в увеличении разрядности.

Наибольшее применение нашли двухадресные системы команд.

Наши рекомендации