Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет указания по ЛР ТА и ФЯ.DOC
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

2. Микропрограммный управляющий автомат

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

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

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

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

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

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

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

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-разрядных двоичных чисел А и В приведен на рис. 1.

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

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

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