Цифровые автоматы
3.1. Общая структура цифровых автоматов.
В любом устройстве обработки цифровой информации можно выделить операционный и управляющий блоки.
Операционный блок состоит из регистров, сумматоров и других узлов, производящих прием из внешней среды и хранение кодов слов, их преобразование и выдачу во внешнюю среду результата преобразования, а также выдачу в управляющий блок и внешнюю среду оповещающих сигналов, принадлежащих к множеству
U= {u1, u2, ...,un},
о знаках и особых значениях операндов, их отдельных разрядов, особых значениях промежуточных и конечных результатов операции (например, равенство нулю результата операции и др.).
Процесс функционирования во времени устройства обработки цифровой информации состоит из последовательности тактовых интервалов, в которых операционный блок производит определенные элементарные операции преобразования слов. Операционный блок выполняет некоторый набор элементарных преобразований информации, например таких, как передача слова из одного регистра в другой, взятие обратного кода, сдвиг и др. Выполнение этих элементарных операций инициируется поступлением в операционный блок соответствующих управляющих сигналов из некоторого множества сигналов
V={v1,v2,...,vm}.
Рис. 3.1. Операционный и управляющий блоки цифрового устройства
Элементарная функциональная операция (или их некоторая комбинация), выполняемая за один тактовый интервал и приводимая в действие одним управляющим сигналом vi называется микрооперацией.
В некоторые такты могут поступать несколько управляющих сигналов, вызывая параллельное во времени выполнение соответствующих микроопераций. Такая совокупность микроопераций называется микрокомандой. В частности, микрокоманда может состоять из одной микрооперации.
Управляющий блок (или управляющий автомат) вырабатывает распределенную во времени последовательность управляющих сигналов
vt1, vt2, …, vtk (vtj V)
порождающих в операционном блоке нужную последовательность микроопераций.
Последовательность управляющих сигналов определяется сигналами Z кода операции, поступающими в управляющий блок извне, и сигналами U, зависящими от операндов и промежуточных результатов преобразований.
Операционный блок задается его структурой, т. е. составом узлов и связями между ними, и выполняемым операционным блоком набором микроопераций.
Последовательность микрокоманд, обеспечивающая выполнение данной операции (например, операции нормализации числа с плавающей запятой), называется микропрограммой данной операции.
Функционирование вычислительного устройства может быть описано совокупностью реализуемых в нем микропрограмм
3.4. Типы управляющих автоматов
Как указывалось ранее, любое цифровое устройство можно рассматривать состоящим из двух блоков - операционного и управляющего.
Любая команда, операция или процедура, выполняемая в операционном блоке, описывается некоторой микропрограммой и реализуется за несколько тактов, в каждом из которых выполняется одна или несколько микроопераций. Интервал времени, отводимый на выполнение микрооперации, называется рабочим тактом или просто тактом цифрового устройства. Если все такты имеют одну и ту же длину, то она устанавливается по самой продолжительной микрооперации.
Для реализации команды, операции или процедуры (микропрограммы) необходимо на соответствующие управляющие входы операционного блока подать определенным образом распределенную во времени последовательность управляющих функциональных сигналов. Например, для выполнения приведенной в предыдущей главе микропрограммы операции сложения и вычитания необходимо подвести к управляющим входам АЛУ следующую последовательность функциональных сигналов :
Такты
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}
мощность которого (объем памяти управляющего блока) в процессе проектирования стараются минимизировать.
Сказанное поясняет, почему управляющие блоки называют управляющими автоматами. Поскольку эти автоматы задаются микропрограммами, они часто именуются микропрограммными автоматами.
Управляющий автомат может быть задан как автомп; Мура:
Q(t+1)=A[Q(t), z1(t),...,zp(t), u1(t),...,un(t)];
v1(t) = B1[Q (t)];
…………………….
vm(t) = Bm[Q(t)]; (7.1)
или как автомат Мили:
Q(t+1)=A[Q(t), z1(t),...,zp(t), u1(t),...,un(t)];
v1(t) = B1[Q (t), z1(t),...,zp(t), u1(t),...,un(t)];
…………………….
vm(t) = Bm[Q(t) , z1(t),...,zp(t), u1(t),...,un(t)]; (7.1a)
где функция переходов А и функции выходов В, определяются заданной микропрограммой.
Существуют два основных типа управляющих автоматов:
1. Управляющий автомат с жесткой, или схемной, логикой. Для каждой операции, задаваемой, например, кодом операции команды, строится набор комбинационных схем, которые в нужных тактах возбуждают соответствующие управляющие сигналы. Другими словами, строится конечный автомат, в котором необходимое множество состояний представляется состояниями k запоминающих элементов:
q = {q1, q2, …, qk}
где k = ]log2 (r+ 1) [ при S = {Qo, Q1, ..., Qr,}, а функции переходов и выходов А и Вi реализуются с помощью комбинационных схем.
2. Управляющий автомат с хранимой в памяти логикой (с «запоминаемой или программируемой логикой»). Каждой выполняемой в операционном устройстве операции ставится в соответствие совокупность хранимых в памяти слов — микрокоманд, содержащих каждая информацию о микрооперациях, подлежащих выполнению в течение одного машинного такта, и указание (в общем случае зависящее от значений входных сигналов), какое должно быть выбрано из памяти следующее слово (следующая микрокоманда). Таким образом, в этом случае функции переходов и выходов А и В, управляющего автомата реализуются хранимой в памяти совокупностью микрокоманд.
Последовательность микрокоманд, выполняющих одну машинную команду или отдельную процедуру, образует микропрограмму. Обычно микропрограммы хранятся в специальной памяти микропрограмм («управляющей памяти»).
В управляющих автоматах с хранимой в памяти программой микропрограммы используются в явной форме, они программируются в кодах микрокоманд и в таком виде заносятся в память. Поэтому такой метод управления цифровым устройством называется микропрограммированием, а использующие этот метод управляющие блоки—микропрограммными управляющими устройствами.