stringtranslate.com

Цикл инструкций

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

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

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

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

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

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

Краткое описание этапов

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

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

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

Инициация

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

Стадия выборки

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

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

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

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

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

Определить эффективный адрес

На этом этапе оценивается, какой тип операции необходимо выполнить, и, если это операция с памятью, компьютер определяет эффективный адрес памяти, который будет использоваться на следующем этапе выполнения. Существуют различные возможные способы, которые архитектура компьютера может указать для определения адреса, обычно называемые режимами адресации .

Некоторые распространенные способы найти эффективный адрес:

Этап выполнения

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

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

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

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