Синтез микропрограммных автоматов

Микропрограммный управляющий автомат – это конечный автомат, обеспечивающий выполнение микропрограмм операционным устройством.

Микропрограмма описывает алгоритм выполнения какой либо сложной операции (арифметической, логической и т. п.) в терминах микроопераций и логических условий.

К микрооперациям относятся простейшие действия над словами информации, выполняемые элементами операционного автомата (ОА): загрузка и хранение слова, инверсия слова, сложения двух слов, инкремент, декремент, сдвиг на 1 разряд влево или вправо и т. п.

Микропрограмма часто записывается в виде ГСА (подобно ГСА в программировании). Идентификаторами в микрооперациях являются обозначения операционных элементов ОА, например: RA – регистр А, СТ – счетчик и т. д., и идентификаторы переменных. Микрооперации записываются в виде операторов присваивания с использованием идентификаторов и символов микроопераций.

Примеры микроопераций:

RС: = 0 – в регистр RС записать (загрузить) число 0.

RA: = А – в регистр RA записать (загрузить) число А.

Синтез микропрограммных автоматов - student2.ru RA: = RА – инвертировать содержимое регистра RA.

RС: = RA + RВ – в регистр RС поместить результат сложения чисел, хранящихся в регистрах RА и RВ.

RА: = L1 (RA). 0 – сдвинуть влево на 1 разряд содержимое регистра RA а в освободившийся крайний правый разряд записать 0.

СТ: = СТ + 1 – изменить состояние счетчика СТ на +1.

Все операционные элементы характеризуются разрядностью. Разряды нумеруются справа налево начиная с нуля. Например, запись: СТ[3..0] - означает, что счетчик СТ – четырехразрядный. Его разряды (начиная со старших) обозначаются так: СТ[3], СТ[2], СТ[1], СТ[0].

Микрооперации, допускающие совместное выполнение, называются совместимыми. Они могут записываться в одной и той же операторной вершине ГСА.

В микропрограмме кроме микроопераций (операторные вершины ГСА) используются логические условия (условные вершины ГСА). Логические условия, как правило, вырабатываются операционным автоматом и могут принимать значения “0” (ложно) или “1” (истинно).

Примеры логических условий:

СТ=0 – содержимое счетчика СТ равно нулю.

RA(0) – содержимое младшего разряда регистра RA: если оно равно нулю – переход по выходу «0» условной вершины ГСА, если равно «1» – переход по выходу «1» условной вершины ГСА.

Микропрограмма, записанная в терминах микроопераций и логических условий, называется содержательной или функциональной.

Рассмотрим пример выполнения операции умножения двух целых положительных 8-ми разрядных двоичных чисел: С = А * В.

Алгоритм выполнения операции умножения двух целых 8 - разрядных положительных двоичных чисел можно описать следующим образом. Имеются переменные А и В – операнды операции С = А * В и переменная С, в которую будем записывать промежуточные суммы и в которой будет, в итоге, сформирован результат и счетчик циклов СТ. Алгоритм выполнения операции :

1. С = 0, СТ = 0

2. Если В[0] = 1, то С = С + А

3. А = L1(A). 0 – сдвиг числа А влево на 1 разряд (умножение на 2).

4. В = R1(В) – сдвиг числа В вправо на 1 разряд.

5. СТ = СТ + 1

6. Если СТ = 7 – перейти к пункту 8

7. Перейти к пункту 2

8. Операция выполнена

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

RB[7..0] – 8-ми разрядный регистр множителя - числа В.

Функции регистра:

- загрузка числа: RB := В;

- сдвиг числа вправо на один разряд: RВ := R1(В).

RА[15..0] – 16-ти разрядный регистр множимого - числа А. Разрядность регистра RА в два раза больше разрядности числа А, так как в процессе выполнения операции число А должно сдвигаться влево n-1 раз.

Функции регистра:

- загрузка числа: RА := А;

- сдвиг числа влево на один разряд: RА := L1(RA).

RС[15..0] – 16-ти разрядный регистр промежуточных сумм и результата. Разрядность регистра RС в два раза больше разрядности чисел А и В, так как в процессе выполнения операции число С может иметь разрядность в два раза большую, чем у чисел А и В.

