Jump to content

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

(Перенаправлено из выборки кода операции )

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

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

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

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

[ редактировать ]

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

На этапе декодирования блок управления (CU) декодирует команду в CIR. Затем CU отправляет сигналы другим компонентам внутри ЦП, таким как арифметико-логическое устройство (ALU) и устройство с плавающей запятой (FPU) . АЛУ выполняет арифметические операции, такие как сложение и вычитание, а также умножение посредством многократного сложения и деление посредством многократного вычитания. [ сомнительно обсудить ] Он также выполняет логические операции, такие как AND , OR , NOT , а двоичные сдвиги также . 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 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 418b6c94ba85f07e9eafd2457d42a317__1719415980
URL1:https://arc.ask3.ru/arc/aa/41/17/418b6c94ba85f07e9eafd2457d42a317.html
Заголовок, (Title) документа по адресу, URL1:
Instruction cycle - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)