Машинный цикл
Маши́нный цикл — промежуток времени между двумя последовательными обращениями центрального процессора к внешней оперативной памяти команд/данных или обмена 1 словом данных с периферийными устройствами, в том числе в циклах обработки аппаратных прерываний. Является составляющей частью исполнения машинной команды.
В процессе исполнения одной машинной команды может выполняться один или несколько машинных циклов. В свою очередь, каждый машинный цикл может состоять из нескольких машинных тактов.
Пример исполнения машинной команды
В качестве примера возьмем машинную команду сложения содержимого некоторого внутреннего регистра процессора А со словом в памяти, расположенном по адресу, который хранится в регистре процессора М, и записи результата сложения по адресу из регистра М1. В этом примере исполнение данной команды занимает 3 машинных цикла.
В течение первого машинного цикла выполняется чтение кода команды из памяти по адресу, находящемуся в выделенном регистре процессора, обычно называемому счетчиком команд (PC), дешифрация кода команды и увеличение содержимого счетчика команд на 1 — подготовка к считыванию кода команды следующей в программе команды.
Во втором машинном цикле на внешнюю шину адреса процессор выставляет содержимое регистра М и активирует линию сигнала чтения из памяти, при этом внешнее по отношению к процессору устройство управления памятью выставляет на шину данных содержимое ячейки памяти с адресом из М. В этом же цикле процессор считывает слово с шины данных и производит сложение его со словом в регистре А.
В третьем цикле процессор выставляет на шину адреса содержимое регистра М1 — адрес записи результата сложения, на шину данных выставляет слово результата сложения и активирует линию сигнала записи в память, при этом внешнее по отношению к процессору устройство управления памятью записывает слово с шины данных в ячейку памяти с адресом на шине адреса. Этим завершается исполнение приведённой в качестве примера команды. Далее процессор приступает к исполнению следующей в программе команды.
При этом внутри каждого машинного цикла исполняется несколько микрокоманд, в каждой микрокоманде устройство управления процессора активирует одну или несколько линий управления, например, задание слова кода операции на входе арифметико-логического устройства процессора, управления вентилями межрегистровых пересылок, активирование линий чтения-записи в память. Исполнение микрокоманд синхронизируется машинными тактами.