Управляющие автоматы с хранимой в памяти логикой

Одним из достоинств микропрограммных устройств упра­вления является их наглядность, облегчающая изучение процес­са функционирования ЭВМ и их эксплуатацию. Поэтому рас­смотрение методов построения устройств управления начнем с микропрограммных устройств, не учитывая того обстоятель­ства, что они стали применяться позже управляющих устройств с жесткой (схемной) логикой. В настоящее время ми­кропрограммное управление является наиболее распростра­ненным методом построения управления, по крайней мере, в процессорах машин малой и средней производительности, а также в других устройствах (каналах, устройствах управления периферийными устройствами и др.). Микропрограммное упра­вление применяется в некоторых типах микропроцессоров.

Хранимая в памяти микропрограмма должна содержать ин­формацию о функциях переходов и выходов управляющего микропрограммного автомата.

Интерпретируя рассматриваемый ниже УА в терминах конечных автоматов, обнаружим, что он функционирует подоб­но автомату Мили с задержанными на такт выходными сигна­лами. Аргументами функций переходов и выходов автомата яв­ляются входные переменные Z(t) и U{t) и переменные q(t), за­дающие своими значениями состояние автомата Q (t). Набор зна­чений аргументов удобно отождествить с адресом микрокоман­ды. Этот адрес заносится в регистр адреса микрокоманды во время такта. В управляющей памяти (УП) по данному адресу хранится код, задающий набор значений выходных сигналов управляющего автомата V(t +1),- операционная часть микро­команды — и набор значений переменных q{t + 1), представляющий состояние Q(t + 1). Зна­чения V(t + 1) и Q (t + 1) опре­деляются функциями перехо­дов и выходов.

Рис. 3.10. Структурная схема простейшего варианта управ­ляющего автомата с хранимой в памяти логикой

Структурная схема про­стейшего варианта управ­ляющего автомата с храни­мой в памяти программой приведена на Рис. 3.10. Авто­мат работает следующим об­разом. Серия синхросигна­лов СС определяет такты работы автомата, при этом значение СС = 1 выделяет такт, а значение СС = 0 — паузу между тактами. Напомним, что значения входных и выходных сигналов и состояние автомата должны быть неизменными во время такта и могут меняться только в паузах.

Состояние автомата Q{t) представляется набором значений переменных q{t), в дальнейшем называемым для краткости ко­дом Q{t).

Пусть в такте (t—1) в РгАМк занесены U{t— 1), Z(t—l) и код Q(t— 1). Тогда в паузе перед тактом t при СС=0 на РгАМк эти значения сохраняются и из УП можно выбрать коды V{t), которые у рассматриваемого нами автомата, как и Q(t), зависят от Q{t— 1), Z(t—1) и U(t—1). Эти коды при СС = 0 заносятся в РгМк (одновременно происходит изменение значений входных сигналов). После возникновения СС = 1, за­дающего такт t, в РгМк хранятся сформированные коды V{t) и Q(t), при этом сигналы V{t) используются для инициирования микроопераций, а код Q(t) переносится в РгАМк, после чего цикл работы автомата повторяется.

Воздействие управляющих сигналов V(t) на операционный блок синхронизируется сигналом СС = 1, обеспечивающим вы­дачу V{t) строго в такте t из РгМк, находящегося в режиме хранения.

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

Анализируя рассматриваемую структурную схему, можно заметить, что число слов, хранимых в УП, очень велико из-за большой разрядности РгАМк, обусловленной значительным числом используемых оповещающих сигналов U(t). Сократить объем УП можно, если учесть, что для каждого Q(t) суще­ственными являются значения не всех, а лишь некоторых пере­менных из Z(t) и U(t), задающих различные переходы из состояния Q(t) в состояние Q(t+l).

Число таких переходов в микропрограммных автоматах обычно невелико, и поэтому для каждого Q(t) можно выделить группу адресов УП, хранящих коды только различных состоя­ний перехода Q(t + 1). Объем УП при этом во много раз сокра­тится, так как в УП не будут храниться многократно повто­ряющиеся коды, описывающие одинаковые переходы автомата.

Адрес микрокоманды при таком подходе формируется специальной комбинационной схемой формирования адреса микрокоманд СхФАМк по значениям Q(t), U(t) и Z(t). Схема СхФАМк подключается ко входам РгАМк, как показано штри­ховыми линиями на Рис. 3.10.

Адрес очередной микрокоманды можно назначить без учета значений Z(t) и U(t), если эта микрокоманда задает функцию перехода автомата в состоянии, имеющем единственный пере­ход, не зависящий от значения входных сигналов. В этом слу­чае адрес очередной микрокоманды можно указать значением отдельной группы разрядов исполняемой микрокоманды. Если очередная микрокоманда должна задавать функцию перехода автомата в состоянии, имеющем различные переходы, завися­щие от значений входных сигналов, то ее адрес должен зави­сеть от входных сигналов,