Функции регистра:

- загрузка числа: RС := С;

- обнуление регистра: RС := 0.

СТ[2..0] – 3-х разрядный двоичный счетчик для подсчета числа циклов (до семи).

Функции счетчика:

- обнуление счетчика: СТ := 0;

- счет: СТ := СТ + 1.

СМ[15..0] – 16-ти разрядный сумматор – комбинационная схема дли выполнения микрооперации: RС := RС + RА

Пример содержательной микропрограммы выполнения операции умножения двух целых 8 - разрядных двоичных чисел А и В приведен на рис. 3.1.

Каждая микрооперация в ОА инициируется микрокомандой. Микрокоманды вырабатываются управляющим автоматом (УА) в зависимости от того, какая микрооперация должна выполняться в данный момент.

По микропрограмме, записанной в форме ГСА, строится ГСА управляющего аппарата. Для этого вместо микроопераций в операторных вершинах записываются микрокоманды (Yi), а вместо логических условий – условия их коды - Xi.

В ГСА управляющего автомата используются следующие микрокоманды, инициирующие выполнение соответствующих микроопераций (Таблица 3.1):

Логические условия закодируем так (Таблица 3.2):
Таблица 3.1 Таблица 3.2

Микрокоманды Микрооперации
У1 RА := А , RB := В;
У2 RС := С, СТ := 0;
У3 RС := RС + RА;
У4 RА := L1(RA);
У5 RВ := R1(В);
У6 СТ := СТ + 1;
Код лог. условия Логические условия
Х1 RB [0] = 0;
Х2 СТ = 7;

Синтез микропрограммных автоматов - student2.ru Синтез микропрограммных автоматов - student2.ru

Кроме того, в ГСА УА часто предусматривают две дополнительные вершины: одну операторную (перед вершиной “конец”) и одну условную (после вершины “начало”). В первой записывается микрокоманда завершения выполнения операции. Это микрокоманда не для операционного автомата, а для информирования о том, что операция выполнена и ОУ готово к выполнению следующей операции (в нашем примере - У7). Вторая – соответствует внешней команде “Пуск” (в нашем примере - Х3), по которой ОУ начинает выполнение операции. С учетом этого ГСА управляющего автомата для нашего примера имеет вид, приведенный на рис. 3.2.

Операционный автомат содержит ряд достаточно сложных элементов, но структура ОА достаточно проста ( рис.3.3).

Синтез микропрограммных автоматов - student2.ru

На структурной схеме ОА показаны описанные выше операционные элементы, связи между ними, указана разрядность данных и элементов. У операционных элементов – слева входы, справа – выходы, снизу показаны управляющие сигналы (микрокоманды У i), инициирующие выполнение определенной микрооперации этим элементом. На вертикальных линиях (на входах и выходах элементов) указаны разряды данных, поступающих на входы элементов и снимаемых с их выходов.

Входами для ОА являются обрабатываемые данные (числа А и В) и управляющие сигналы (микрокоманды У i, формируемые управляющим автоматом). Выходы ОА – число С (результат выполнения операции умножения) и логические условия Х i (для управляющего автомата). Взаимодействие операционного и управляющего автоматов показано на рис.3.4.

Синтез микропрограммных автоматов - student2.ru

Когда на вход УА поступает команда “Пуск” (Х3=1), управляющий автомат начинает (в соответствии с приведенной на рис.2 схемой алгоритма - ГСА) вырабатывать микрокоманды Уi, которые инициируют выполнение определенных микроопераций операционным автоматом. ОА при этом формирует логические условия Хi, в соответствии с которыми и ГСА управляющий автомат вырабатывает очередные микрокоманды. Поскольку выполнение микроопераций требует определенного времени, микрокоманды должны выдаваться управляющим автоматом с интервалом времени, достаточным для выполнения самой продолжительной микрооперации. Для этого в УА вводится синхронизация. Синхронный УА анализирует логические условия Хi и вырабатывает микрокоманды Уi в строго определенные моменты времени, задаваемыми частотой импульсов синхронизации (машинное или автоматное время).

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

Рассмотрим различные способы реализации УА, их особенности, достоинства и недостатки.

Наши рекомендации