Цикл выполнения команды (все зависимости от ЭВМ) включает в себя крупные блоки:
1) Чтение текущей команды из ячейки оперативной памяти
Обычно чтение размещено на специальный регистр.
2) Дешифрация кода операции (команды) для определения выполняемой операции, количество операндов и использованных способов адресации.
3) Определение местоположения операндов в соответствии с используемыми способами адресации; извлечение операндов и передача их в арифметико-логическое устройство (извлечение в АЛУ)
4) Выполнение операции в АЛУ с получением результата на его выходе, коим является регистр результата.
Помимо результата АЛУ обычно формирует некоторые признаки, дополнительно характеризующие полученный результат (флаги) Эти признаки в дальнейшем используются для организации ветвления в программе.
5) Формирование адреса и запись результата в ООП
6) Формирование адреса следующей команды (адрес текущей + величина исполн. команды)
Действия, осуществляемые в процессе цикла команды, носят названия микрооперации, а совокупность этих действий для выполнения команды образует микропрограмму.
|
|
Первый этап – выборка исполняемой команды из ОЗУ. Для реализации этого этапа необходимо код со счетчика команд (СК) = kпередать в ОЗУ, обратиться в ячейку ОЗУ с адресом k и содержимое этой ячейки, являющееся кодом этой команды, передать на регистр команд. Соответствующие передачи отмечены на рис. 12.1 цифрой 1: передача кода СК на РА (регистр адреса) ОЗУ, дешифрация адреса на дешифраторе адреса (ДшА), считывание команды из ячейки (k) ОЗУ и передача ее в РК.
Регистр адреса служит для хранения адреса, по которому происходит обращение к ОЗУ, на время этого обращения. Дешифратор преобразует поступающий на него адрес в унитарный код, который непосредственно воспринимается физическими элементами схем памяти. На его выходах всегда имеется одна и только одна возбужденная шина, соответствующая адресу выбираемой ячейки. Регистр команд предназначен для хранения в процессоре считанной из ОЗУ команды на время ее выполнения. На этом этапе после приема команды на РК дешифратор кода операции (ДшКОп) по операционной части выполняемой команды определяет тип команды. Сигнал с ДшКОп таким образом настраивает блок управления операциями (БУОп), что на его выходах формируются управляющие сигналы (УСi), которые необходимы для автоматического выполнения всего цикла команды вплоть до занесения в РК новой команды. Формирование УСi проходит на основе сигналов с датчика сигналов (ДС), который вырабатывает импульсы, равномерно распределенные по своим выходам. Регистр команд, дешифратор кода операции, блок управления операциями, датчик сигналов, счетчик команд составляют устройство управления.
|
|
Если данная команда не является командой перехода, то реализуется следующая последовательность этапов как продолжение первого.
Второй этап – выборка первого операнда (a). Необходимо код из поля адреса первого операнда – a из РК передать в ОЗУ, обратиться к ячейке с адресом a в оперативной памяти и код этой ячейки передать в АЛУ. Соответствующие передачи обозначены на рис. 12.1 цифрой 2.
Третий этап – выборка второго операнда (b). Производится по аналогии со вторым этапом. Соответствующие передачи на рис. 12.1 отмечены цифрой 3.
Четвертый этап – выполнение операции в соответствии с полем кода операции команды. Еще в конце первого этапа коммутатор операций определил тип выполняемой команды. Операнды переданы в АЛУ на втором и третьем этапах. Блок управления операциями формирует управляющие сигналы, необходимые для выполнения данной операции в АЛУ. Результат выполненной в АЛУоперации сохраняется в его внутреннем регистре результата (РР), а признаки результата – в регистре признаков АЛУ. Соответствующие передачи и взаимодействия блоков обозначены на рис. 12.1 цифрой 4.
Пятый этап – обращение к ОЗУ и запись по адресу c результата операции. Здесь код поля c регистра команд передается в ОЗУ на РА. Затем в ячейку ОЗУ с адресом c записывается результат операции, находящийся в регистре результата АЛУ. Признаки результата записываются из регистра признаков АЛУ в регистр флагов компьютера, из которого они передаются в БУОп, если очередная считанная в РК команда окажется командой условного перехода. Соответствующие передачи обозначены на рис. 12.1 цифрой 5.
Шестой этап – формирование адреса ячейки ОЗУ, где находится следующая команда программы, то есть замена старого кода в счетчике команд на новый. Так как в ЭВМ предполагается естественный порядок выполнения программы, то следующая команда находится в ячейках ОЗУ, располагающихся сразу же вслед за ячейками, занятыми выполненной командой. Считая, что выполненная команда занимает в памяти ячеек, получим, что суть этого этапа заключается в следующем изменении счетчика команд: . На этом заканчивается цикл выполнения команды: в СК сформирован адрес следующей команды . Выполнение этого этапа может совмещаться с выполнением предшествующих этапов, что и реализовано в большинстве ЭВМ.