stringtranslate.com

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

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

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

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

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

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

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

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

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

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

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

Инициация

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

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

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

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

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

Стадия декодирования

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

Определить фактический адрес

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

Вот несколько распространенных способов узнать фактический адрес:

Стадия выполнения

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

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

Ссылки

  1. ^ Кристал Чен, Грег Новик и Кирк Шимано (2000). «Конвейеризация» . Получено 26.06.2019 .
  2. ^ Bosky Agarwal (2004). "Instruction Fetch Execute Cycle" (PDF) . Архивировано из оригинала (PDF) 11 июня 2009 г. . Получено 2012-10-14 .