Цикл инструкций
Эта статья нуждается в дополнительных цитатах для проверки . ( октябрь 2009 г. ) |
Цикл инструкций (также известный как цикл выборки-декодирования-выполнения или просто цикл выборки-выполнения ) — это цикл, которому следует центральный процессор (ЦП) от загрузки до момента выключения компьютера для обработки инструкций. . Он состоит из трех основных этапов: этапа выборки, этапа декодирования и этапа выполнения.
В более простых процессорах цикл инструкций выполняется последовательно, каждая инструкция обрабатывается перед запуском следующей. В большинстве современных процессоров циклы команд вместо этого выполняются одновременно , а часто и параллельно , через конвейер команд : следующая инструкция начинает обрабатываться до того, как завершится предыдущая инструкция, что возможно, поскольку цикл разбит на отдельные шаги. [1]
Роль компонентов
[ редактировать ]Счетчик программ (PC) — это специальный регистр , в котором хранится адрес памяти следующей команды, которая будет выполнена. На этапе выборки адрес, хранящийся в ПК, копируется в регистр адреса памяти (MAR) , а затем адрес ПК увеличивается, чтобы «указать» адрес памяти следующей выполняемой инструкции. Затем ЦП принимает инструкцию по адресу памяти, описанному MAR, и копирует ее в регистр данных памяти (MDR) . MDR также действует как двусторонний регистр, в котором хранятся данные, полученные из памяти, или данные, ожидающие сохранения в памяти (из-за этого он также известен как регистр буфера памяти (MBR). В конце концов, инструкция в MDR копируется в регистр текущих инструкций (CIR) , который действует как временная площадка хранения для инструкции, которая только что была извлечена из памяти.
На этапе декодирования блок управления (CU) декодирует команду в CIR. Затем CU отправляет сигналы другим компонентам внутри ЦП, таким как арифметико-логическое устройство (ALU) и устройство с плавающей запятой (FPU) . АЛУ выполняет арифметические операции, такие как сложение и вычитание, а также умножение посредством многократного сложения и деление посредством многократного вычитания. [ сомнительно – обсудить ] Он также выполняет логические операции, такие как AND , OR , NOT , а двоичные сдвиги также . FPU зарезервирован для выполнения операций с плавающей запятой .
Краткое описание этапов
[ редактировать ]ЦП каждого компьютера может иметь разные циклы, основанные на разных наборах команд, но они будут похожи на следующий цикл:
- Этап выборки : следующая инструкция извлекается из адреса памяти, который в данный момент хранится в счетчике программ, и сохраняется в регистре команд. В конце операции выборки ПК указывает на следующую инструкцию, которая будет считана в следующем цикле.
- Этап декодирования : на этом этапе закодированная инструкция, представленная в регистре инструкций, интерпретируется декодером.
- Определите эффективный адрес : в случае инструкции, которая ссылается на память, на этапе выполнения необходимо будет иметь адрес памяти, который будет использоваться. Хотя некоторые инструкции могут напрямую содержать используемый адрес, часто эффективный адрес необходимо разрабатывать путем объединения значения из поля инструкции со значением, хранящимся в регистре, а в некоторых машинных архитектурах может существовать дополнительный вариант, требующий дополнительный доступ к памяти для получения необходимого адреса из памяти.
- Этап выполнения : блок управления ЦП передает декодированную информацию в виде последовательности управляющих сигналов соответствующим функциональным блокам ЦП для выполнения действий, требуемых командой, таких как чтение значений из регистров, передача их в АЛУ для выполнения. математические или логические функции над ними и запись результата обратно в регистр. Если задействован АЛУ, он отправляет сигнал состояния обратно в CU. Результат, сгенерированный операцией, сохраняется в основной памяти или отправляется на устройство вывода. На основе обратной связи от АЛУ ПК может быть обновлен до другого адреса, с которого будет получена следующая инструкция.
- Повторить цикл
Кроме того, на большинстве процессоров прерывания могут возникать . Это заставит ЦП перейти к процедуре обслуживания прерываний, выполнить ее и затем вернуться. В некоторых случаях инструкция может быть прервана в середине, инструкция не будет иметь никакого эффекта, но будет выполнена повторно после возврата из прерывания.
Инициация
[ редактировать ]Первый цикл команд начинается, как только в систему подается питание, с начальным значением PC, которое заранее определено архитектурой системы (например, в процессорах Intel IA-32 предопределенное значение PC равно 0xfffffff0
). Обычно этот адрес указывает на набор инструкций в постоянном запоминающем устройстве (ПЗУ), с которого начинается процесс загрузки (или загрузки ) операционной системы . [2]
Стадия выборки
[ редактировать ]Шаг выборки одинаков для каждой инструкции:
- ЦП отправляет содержимое ПК в MAR и отправляет команду чтения на шину управления.
- В ответ на команду чтения (с адресом, равным ПК) память возвращает данные, хранящиеся в ячейке памяти, указанной ПК на шине данных.
- ЦП копирует данные из шины данных в свой MDR (также известный как MBR; см. «Роль компонентов» выше). раздел
- Через долю секунды ЦП копирует данные из видеорегистратора в регистр команд для декодирования команд.
- PC увеличивается так, что указывает на следующую инструкцию. Этот шаг подготавливает процессор к следующему циклу.
Блок управления извлекает адрес инструкции из блока памяти .
Этап декодирования
[ редактировать ]Процесс декодирования позволяет процессору определить, какая инструкция должна быть выполнена, чтобы ЦП мог определить, сколько операндов ему необходимо получить для выполнения инструкции. Код операции, полученный из памяти, декодируется для следующих шагов и перемещается в соответствующие регистры. Декодирование обычно выполняется двоичными декодерами в ЦП блоке управления .
Определить эффективный адрес
[ редактировать ]На этом этапе оценивается, какой тип операции необходимо выполнить, и, если это операция с памятью, компьютер определяет эффективный адрес памяти, который будет использоваться на следующем этапе выполнения. Существуют различные возможные способы, которые архитектура компьютера может указать для определения адреса, обычно называемые режимами адресации .
Некоторые распространенные способы найти эффективный адрес:
- Непосредственно взято из поля инструкции
- Взято из реестра машины
- Добавление поля инструкции со значением машинного регистра
- Добавление поля инструкции и значений из двух машинных регистров (обычно базового адреса и значения индексации)
- Косвенный режим – эффективный адрес считывается из памяти по адресу, найденному одним из вышеперечисленных методов.
Этап выполнения
[ редактировать ]Возможно, этот раздел придется переписать, Википедии чтобы он соответствовал стандартам качества . ( июнь 2019 г. ) |
ЦП отправляет декодированную инструкцию в виде набора управляющих сигналов соответствующим компонентам компьютера. Если инструкция включает в себя арифметику или логику, используется АЛУ. Это единственный этап цикла инструкций, который полезен с точки зрения конечного пользователя. Все остальное — это накладные расходы, необходимые для выполнения шага выполнения.
См. также
[ редактировать ]- Временной интервал , единица планирования операционной системы.
- Классический конвейер RISC
- Циклов на инструкцию
Ссылки
[ редактировать ]- ^ Кристал Чен, Грег Новик и Кирк Шимано (2000). «Трубопровод» . Проверено 26 июня 2019 г.
- ^ Боски Агарвал (2004). «Цикл выполнения выборки инструкций» (PDF) . Архивировано из оригинала (PDF) 11 июня 2009 года . Проверено 14 октября 2012 г.