КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Синтез микропрограммных автоматовСтр 1 из 4Следующая ⇒
Микропрограммный управляющий автомат – это конечный автомат, обеспечивающий выполнение микропрограмм операционным устройством. Микропрограмма описывает алгоритм выполнения какой либо сложной операции (арифметической, логической и т. п.) в терминах микроопераций и логических условий. К микрооперациям относятся простейшие действия над словами информации, выполняемые элементами операционного автомата (ОА): загрузка и хранение слова, инверсия слова, сложения двух слов, инкремент, декремент, сдвиг на 1 разряд влево или вправо и т. п. Микропрограмма часто записывается в виде ГСА (подобно ГСА в программировании). Идентификаторами в микрооперациях являются обозначения операционных элементов ОА, например: RA – регистр А, СТ – счетчик и т. д., и идентификаторы переменных. Микрооперации записываются в виде операторов присваивания с использованием идентификаторов и символов микроопераций. Примеры микроопераций: RС: = 0 – в регистр RС записать (загрузить) число 0. RA: = А – в регистр 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 - разрядных двоичных чисел А и В приведен на рис. 3.1. Каждая микрооперация в ОА инициируется микрокомандой. Микрокоманды вырабатываются управляющим автоматом (УА) в зависимости от того, какая микрооперация должна выполняться в данный момент. По микропрограмме, записанной в форме ГСА, строится ГСА управляющего аппарата. Для этого вместо микроопераций в операторных вершинах записываются микрокоманды (Yi), а вместо логических условий – условия их коды - Xi. В ГСА управляющего автомата используются следующие микрокоманды, инициирующие выполнение соответствующих микроопераций: Таблица 3.1
Логические условия закодируем так:
Таблица 3.2
Кроме того, в ГСА УА часто предусматривают две дополнительные вершины: одну операторную (перед вершиной “конец”) и одну условную (после вершины “начало”). В первой записывается микрокоманда завершения выполнения операции. Это микрокоманда не для операционного автомата, а для информирования о том, что операция выполнена и ОУ готово к выполнению следующей операции (в нашем примере - У7). Вторая – соответствует внешней команде “Пуск” (в нашем примере - Х3), по которой ОУ начинает выполнение операции. С учетом этого ГСА управляющего автомата для нашего примера имеет вид, приведенный на рис. 3.2. Операционный автомат содержит ряд достаточно сложных элементов, но структура ОА достаточно проста ( рис.3.3).
На структурной схеме ОА показаны описанные выше операционные элементы, связи между ними, указана разрядность данных и элементов. У операционных элементов – слева входы, справа – выходы, снизу показаны управляющие сигналы (микрокоманды У i), инициирующие выполнение определенной микрооперации этим элементом. На вертикальных линиях (на входах и выходах элементов) указаны разряды данных, поступающих на входы элементов и снимаемых с их выходов. Входами для ОА являются обрабатываемые данные (числа А и В) и управляющие сигналы (микрокоманды У i, формируемые управляющим автоматом). Выходы ОА – число С (результат выполнения операции умножения) и логические условия Х i (для управляющего автомата). Взаимодействие операционного и управляющего автоматов показано на рис.3.4. Когда на вход УА поступает команда “Пуск” (Х3=1), управляющий автомат начинает (в соответствии с приведенной на рис.2 схемой алгоритма - ГСА) вырабатывать микрокоманды Уi, которые инициируют выполнение определенных микроопераций операционным автоматом. ОА при этом формирует логические условия Хi, в соответствии с которыми и ГСА управляющий автомат вырабатывает очередные микрокоманды. Поскольку выполнение микроопераций требует определенного времени, микрокоманды должны выдаваться управляющим автоматом с интервалом времени, достаточным для выполнения самой продолжительной микрооперации. Для этого в УА вводится синхронизация. Синхронный УА анализирует логические условия Хi и вырабатывает микрокоманды Уi в строго определенные моменты времени, задаваемыми частотой импульсов синхронизации (машинное или автоматное время).
Управляющий автомат может быть реализован различными способами: на жесткой логике, на программируемых матрицах, на программируемой логике. Рассмотрим различные способы реализации УА, их особенности, достоинства и недостатки.
|