Цикл обучения - Instruction cycle

Цикл команд (также известный как цикл выборка – декодирование – выполнение или просто цикл выборка – выполнение ) - это цикл, который центральный процессор (ЦП) следует от загрузки до тех пор, пока компьютер не выключится для обработки инструкций. . Он состоит из трех основных этапов: этапа выборки, этапа декодирования и этапа выполнения.

Это простая диаграмма, иллюстрирующая отдельные этапы цикла выборки-декодирования-исполнения.

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

Роль компонентов

Программный счетчик (PC) , это специальный регистр , который содержит адрес памяти следующей инструкции для выполнения. На этапе выборки адрес, хранящийся в ПК, копируется в регистр адреса памяти (MAR), а затем ПК увеличивается на единицу, чтобы «указать» на адрес памяти следующей инструкции, которая должна быть выполнена. Затем ЦП принимает инструкцию по адресу памяти, описанному MAR, и копирует ее в регистр данных памяти (MDR) . MDR также действует как двусторонний регистр, в котором хранятся данные, полученные из памяти, или данные, ожидающие сохранения в памяти (из-за этого он также известен как буферный регистр памяти (MBR)). В конце концов, инструкция в MDR копируется в текущий регистр инструкций (CIR), который действует как временное основание для удержания инструкции, только что полученной из памяти.

На этапе декодирования блок управления (CU) декодирует инструкцию в CIR. Затем CU отправляет сигналы другим компонентам в CPU, таким как арифметико-логический блок (ALU) и блок с плавающей запятой (FPU) . ALU выполняет арифметические операции, такие как сложение и вычитание, а также умножение посредством повторного сложения и деление посредством повторного вычитания. Он также выполняет логические операции, такие как И , ИЛИ , НЕ , а также двоичные сдвиги . FPU зарезервирован для выполнения операций с плавающей запятой .

Резюме этапов

ЦП каждого компьютера может иметь разные циклы, основанные на разных наборах инструкций, но будут похожи на следующий цикл:

  1. Этап выборки: следующая инструкция выбирается из адреса памяти, который в настоящее время хранится в программном счетчике, и сохраняется в регистре команд. В конце операции выборки ПК указывает на следующую инструкцию, которая будет прочитана в следующем цикле.
  2. Этап декодирования: на этом этапе кодированная инструкция, представленная в регистре инструкций, интерпретируется декодером.
    • Считайте эффективный адрес : в случае инструкции памяти (прямой или косвенной) фаза выполнения будет во время следующего тактового импульса. Если инструкция имеет косвенный адрес , эффективный адрес считывается из основной памяти, а любые требуемые данные извлекаются из основной памяти для обработки и затем помещаются в регистры данных (тактовый импульс: T 3 ). Если инструкция прямая, во время этого тактового импульса ничего не происходит. Если это инструкция ввода / вывода или инструкция регистра, операция выполняется во время тактового импульса.
  3. Этап выполнения : блок управления ЦП передает декодированную информацию в виде последовательности управляющих сигналов соответствующим функциональным блокам ЦП для выполнения действий, требуемых инструкцией, таких как чтение значений из регистров, передача их в АЛУ для выполнения математические или логические функции на них и запись результата обратно в регистр. Если задействован ALU, он отправляет сигнал состояния обратно в CU. Результат, сгенерированный операцией, сохраняется в основной памяти или отправляется на устройство вывода. На основе обратной связи от ALU ПК может быть обновлен на другой адрес, с которого будет выбираться следующая инструкция.
  4. Повторить цикл

Кроме того, на большинстве процессоров могут возникать прерывания . Это заставит ЦП перейти к подпрограмме обслуживания прерывания, выполнить ее и затем вернуться. В некоторых случаях инструкция может быть прервана посередине, инструкция не будет иметь никакого эффекта, но будет повторно выполнена после возврата из прерывания.

Посвящение

Цикл начинается, как только в систему подается питание, с начальным значением ПК, которое предопределено архитектурой системы (например, в процессорах Intel IA-32 предопределенное значение ПК равно 0xfffffff0). Обычно этот адрес указывает на набор инструкций в постоянном запоминающем устройстве (ПЗУ), с которого начинается процесс загрузки (или загрузки ) операционной системы .

Этап получения

Шаг выборки одинаков для каждой инструкции:

  1. ЦП отправляет содержимое ПК в MAR и отправляет команду чтения на шину управления.
  2. В ответ на команду чтения (с адресом, равным ПК) память возвращает данные, хранящиеся в ячейке памяти, указанной ПК на шине данных.
  3. ЦП копирует данные из шины данных в свой MDR (также известный как MBR; см. Раздел Роль компонентов выше).
  4. Через долю секунды ЦП копирует данные из MDR в регистр команд для декодирования команд.
  5. ПК увеличивается так, чтобы указывать на следующую инструкцию. Этот шаг подготавливает ЦП к следующему циклу.

Блок управления извлекает адрес инструкции из блока памяти .

Этап декодирования

Процесс декодирования позволяет ЦП определить, какая инструкция должна быть выполнена, чтобы ЦП мог сказать, сколько операндов ему нужно выбрать для выполнения инструкции. Код операции, извлеченный из памяти, декодируется для следующих шагов и перемещается в соответствующие регистры. Декодирование обычно осуществляются с помощью бинарных декодеров в CPU «с блоком управления .

Чтение действующего адреса

На этом шаге оценивается, какой тип операции необходимо выполнить. Если это операция с памятью, компьютер проверяет, является ли это прямой или косвенной операцией с памятью:

  • Прямая операция с памятью - ничего не делается.
  • Косвенная работа с памятью - эффективный адрес считывается из памяти.

Если это инструкция ввода-вывода или регистрации, компьютер проверяет ее тип и выполняет инструкцию.

Выполнить этап

ЦП отправляет декодированную инструкцию как набор управляющих сигналов в соответствующие компоненты компьютера. Если инструкция включает арифметические или логические операции, используется АЛУ. Это единственный этап цикла обучения, который полезен с точки зрения конечного пользователя. Все остальное - накладные расходы, необходимые для выполнения шага выполнения.

Смотрите также

использованная литература