Алгоритм выполнения операции
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.1
Микрокоманды | Микрооперации |
У1 | RА := А , RB := В; |
У2 | RС := С, СТ := 0; |
У3 | RС := RС + RА; |
У4 | RА := L1(RA); |
У5 | RВ := R1(В); |
У6 | СТ := СТ + 1; |
Логические условия закодируем следующим образом (табл. 3.2).
Таблица 3.2
Код логического условия | Логические условия |
Х1 | RB [0] = 0; |
Х2 | СТ = 7; |
Кроме того, в ГСА УА часто предусматривают две дополнительные вершины – одну операторную (перед вершиной «конец») и одну условную (после вершины «начало»). В первой записывается микрокоманда завершения выполнения операции. Это микрокоманда не для операционного автомата, а для информирования о том, что операция выполнена и ОУ готово к выполнению следующей операции (в нашем примере – У7). Вторая соответствует внешней команде «Пуск» (в нашем примере – Х3), по которой ОУ начинает выполнение операции. С учетом этого ГСА управляющего автомата для нашего примера имеет вид, приведенный на рис. 3.2.
Операционный автомат содержит ряд достаточно сложных элементов, но структура ОА достаточно проста (рис. 3.3).
На структурной схеме ОА показаны описанные выше операционные элементы, связи между ними, указана разрядность данных и элементов. У операционных элементов – слева входы, справа – выходы; снизу показаны управляющие сигналы (микрокоманды У i), инициирующие выполнение определенной микрооперации этим элементом.
На вертикальных линиях (на входах и выходах элементов) указаны разряды данных, поступающих на входы элементов и снимаемых с их выходов.
Входами для ОА являются обрабатываемые данные (числа А и В) и управляющие сигналы (микрокоманды У i, формируемые управляющим автоматом). Выходы ОА – число С (результат выполнения операции умножения) и логические условия Х i (для управляющего автомата). Взаимодействие операционного и управляющего автоматов показано на рис. 3.4.
Когда на вход УА поступает команда «Пуск» (Х3=1), управляющий автомат начинает (в соответствии с приведенной на рис. 3.2 схемой алгоритма – ГСА) вырабатывать микрокоманды Уi, которые инициируют выполнение определенных микроопераций операционным
Рис. 3.3. Структурная схема операционного автомата
Рис. 3.1 Рис. 3.2
Рис. 3.4. Взаимодействие УА и ОА
автоматом. ОА при этом формирует логические условия Хi, в соответствии с которыми и ГСА управляющий автомат вырабатывает очередные микрокоманды.
Поскольку выполнение микроопераций требует определенного времени, микрокоманды должны выдаваться управляющим автоматом с интервалом времени, достаточным для выполнения самой продолжительной микрооперации. Для этого в УА вводится синхронизация. Синхронный УА анализирует логические условия Хi и вырабатывает микрокоманды Уi в строго определенные моменты времени, задаваемые частотой импульсов синхронизации (машинное или автоматное время).
Управляющий автомат может быть реализован различными способами: на жесткой логике, на программируемых матрицах, на программируемой логике.
Дата добавления: 2015-08-11; просмотров: 2165;