
5. ОПИСАНИЕ УСЛОВИЙ ФУНКЦИОНИРОВАНИЯ И СИНТЕЗ МИКРОПРОГРАММНЫХ АВТОМАТОВ
5.1 Понятие о микропрограммном управлении и микропрограммных устройствах
Как показал академик Глушков В.М., в любой системе обработки информации можно выделить операционный и управляющий блоки. Такой подход облегчает понимание процесса функционирования вычислительного устройства. Декомпозиция цифрового вычислительного устройства широко используется при проектировании систем обработки информации.
Рассмотренные выше методы синтеза цифровых устройств использовали их представление в виде совокупности двух основных блоков: комбинационного и блока памяти. Такой подход обладает универсальностью и обеспечивает хорошие результаты при построении относительно не сложных цифровых устройств. Однако, получение на его основе процедуры синтеза цифровых устройств оказывается чрезмерно громоздким и трудоемким при построении устройств средней и большой сложности, имеющих важное практическое значение. Работа таких устройств обычно заключается в реализации некоторого алгоритма обработки информации, т.е. в выполнении упорядоченной последовательности операций. При построении таких автоматов целесообразно использовать принцип микропрограммного управления, состоящий в следующем:
любая операция, реализуемая устройством, рассматривается как сложное действие, которое разделяется на последовательность элементарных действий, называемых микрооперациями, (например, сложение 2-х чисел на сумматоре накапливающего типа, рис. 5.1);
для управления порядком следования микрооперацией используются логические условия Р, применяемые в зависимости от результатов выполнения микроопераций значения 1 или 0 (рис.5.2);
Рисунок 5.1 - Сложение двух чисел на сумматоре
Рисунок 5.2 - Управляющий блок Р1 = 1, Р1 = 0
процесс выполнения операций в устройстве описывается в форме алгоритма, представленного в терминах микроопераций и логических условий, и называемого микропрограммой;
микропрограмма используется как форма представления функций устройства, на основе которой определяется его структура и порядок функционирования.
Любая команда, операция или процедура, выполняющаяся в операционном блоке, описывается некоторой микропрограммой и реализуется за несколько тактов, в каждом из которых выполняется одна или несколько микроопераций. Управляющий блок обеспечивает формирование микроопераций, входящих в микропрограмму.
Взаимодействие управляющего автомата (УА) с операционным автоматом (ОА) показано на рис. 5.3.
Рисунок 5.3 - Взаимодействие управляющего автомата с операционным автоматом
ОА предназначен для хранения поступающей информации I, выполнения заданного набора микроопераций, формирования значений логических условий Р {Р0, Р1,..., Ре} и выходных символов Z.
УА генерирует последовательность управляющих сигналов Y {Y0, Y1,...,Ym} в соответствии с заданной микропрограммой φi(i = 1 ÷ n) и со значениями логических условий Р {Р0, Р1,..., Ре}.
Каждый управляющий сигнал Yi (i = 0 ÷ m) инициализирует выполнение соответствующей микрооперации в ОА. В общем случае цифровое устройство предназначается для выполнения ряда микропрограмм, и на УА подается внешний сигнал φi, в соответствии с которым начинается выполнение той или иной микропрограммы. Если цифровое устройство является частью системы обработки информации, то оно может также обмениваться специальными сигналами логических условий v и управления X с другими блоками системы.
В состав ОА входят, главным образом, типовые функциональные узлы: регистры, счетчики, сумматоры, дешифраторы, шифраторы, арифметико-логические устройства и т.п.
Операционные автоматы в устройствах связи отличаются от автоматов, используемых в универсальных ЭВМ, двумя особенностями.
Во-первых, цифровые устройства связи представляют собой узкоспециализированные устройства с весьма ограниченным кругом операций. Так, в цифровых фильтрах выполняются лишь две арифметические операции над числами с фиксированной запятой - сложение и умножение. Функциональная схема автомата оказывается сравнительно простой.
Во-вторых, цифровые устройства связи работают в реальном масштабе времени. Поэтому во многих случаях скорость обработки информации должна быть весьма высокой, т.е. операционный автомат должен быть весьма быстродействующим. Однако иногда, как, например, в квазиэлектронных АТС, операционный автомат, работающий в реальном масштабе времени, может быть сравнительно медленным.
Объем оборудования УА зависит от сложности реализуемого алгоритма и от структуры этого автомата, которую можно выполнить в 3-х вариантах:
1. УА с жесткой (схемной, произвольной) логикой, при которой логические функции, необходимые для формирования заданной последовательности управляющих сигналов Yi, реализуются с помощью логических элементов с произвольными связями (обычно с применением схем с малой и средней степенью интеграции). Здесь используется аппаратный подход к реализации устройства.
2. УА с хранимой в памяти (гибкой, программной) логикой, при которой сигналы Yi вырабатываются на основе совокупности управляющих слов, хранимых в памяти автомата. В этом случае составленные микропрограммы используются в явной форме и обычно записываются в постоянные запоминающие устройства (ПЗУ), выполненные на основе полупроводниковых БИС большой емкости, что позволяет обеспечить регулярность структуры УА и его компактность, здесь используется аппаратно-программный подход к реализации устройства.
3. УА на основе программируемых логических матриц (ПЛМ), в котором заданные функции реализуются с помощью БИС, что позволяет сочетать многие достоинства первых двух вариантов. Таким образом, использование принципа микропрограммного управления позволяет упорядочить и упростить процедуру логического проектирования цифровых устройств, обеспечить регулярность их структуры, а также открывает возможность широкого применения современных БИС. Принцип микропрограммирования применяется при создании микропроцессоров и устройств на их основе. Это не только позволяет упорядочить управление, но и дает возможность формировать систему команд микропроцессора по своему усмотрению, исходя из имеющейся системы микрокоманд. Блоки, которые используют микропрограммирование, называются микропрограммными управляющими устройствами.
Каждой команде, входящей в программу, в свою очередь, соответствует целая совокупность последовательно выполняемых более мелких команд - микрокоманд, которые образуют микропрограмму. И, наконец, каждая микрокоманда представляет собой совокупность управляющих сигналов -микроопераций, выполняемых одновременно. Схема, показывающая связь введенных понятий, представлена на рис. 5.4.
Рисунок 5.4 - Элементы микропрограммного управления
Управляющий автомат с памятью формирует последовательность микрокоманд, соответствующих данной команде, т.е. реализует микропрограммы. В соответствии с формируемыми микрокомандами выбираются необходимые исходные данные, передаются в операционное устройство, преобразуются там, а полученные результаты отправляются в запоминающее устройство, либо в устройство вывода. В конце исполнения команды, если это не команда “Стоп”, устройство управления формирует микрокоманду, по которой из памяти автомата осуществляется выбор очередной команды и передача ее в устройство управления. После этого цикл работы автомата повторяется. Из сказанного следует, что устройство управления совместно с запоминающим устройством обеспечивает в автомате реализацию принципа программного управления, суть которого состоит в предварительной записи в запоминающее устройство программы, затем в последовательной выборке входящих в нее команд и в их последовательной реализации. Такой принцип позволяет строить автоматы, обладающие большой гибкостью, так как любое изменение программы (без изменения состава команд) приводит лишь к изменению объема памяти и перезаписи программы.
5.2. Языки описания микропрограммных устройств
Логические схемы алгоритмов
Использование таблиц переходов и выходов не единственный и не самый удобный способ задания закона функционирования автоматов.
С точки зрения компактности и возможности преобразования более подходящими для цели задания оказались логические схемы алгоритмов (ЛСА), матричные схемы алгоритмов(МСА), граф схемы алгоритмов (ГСА) и формулы перехода (ФМ).
Последовательность выполнения микроопераций удобно и весьма компактно может быть описана в виде логической схемы алгоритма.
Логические схемы алгоритмов путем равносильных преобразований позволяют осуществлять минимизацию микропрограммы и в сочетании с матричными схемами алгоритмов дают возможность формализовать и упростить этот процесс.
Логические схемы алгоритмов были предложены в 1952-1953 гг. А.А.Ляпуновым для целей программирования. Однако в дальнейшем они широко начали использоваться в качестве языка задания алгоритмов функционирования управляющих устройств.
Задача, которую нужно решать, состоит в поиске алгоритма переработки некоторой исходной информации, т.е. в выборе отдельных операций, или, как говорят, актов алгоритма, и поиске порядка их выполнения.
С каждым таким актом (операцией) в ЛСА сопоставляется оператор. ЛСА записывается в виде конечной строки, состоящей из символов операторов, логических условий, верхних и нижних стрелок, помеченных определенными символами. Запись ЛСА должна удовлетворять следующим условиям:
строка начинается оператором Jн, обозначающим вход в ЛСА, и заканчивается конечным оператором Jк;
перед оператором Jн и после оператора Jк стрелок не должно быть;
после каждого логического условия обязательно стоит верхняя стрелка;
для каждой верхней стрелки с номером i должна быть только одна нижняя стрелка с тем же номером;
для каждой нижней стрелки с номером i должна быть хотя бы одна верхняя стрелка с тем же номером.
Иногда операторы обозначаются прописными латинскими буквами А, В, С, Д, и т.д., а логические условия строчными буквами греческого алфавита φ, α, σ и др. Либо используется одна буква для оператора и одна для логического условия с нижним индексом.
Последовательность выполнения операторов в ЛСА определяется, с одной стороны, порядком их записи, читается слева направо в строке и сверху вниз по строкам. Так, запись У1У5У7 означает, что вначале должен выполняться оператор У1, а затем У5 и далее У7. С другой стороны, порядок выполнения операторов ЛСА может определяться некоторыми условиями. В этом случае в ЛСА включаются логические функции одной переменной, отражающей факт выполнения определенных условий операторами ЛСА в процессе их реализации. Считается, что логические условия могут принимать только два значения, выполняется проверяемое условие или нет, (Р = 1) или (Р = 0).
После члена ЛСА, за которым следует тождественно ложное условие ω, всегда осуществляется переход к члену ЛСА, перед которым расположен конец стрелки ↓. Тождественно-ложные условия не требуют проверки. Операторы и логические условия являются основными, а тождественно-ложные - вспомогательными членами ЛСА.
Описание алгоритма при помощи ЛСА есть первый этап организации алгоритма. Этому этапу предшествует содержательное описание алгоритма.
Пусть, например, из операторов Y1, Y2, Y3 и логических условий Р1 и Р2 составлена следующая логическая схема алгоритма:
2 1 1 2
↓ Y1Р1 ↑ Y2 ↓ Р2 ↑ Y3. (5.1)
ЛСА определяет порядок выполнения операторов в зависимости от значения входящих в нее логических условий.
Работа алгоритма начинается с того, что выполняется первый оператор, стоящий слева. После того, как некоторый член ЛСА выполнится, определятся, какой член ЛСА должен выполняться за ним. Если это был оператор, то следом за ним должен выполняться тот член ЛСА, который стоит непосредственно справа от него. Если последний выполняющий член ЛСА был логическим условием, то возможны два случая. Если проверявшееся условие выполнено, то должен выполняться член ЛСА, находящийся справа. Если оно нарушено, должен выполняться тот член ЛСА, к которому ведет стрелка, начинающейся после данного условия. Работа алгоритма заканчивается либо тогда, когда последний из выполняющихся операторов содержит указанные о прекращении работы алгоритма, либо тогда, когда на некотором этапе не оказывается такого члена ЛСА, который должен бы выполниться. Таким образом, распределение значений логических условий в ЛСА определяет порядок выполнения операторов, входящих в эту ЛСА. Например, в ЛСА (5.1) порядок выполнения операторов в зависимости от значений логических условий будет следующим:
1) если Р1 = 0 и Р2 = 0, то У1У1........У1 т.е. бесконечно будет выполняться оператор У1;
2) если Р1 = 0, а Р2 = 1, то У1, У3, т.е. вначале выполняется оператор У1, а затем У3 и алгоритм заканчивает свою работу;
3) если Р1 = 1, а Р2 = 0, то будет бесконечная последовательность чередования У1 и У2: У1У2У1У2... У1У2...;
4) если Р1 = 1 и Р2 = 1, то последовательно выполняются все три оператора и алгоритм заканчивает свою работу, т.е. У1У2У3.
Следует заметить, что в процессе работы алгоритма логические условия могут изменяться. Они изменяются из-за того, что изменяются внешние к данной управляющей системе условия или значения этих логических условий изменяются после выполнения того или иного оператора.
Рассмотрим пример строки ЛСА
YH Y1v1 ↑1 v2 ↑2 v3 ↑1 Y4ω ↑3↓1 Y2ω ↑3↓2 Y3 ↓3 YK. (5.2)
Кроме начального YH и конечного YK операторов ЛСА включает 4 оператора Y1, Y2, Y3, Y4, три логических условия v1, v2, v3 и два тождественно ложных условия ω ↑3.
Начальному состоянию соответствует состояние автомата, при котором никакие выходные сигналы не выдаются. При запуске автомата он перейдет в новое состояние и при этом будет выполнен оператор (микрокоманда) Y1, после чего анализируется условие (входной сигнал) v1. Если v1 = 1, то анализируется условие v2, если же v1 = 0, то выходим по верхней стрелке, помеченной единицей ↑1 на нижнюю стрелку ↓1 и на оператор Y2. Выполняется этот оператор Y2, после него в ЛСА стоит символ тождественно-ложного условия ω ↑3, по которому попадаем на конечный оператор YK.
При v2 = 1 анализируется условие v3, если же v2 = 0, то по верхней стрелке ↑2 выходим на оператор Y3 и после его выполнения на конечный оператор YK.
При v3 = 1 выполняется оператор У4 и по тождественно-ложному условию ω ↑3 попадаем в конечный оператор YK. Если же Y3 = 0, то по верхней стрелке ↑1 выходим на нижнюю стрелку ↓1 и на оператор Y2, после реализации которого по условию ω ↑3 выходим на конечный оператор.
Этот анализ ЛСА позволяет осуществить при необходимости переход к МСА.
Пример. Построить ЛСА микропрограммного автомата, соответствующего МУУ сдвигом двоичного трехразрядного кода на один разряд влево, если число единиц в коде четное или на 2 разряда влево, если число единиц нечетное.
Решение.
0 - при нечетном числе единиц в сдвигаемой
кодовой
Р0 = комбинации;
1 - при нечетном числе единиц.
Из числа типовых дискретных устройств, способных проверить кодовую комбинацию на четность, выбираем комбинационный сумматор по модулю 2 на три входа, такой сумматор может самостоятельно формировать значения функции Р0.
Из числа типовых дискретных устройств, способных осуществить сдвиг, выберем пятиразрядный регистр со сдвигом влево.
В качестве управляющих сигналов функциональных блоков принимаем следующие:
уст. в “0” - Y0;
прием кода - Y1;
сдвиг влево на 1 разряд - Y2;
сдвиг влево на 2 разряда - Y3;
выдача кода - YK.
ЛСА управления сдвигом имеет следующий вид
U = Y0 Y1 P0 ↑1 Y2ω ↑2↓1 Y3 ↓2 Y2. (5.3)