Русская Википедия:Устройство управления
Управля́ющий автома́т, устро́йство управле́ния проце́ссором (УУ) (Шаблон:Lang-en) — блок, устройство, компонент аппаратного обеспечения компьютеров. Представляет собой конечный дискретный автомат. Структурно устройство управления состоит из: дешифратора команд (операций), регистра команд, узла формирования (вычисления) текущего исполнительного адреса, счётчика команд.
УУ современных процессоров обычно реализуются в виде микропрограммного автомата и в этом случае УУ включает в себя ПЗУ микрокоманд.
УУ предназначено для формирования сигналов управления для всех блоков машины[1].
В архитектуре фон Неймана является неотъемлемой частью центрального процессора[2].
Принцип действия
При выполнении программы УУ на входе получает очередную инструкцию или команду программы, которая поступает в регистр команд. Структурно регистр команд состоит из двух частей: в одной части хранится код операции (КОП), в другой части расположены адреса операндов, участвующих в управлении. Код операции поступает в дешифратор операции, который запускает последовательность смены состояний конечного автомата УУ, в современных машинах - запускает некоторую микропрограмму хранящуюся в ПЗУ микропрограмм. Суть работы УУ заключается в последовательном выставлении комбинаций сигналов управления на линиях управления.
При переходе из одного внутреннего состояния в следующее состояние конечного автомата УУ также учитывается состояние регистра признаков результата выполнения предыдущей команды (регистра флагов), состояние управляющих входов (например, сигналов готовности периферийных устройств, линий аппаратных прерываний) и на выход УУ выдает последовательности импульсов управления (межрегистровыми пересылками, адресацией и сигналами пересылок данных практически между всеми блоками компьютера — арифметико-логическим устройством (АЛУ), подсистемой ввода/вывода, оперативной памятью и другие).
Почти всегда для исполнения команды/инструкции УУ выдает несколько управляющих импульсов или их комбинаций в определяемой кодом команды/инструкции последовательности. После завершения выдачи всех импульсов управления для исполнения текущей команды УУ считывает код следующей команды и т. д.
УУ обычно синхронизируется внешними тактовыми импульсами, формируемым генератором тактовых импульсов (ГТИ), то есть переход из состояния в состояние конечного автомата УУ происходит на каждом тактовом импульсе, в некоторых УУ для увеличения быстродействия управляющие импульсы формируются как на нарастающем фронте импульса, так и на падающем.
Примеры работы УУ при исполнении команды
- Пересылка данных из одного внутреннего регистра процессора в другой.
Эта команда исполняется за 2—3 такта синхроимпульсов. В первом такте УУ выдает на шину адреса состояние счетчика команд (Program Counter — PC) для выборки кода очередной команды и импульс на линию чтения ОЗУ, при этом анализируется бит готовности ОЗУ. При готовности ОЗУ код команды передается в регистр текущей команды. Иначе УУ исполняет такты ожидания, не изменяя состояние линий управления/адреса.
Собственно исполнение этой команды выполняется за два такта синхроимпульсов, если выборка команды и декодирование её производится в одном такте. В первом такте УУ декодирует код регистра команды. Во втором такте на внутреннюю общую шину данных с помощью ключей выдается состояние регистра-источника и одновременно вход регистра-приемника подключается другими ключами к этой же внутренней шине данных, в результате этого регистр-приемник принимает состояние регистра-источника. Далее УУ размыкает ключи и переходит к исполнению следующей команды.
- Запись внутреннего регистра процессора в ОЗУ по адресу из адресного регистра.
Выборка команды из ОЗУ происходит аналогично. Для исполнения этой команды необходимо несколько тактов. Как всегда, в первом такте производится чтение и дешифрация кода команды. Затем на внешнюю шину адреса ключами, управляемыми от УУ, выдается состояние адресного регистра, и, одновременно, на внешнюю шину данных выдается состояние регистра-источника, на линию управления записью в память выдается сигнал записи. УУ проверяет сигнал готовности памяти, если ОЗУ готово, то УУ снимает все сигналы управления и переходит к чтению следующей команды, иначе исполняет пустые такты ожидания.
- Исполнение команды условного перехода.
Помимо аналогичных описанных действий, УУ дополнительно анализирует внутренний регистр состояний процессора — результата исполнения предыдущей команды. Например, если в результате предыдущей команды сложения или вычитания был получен результат 0, то в бите регистра состояния процессора (флаге) записывается признак нуля. УУ при исполнении команды условного перехода (в этом примере команда - перейти если нуль, на языке ассемблера обычно мнемокод команды записывают как JZ <адрес перехода>) анализирует этот флаг и, в зависимости от его состояния, либо загружает в счетчик команд указанный в команде адрес перехода, либо при невыполнении условия загружает в счетчик команд адрес следующей по порядку в программе команды.
Описанные примеры упрощены, в современных процессорах стремятся исполнить в одном такте как можно больше действий, иногда действия производятся на фронте и спаде тактового сигнала. Когда одна команда занимает несколько слов в программной памяти, тогда УУ последовательно считывает все слова кода команды и, только после этого, приступает к её исполнению.
Микропрограммный управляющий автомат
Шаблон:Main В ранних компьютерах УУ проектировалось и исполнялось в виде «жесткой логики» — комбинационных логических схем, триггеров, регистров, дешифраторов.
В 1951 году М. В. Уилксом было предложено проектировать УУ в виде микропрограммного автомата, то есть формировать последовательности управляющих импульсов с помощью микропрограммного автомата, управляемого микропрограммами, состоящими из микроинструкций, хранимой в постоянной или перезашиваемой (перепрограммируемой) микропрограммной памяти процессора. Такой подход существенно снижает трудозатраты на проектирование конечного автомата УУ и дополнительно позволяет относительно легко его модифицировать. С развитием полупроводниковой техники и появлением на рынке большого числа программируемых контроллеров при создании УУ этот подход стал доминирующим.
Однако в последние годы для некоторых систем АСУ ТП наметилась тенденция возврату (на новом технологическом уровне) к использованию систем основанных на жёсткой логике, в частности потому, что они обладают высокой степенью защищённости от компьютерных атакШаблон:Нет АИ.
См. также
Примечания