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

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

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

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

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

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

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

Краткое изложение этапов

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

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

Инициация

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

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

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

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

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

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

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

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

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

  • Прямая работа с памятью - Ничего не сделано.
  • Косвенная работа с памятью - Действующий адрес считывается из памяти.

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

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

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

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

Рекомендации

  1. ^ Кристал Чен, Грег Новик и Кирк Шимано (2000). «Трубопровод». Получено 2019-06-26.
  2. ^ Боски Агарвал (2004). «Цикл выполнения выборки инструкций» (PDF). Архивировано из оригинал (PDF) 11 июня 2009 г.. Получено 2012-10-14.