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

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Управляющий автомат»)
Перейти к: навигация, поиск

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

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

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

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

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

Принцип действия[править | править вики-текст]

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

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

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

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

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

Примеры работы УУ при исполнении команды[править | править вики-текст]

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

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

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

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

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

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

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

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

Микропрограммный управляющий автомат[править | править вики-текст]

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

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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

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