Управляющий автомат

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

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

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

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

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

УУ обычно синхронизируется внешними тактовыми импульсами, т. е. переход из состояние в состояние конечного автомата УУ происходит на каждом тактовом импульсе.

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

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

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

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

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

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

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

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

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

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

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

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

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