Устройство управления

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
(перенаправлено с «Управляющий автомат»)

Управля́ющий автома́т, устро́йство управле́ния проце́ссором (УУ) (англ. control unit, CU) — блок, устройство, компонент аппаратного обеспечения компьютеров. Представляет собой конечный дискретный автомат. Структурно устройство управления состоит из: дешифратора команд (операций), регистра команд, узла формирования (вычисления) текущего исполнительного адреса, счётчика команд.

УУ современных процессоров обычно реализуются в виде микропрограммного автомата и в этом случае УУ включает в себя ПЗУ микрокоманд.

УУ предназначено для формирования сигналов управления для всех блоков машины[1].

В архитектуре фон Неймана является неотъемлемой частью центрального процессора[2].

Функциональная блок-схема устройства управления

Принцип действия

При выполнении программы УУ на входе получает очередную инструкцию или команду программы, которая поступает в регистр команд. Структурно регистр команд состоит из двух частей: в одной части хранится код операции (КОП), в другой части расположены адреса операндов, участвующих в управлении. Код операции поступает в дешифратор операции, который запускает последовательность смены состояний конечного автомата УУ, в современных машинах - запускает некоторую микропрограмму хранящуюся в ПЗУ микропрограмм. Суть работы УУ заключается в последовательном выставлении комбинаций сигналов управления на линиях управления.

При переходе из одного внутреннего состояния в следующее состояние конечного автомата УУ также учитывается состояние регистра признаков результата выполнения предыдущей команды (регистра флагов), состояние управляющих входов (например, сигналов готовности периферийных устройств, линий аппаратных прерываний) и на выход УУ выдает последовательности импульсов управления (межрегистровыми пересылками, адресацией и сигналами пересылок данных практически между всеми блоками компьютера — арифметико-логическим устройством (АЛУ), подсистемой ввода/вывода, оперативной памятью и другие).

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

УУ обычно синхронизируется внешними тактовыми импульсами, формируемым генератором тактовых импульсов (ГТИ), то есть переход из состояния в состояние конечного автомата УУ происходит на каждом тактовом импульсе, в некоторых УУ для увеличения быстродействия управляющие импульсы формируются как на нарастающем фронте импульса, так и на падающем.

Примеры работы УУ при исполнении команды

Пересылка данных из одного внутреннего регистра процессора в другой.

Эта команда исполняется за 2—3 такта синхроимпульсов. В первом такте УУ выдает на шину адреса состояние счетчика команд (Program Counter — PC) для выборки кода очередной команды и импульс на линию чтения ОЗУ, при этом анализируется бит готовности ОЗУ. При готовности ОЗУ код команды передается в регистр текущей команды. Иначе УУ исполняет такты ожидания, не изменяя состояние линий управления/адреса.

Собственно исполнение этой команды выполняется за два такта синхроимпульсов, если выборка команды и декодирование её производится в одном такте. В первом такте УУ декодирует код регистра команды. Во втором такте на внутреннюю общую шину данных с помощью ключей выдается состояние регистра-источника и одновременно вход регистра-приемника подключается другими ключами к этой же внутренней шине данных, в результате этого регистр-приемник принимает состояние регистра-источника. Далее УУ размыкает ключи и переходит к исполнению следующей команды.

Запись внутреннего регистра процессора в ОЗУ по адресу из адресного регистра.

Выборка команды из ОЗУ происходит аналогично. Для исполнения этой команды необходимо несколько тактов. Как всегда, в первом такте производится чтение и дешифрация кода команды. Затем на внешнюю шину адреса ключами, управляемыми от УУ, выдается состояние адресного регистра, и, одновременно, на внешнюю шину данных выдается состояние регистра-источника, на линию управления записью в память выдается сигнал записи. УУ проверяет сигнал готовности памяти, если ОЗУ готово, то УУ снимает все сигналы управления и переходит к чтению следующей команды, иначе исполняет пустые такты ожидания.

Исполнение команды условного перехода.

Помимо аналогичных описанных действий, УУ дополнительно анализирует внутренний регистр состояний процессора — результата исполнения предыдущей команды. Например, если в результате предыдущей команды сложения или вычитания был получен результат 0, то в бите регистра состояния процессора (флаге) записывается признак нуля. УУ при исполнении команды условного перехода (в этом примере команда - перейти если нуль, на языке ассемблера обычно мнемокод команды записывают как JZ <адрес перехода>) анализирует этот флаг и, в зависимости от его состояния, либо загружает в счетчик команд указанный в команде адрес перехода, либо при невыполнении условия загружает в счетчик команд адрес следующей по порядку в программе команды.

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

Микропрограммный управляющий автомат

В ранних компьютерах УУ проектировалось и исполнялось в виде «жесткой логики» — комбинационных логических схем, триггеров, регистров, дешифраторов.

В 1951 году М. В. Уилксом было предложено проектировать УУ в виде микропрограммного автомата, то есть формировать последовательности управляющих импульсов с помощью микропрограммного автомата, управляемого микропрограммами, состоящими из микроинструкций, хранимой в постоянной или перезашиваемой (перепрограммируемой) микропрограммной памяти процессора. Такой подход существенно снижает трудозатраты на проектирование конечного автомата УУ и дополнительно позволяет относительно легко его модифицировать. С развитием полупроводниковой техники и появлением на рынке большого числа программируемых контроллеров при создании УУ этот подход стал доминирующим.

Однако в последние годы для некоторых систем АСУ ТП наметилась тенденция возврату (на новом технологическом уровне) к использованию систем основанных на жёсткой логике, в частности потому, что они обладают высокой степенью защищённости от компьютерных атак[источник не указан 1637 дней].

См. также

Примечания

  1. Информатика: Учебник / Н. В. Макарова. — Финансы и статистика, 2006. — 768 с. — ISBN 978-5-279-02202-1.
  2. фон Нейман. First Draft of a Report on the EDVAC. 1945