Для получения простой схемы СхФАМк обычно исполь­зуется следующий способ формирования очередного адреса. В микрокоманде выделяется помимо операционной части адресная. Адресная часть содержит несколько полей (групп раз­рядов): поле типа формирования адреса (ТФА) и поля форми­рования отдельных групп разрядов очередного адреса (ПФА). При определенных значениях поля ТФА очередной адрес фор­мируется только из значений ПФА (в простейшем случае в РгАМк переносятся значения ПФА, заданные в микро­команде).

Если адрес очередной микрокоманды должен формировать­ся с учетом значений входных сигналов, то в поле ТФА заносится специальный код, настраивающий СхФАМк на особую обработ­ку ПФА. При этом содержимое некоторых ПФА по-прежнему переносится в РгАМк, а коды из других ПФА обеспечивают за­несение в РгАМк значений, указываемых этими ПФА входных переменных. Таким образом, очередной адрес оказывается за­висящим не только от ранее исполнявшейся микрокоманды (состояния автомата), но и от значений входных сигналов, влияющих на переходы автомата в новое состояние.

Рассмотренный способ формирования адреса следующей микрокоманды носит название принудительного формирования адреса.

Формирование адреса следующей микрокоманды иногда осуществляют способом естественной адресации с помощью счетчика. Безусловный переход от микрокоманды с адресом i осуществляется к микрокоманде с адресом i + 1, что позволяет иметь в микрокоманде только операционную часть. Одна­ко при этом в микропрограмму вводят помимо операционных адресные микрокоманды, различаемые по специальному при­знаку. В адресных микрокомандах отсутствует операционная часть и все разряды используются в качестве полей ТФА и ПФА, таких же, как и в адресной части рассматривавшихся выше микрокоманд. Такой способ формирования адреса ми­крокоманды вызывает усложнение схем дешифрирования микро­команд и увеличение длины микропрограмм, но сокращает длину микрокоманд.

Примером использования естественной адресации микроко­манд может служить управляющий блок микропроцессора Am2900.

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

Горизонтальное микропрограммирование. Каждому разряду операционной части микрокоманды ставится в соответствие определенный управляющий функциональный сигнал, т. е. определенная микрооперация. Если в разряде стоит 1, то со­ответствующая микрооперация выполняется независимо от значения других разрядов. При таком способе операционная часть микрокоманды содержит т разрядов, где т — общее чис­ло микроопераций. Достоинствами горизонтального микропро­граммирования являются возможность одновременного выпол­нения в одном такте любого набора из т микроопераций и простота формирования функциональных сигналов, так как последние могут возбуждаться непосредственно от сигналов из регистра микрокоманды.

Однако оно имеет и существенный недостаток, заключаю­щийся в том, что требуется большая длина микрокоман­ды, поскольку число функциональных сигналов в современ­ном процессоре может достигать нескольких сотен. Поэтому, хотя и известны случаи практического применения горизон­тального микропрограммирования, главным образом в малых машинах, где число управляющих функциональных сигналов сравнительно невелико (около 150), большее распространение получили другие методы.

При вертикальном микропрогра.имировании микрооперация определяется не состоянием одного из разрядов микроко­манды, а двоичным кодом, содержащимся в операционной ча­сти микрокоманды, при этом отдельный код задает отсутствие микрооперации.

Число разрядов операционной части микрокоманды

