Как указывалось ранее, любое цифровое устройство можно рассматривать состоящим из двух блоков - операционного и управляющего.
Любая команда, операция или процедура, выполняемая в операционном блоке, описывается некоторой микропрограммой и реализуется за несколько тактов, в каждом из которых выполняется одна или несколько микроопераций. Интервал времени, отводимый на выполнение микрооперации, называется рабочим тактом или просто тактом цифрового устройства. Если все такты имеют одну и ту же длину, то она устанавливается по самой продолжительной микрооперации.
Для реализации команды, операции или процедуры (микропрограммы) необходимо на соответствующие управляющие входы операционного блока подать определенным образом распределенную во времени последовательность управляющих функциональных сигналов. Например, для выполнения приведенной в предыдущей главе микропрограммы операции сложения и вычитания необходимо подвести к управляющим входам АЛУ следующую последовательность функциональных сигналов :
Такты
1 ПрРгВ
2 ПрРг1
3 ПрРгАП или ПрРгАИ
4 ПрРгСм или ПрРгСм, + 1 См
5 ПрШИВых
Подчеркнем, что каждый управляющий функциональный сигнал поступает в начале некоторого такта на соответствующий вход АЛУ, вызывая в этом такте выполнение в АЛУ определенной микрооперации (передача слова, суммирование кодов и др.)
Часть цифрового вычислительного устройства, предназначенная для выработки последовательностей управляющих функциональных сигналов, называется управляющим блоком или управляющим устройством. Генерируемая управляющим блоком последовательность управляющих сигналов задается поступающими на входы блока кодом операции, сигналами из операционного блока, несущими информацию об особенностях операндов, промежуточных и конечного результатов операции, а также синхросигналами, задающими границы тактов.
Формально управляющий блок можно рассматривать как конечный автомат, определяемый:
а) множеством двоичных выходных сигналов
V={v1, v2,...,vm},
соответствующих множеству микроопераций операционного блока. При Vi = 1 возбуждается i-я микрооперация
б) множествами входных сигналов Z и U:
Z={z1, z2,…,zp};
и= {u1, u2,. ..,un},
соответствующих задаваемому блоку извне двоичному коду операции (Z) и двоичным оповещающим сигналам (U);
в) множеством подлежащих реализации микропрограмм, устанавливающих в зависимости от значений входных сигналов управляющие сигналы, выдаваемые блоком в определенные такты.
По множествам входных и выходных сигналов и микропрограммам определяется множество внутренних состояний блока
S = {Q0, Q1,…,Qr}
мощность которого (объем памяти управляющего блока) в процессе проектирования стараются минимизировать.
Сказанное поясняет, почему управляющие блоки называют управляющими автоматами. Поскольку эти автоматы задаются микропрограммами, они часто именуются микропрограммными автоматами.
Управляющий автомат может быть задан как автомп; Мура:
где функция переходов А и функции выходов В, определяются заданной микропрограммой.
Существуют два основных типа управляющих автоматов:
1. Управляющий автомат с жесткой, или схемной, логикой. Для каждой операции, задаваемой, например, кодом операции команды, строится набор комбинационных схем, которые в нужных тактах возбуждают соответствующие управляющие сигналы. Другими словами, строится конечный автомат, в котором необходимое множество состояний представляется состояниями k запоминающих элементов:
q = {q1, q2, …, qk}
где k = ]log2 (r+ 1) [ при S = {Qo, Q1, ..., Qr,}, а функции переходов и выходов А и Вi реализуются с помощью комбинационных схем.
2. Управляющий автомат с хранимой в памяти логикой (с «запоминаемой или программируемой логикой»). Каждой выполняемой в операционном устройстве операции ставится в соответствие совокупность хранимых в памяти слов — микрокоманд, содержащих каждая информацию о микрооперациях, подлежащих выполнению в течение одного машинного такта, и указание (в общем случае зависящее от значений входных сигналов), какое должно быть выбрано из памяти следующее слово (следующая микрокоманда). Таким образом, в этом случае функции переходов и выходов А и В, управляющего автомата реализуются хранимой в памяти совокупностью микрокоманд.
Последовательность микрокоманд, выполняющих одну машинную команду или отдельную процедуру, образует микропрограмму. Обычно микропрограммы хранятся в специальной памяти микропрограмм («управляющей памяти»).
В управляющих автоматах с хранимой в памяти программой микропрограммы используются в явной форме, они программируются в кодах микрокоманд и в таком виде заносятся в память. Поэтому такой метод управления цифровым устройством называется микропрограммированием, а использующие этот метод управляющие блоки—микропрограммными управляющими устройствами.