Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

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

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

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

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

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

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

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

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

 

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

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). Легко видеть, что одноадресная машина потребует три команды. Поэтому неудивительно, что основная тенденция в развитии ЦУ ЭВМ состоит в увеличении разрядности.

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