n о.ч =] log2 (т+ 1) [.

Достоинством вертикального микропрограммирования является небольшая длина микрокоманды. Однако в этом слу­чае требуются сложные дешифраторы на большое число ми­кроопераций, а главное — в каждой микрокоманде указывается лишь одна микрооперация, что приводит к увеличению длины микропрограмм по сравнению с их длиной при горизонталь­ном микропрограммировании. Вертикальное микропрограмми­рование часто используется в микропроцессорах, как, напри­мер, для управления центральными процессорными элемента­ми набора К589.

В настоящее время наибольшее распространение имеет сме­шанное микропрограммирование, в котором сочетаются гори­зонтальное и вертикальное микропрограммирования.

При смешанном микропрограммировании множество ми­кроопераций V разбивается на А: подмножеств (или полей):

V l

Микрооперации внутри каждого из подмножеств кодируют­ся либо горизонтальным, либо вертикальным способом. Мож­но выделить два способа.

Вертикально-горизонтальное микропрограммирование. Все множество микроопераций V расчленяют на k подмножеств Vl, в каждом из которых объединяют микрооперации, наиболее часто встречающиеся вместе в одном такте. Подмножества ста­раются по возможности сделать равномощными. Операцион­ная часть микрокоманды (Рис. 3.12) состоит из двух полей. В первом поле, длина которого равна mах|Vl|, применен гори­зонтальный способ кодирования микроопераций, т. е. каждый разряд соответствует определенной микрооперации из подмно­жества Vl, а другое поле, имеющее длину ]1оg2k[, указывает, к какому из А: подмножеств принадлежат микрооперации в пер­вом поле микрокоманды.

Рис. 3.12. Структура микро­команды при вертикально-гори­зонтальном микропрограмми­ровании

Более гибким и часто используемым является горизонталь­но-вертикальный способ кодирования.

Горизонтально-вертикальное микропрограммирование (Рис. 3.13). Подмножества Vl кодируются горизонтальным, а мик­рооперации внутри каждого из подмножеств — вертикальным способом. В этом случае каждому подмножеству Vl выделяется

Рис. 3.13. Структура управляю­щего автомата при горизонталь­но-вертикальном микропро­граммировании

отдельное поле в операционной части микрокоманды. Длина операционной части микрокоманды

n o.ч = ]log2 (m+1)[,

где ml число микроопераций, представляемых в поле l.

Микрокоманды такого типа называют микрокомандами с полевой структурой. При таком способе кодирования жела­тельно, чтобы

Vi  Vj =  при i  j

т. е. чтобы каждая микрооперация встречалась только в одном поле.

При прямом кодировании микрокоманд каждое поле микро­команды несет фиксированные функции. Косвенное кодирование характеризуется наличием дополнительных полей, содержимое которых меняет смысл основных полей микрокоманды. Таким образом, интерпретация полей, формирующих управляющие сигналы, зависит от бит дополнительных полей.

Косвенное кодирование широко используется, так как поз­воляет уменьшить длину микрокоманды. Однако оно в некото­рой степени нарушает стройность микропрограммного упра­вления, вызывает усложнение дешифраторов и приводит к снижению скорости работы из-за потерь времени на дешифрирование дополнительных полей микрокоманды.

Различают одно- и многофазные микрокоманды. В первом случае все микрооперации, указанные в микрокоманде, выпол­няются одновременно в течение одного такта. Во втором — такт разбивается на части, называемые фазами или микротактами,

и указанные в команде микрооперации выполняются в раз­личные микротакты (фазы такта). В этом случае приходится учитывать временные зависимости между отдельными микро­операциями. Однако становится возможным включать в ми­крокоманду взаимно исключающие микрооперации, разводя их по разным тактам. Многофазные микрокоманды часто приме­няются. в ЭВМ с горизонтальным или горизонтально-верти­кальным микропрограммированием (например, в ЕС ЭВМ).

Для повышения скорости работы управляющего автомата (УА) с хранимой в памяти логикой используются различные ме­тоды. Чаще всего осуществляется совмещение отдельных дей­ствий, задаваемых микрокомандой, что особенно существенно при использовании многофазных микрокоманд. Например, в ЭВМ ЕС-1030 двухфазные микрокоманды выполняются с совмещениями вида, указанного на Рис. 3.5. В цикле i работы осуществляется выполнение микроопераций 1-й микрокоманды ВЫП Моi а одновременно с этим происходит формирование адреса очередной микрокоманды ФAi+1 и ее выборка ВЫБi+1. При таком совмещении адрес (i + 1)-й микрокоманды форми­руется i-й микрокомандой с учетом значений оповещающих сигналов, представляющих собой результаты (i — 1)-й микроко­манды. Учет результатов i-й микрокоманды может осуще­ствляться только (i + 1)-й микрокомандой при формировании адреса (i + 2)-й микрокоманды.

Хотя идея микропрограммирования известна с 1951 г., однако еще до недавнего времени этот принцип управления не находил широкого применения в ЭВМ из-за отсутствия доста­точно надежных и дешевых быстродействующих УП для хра­нения микропрограмм и сложности разработки текстов микро­программ. Однако в последние годы интерес к микропро­граммному принципу управления (к УА с хранимой в памяти логикой) возродился. Были созданы постоянные запоминаю­щие устройства для УП с циклом обращения 0,25-0,5 мкс. По­явились интегральные ПЗУ и ЗУ с произвольным обращением, обладающие еще большим быстродействием. Выяснилось, что эффективность методов построения УА зависит от числа и сложности команд ЭВМ и при увеличении и усложнении ко­манд и функций процессора эффективность микропрограммно­го управления растет.

Рис. 3.14. Временная диаграмма работы управляющего автомата с хранимой в памяти логикой

Использование принципа микропрограммного управления позволяет строить более регулярные схемы УА, создавать эф­фективные системы диагностики для автоматического поиска неисправностей, упрощает документирование алгоритмов ра­боты УА. В последнее время микропрограммирование исполь­зуется как средство для аппаратурной реализации фрагментов операционных систем, трансляторов и т. п.

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

Все чаще в ЭВМ применяется загружаемая управляющая память, при этом в качестве первичных носителей микропро­грамм используются гибкие диски или кассеты портативных магнитофонов, с которых микропрограммы загружаются в УП.

Микропрограммное управление с использованием загружае­мой УП позволяет расширять или даже менять состав команд ЭВМ.

Наиболее выгодно использование УА с хранимой в памяти логикой для операционных блоков процессоров, в которых ре­ализуются алгоритмы с относительно небольшим числом усло­вий ветвления. Реализация в этих автоматах алгоритмов с большим числом условий ветвления ведет к значительному усложнению СхФАМк и, следовательно, к увеличению времени формирования адреса микрокоманды и в конечном счете к уменьшению быстродействия УА с хранимой в памяти логи­кой. В этом случае используются УА с «жесткой» логикой, обладающие большим быстродействием. В некоторых случаях в ЭВМ используются одновременно УА с хранимой в памяти логикой и УА с «жесткой» логикой.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: