3 0 4 Глава 6. Устройства управления
Запуск микропрограммы выполнения операции осуществляется путем переда­чи кода операции из РК на вход преобразователя, в котором код операции преоб­разуется в начальный (первый) адрес микропрограммы^. Этот адрес поступает через ФАСМ в регистр адреса микрокоманды. Выбранная по адресу Ап из ПМП микрокоманда заносится в РМК. Каждая микрокоманда в общем случае содержит микрооперационную (МО) и адресную (А) части. Микрооперационная часть мик­рокоманды поступает на дешифратор микрокоманды, на выходе которого образу­ются управляющие сигналы, инициирующие выполнение микроопераций в ис­полнительных устройствах и узлах ВМ. Адресная часть микрокоманды подается в ФАСМ, где формируется адрес следующей микрокоманды Аш.Этот адрес может зависеть от адреса на выходе преобразователя кода операции Ли, адресной части текущей микрокоманды А и значений осведомительных сигналов (флагов) X, по­ступающих от исполнительных устройств. Сформированный адрес микрокоман­ды снова записывается в РАМ, и процесс повторяется до окончания микропро­граммы.
Разрядность адресной (#а)и микрооперационной (Ямо) частей микрокоман­ды определяются из соотношений
(6.1) (6,2)
где ΝΜΚобщее количество микрокоманд; NCy— общее количество формируе­мых сигналов управления.
В свою очередь, необходимая емкость памяти микропрограмм равна
Кодирование микрокоманд
Информация о том, какие сигналы управления должны быть сформированы в про­цессе выполнения текущей МК, в закодированном виде содержится в микроопе­рационной части (МО) микрокоманды. Способ кодирования микроопераций во многом определяет сложность аппаратных средств устройства управления и его скоростные характеристики. Применяемые в микрокомандах варианты кодирова­ния сигналов управления можно свести к трем группам: минимальное кодирование (горизонтальное микропрограммирование), максимальное кодирование (верти­кальное микропрограммирование) и групповое кодирование (смешанное микро­программирование). Структуры микропрограммных автоматов при различных способах кодирования микроопераций показаны на рис. 6.9 [12,28].
При горизонтальном микропрограммировании (см. рис. 6.9, а) под каждый сиг­нал управления в микрооперационной части микрокоманды выделен один разряд (#мо ~NCy)3ro позволяет в рамках одной микрокоманды формировать любые сочетания СУ, чем обеспечивается максимальный параллелизм выполнения мик­роопераций. Кроме того, отсутствует необходимость в декодировании МО и выходы регистра микрокоманды могут быть непосредственно подключены к соответству­ющим управляемым точкам ВМ. Широкому распространению горизонтального микропрограммирования тем не менее препятствуют большие затраты на хране­ние микрооперационных частей микрокоманд М(у NMK * #су)причем эффек-
Микропрограммный автомате программируемой логикой 3 0 5
Рис. 6.9. Структуры МПАпри различных способах кодирования микроопераций:
а — минимальном; б— максимальном; в — максимальном с шифратором;
Г— горизонтально-вертикальном; д — вертикально-горизонтальном
тивность использования ПМП получается низкой,, так как при большом числе микроопераций в каждой отдельной МК реализуется лишь одна или несколько из них, то есть подавляющая часть разрядов МО содержит нули.
При максимальном (вертикальном) кодировании (см. рис. 6.9, б) каждой мик­рооперации присваивается определенный код, например, ее порядковый номер в полном списке возможных микроопераций. Этот код и заносится в МО. Микро­операционная часть МК имеет минимальную длину, определяемую как двоич­ный логарифм от числа управляющих сигналов (микроопераций) по формуле (6.2). Такой способ кодирования требует минимальных аппаратных затрат в ПМП на хранение микрокоманд, однако возникает необходимость в дешифраторе ДшМК, который должен преобразовать код микрооперации в соответствующий сигнал уп­равления. При большом количестве СУ дешифратор вносит значительную вре­менную задержку, а главное — в каждой МК указывается лишь один сигнал управ­ления, инициирующий только одну микрооперацию, за счет чего увеличиваются длина микропрограммы и время ее реализации.
., Последний недостаток устраняется при подключении к выходам ДшМК шиф­ратора (Ш) (см. рис. 6.9, в),что приводит к увеличению количества СУ, формиру­емых одновременно.. Естественно, что помимо кодов отдельных микроопераций должны быть предусмотрены коды, представляющие и определенные комбинации микроопераций. Для повышения универсальности шифратор целесообразно стро­ить на базе запоминающего устройства.
Вариант, представленный на рис. 6.9, в, рационален, если
3 0 6 Глава 6. Устройства управления
где ЛГр— количество выходов дешифратора. При этих условиях аппаратные затра­ты на хранение микрооперационных частей МК относительно малы:
Однако полная емкость используемой памяти равна
откуда ясно, что при близких Л^и ND вариант теряет смысл.
Минимальное и максимальное кодирование являются двумя крайними точка­ми широкого спектра возможных решений задачи кодирования СУ. Промежуточ­ное положение занимает групповое или смешанное кодирование.
Здесь все сигналы управления (микрооперации) разбиваются на К групп
В зависимости от принципа разбиения микроопераций на группы различают горизонтально-вертикальное и вертикально-горизонтальное кодирование.
В горизонтально-вертикальном методе (см. рис. 6.9, г) в каждую группу включаются взаимно несовместимые сигналы управления (микрооперации), то есть СУ, которые никогда не встречаются вместе в одной микрокоманде. При этом сигналы, обычно формируемые в одном и том же такте, оказываются в разных груп­пах. Внутри каждой группы сигналы управления кодируются максимальным (вер­тикальным) способом, а группы — минимальным (горизонтальным) способом.
Каждой группе Y, выделяется отдельное поле в микрооперационной части МК, общая разрядность которой равна
где JV . — количество СУ, представляемых 1-й полем (группой).
СУ/
Общая емкость памяти микропрограмм рассмотренного варианта кодирования определяется из выражения:
При вертикально-горизонтальном способе (см. рис. 6.9, д) все множество сиг­налов управления (микроопераций) также делится на несколько групп, однако в группу включаются сигналы управления (микрооперации), наиболее часто встре­чающиеся вместе в одном такте. Поле МО делится на две части: МО и М0г. Поле MOj, длина которого равна максимальному количеству сигналов управления (мик­роопераций) в группе, кодируется горизонтально, а поле М0г, указывающее на при­надлежность к определенной группе, — вертикально. Со сменой группы меняются и управляемые точки, куда должны быть направлены сигналы управления из каж­дой позиции МО,. Это достигается с помощью демультиплексоров (Цмп), управля­емых кодом номера группы из поля MQ,
Микропрограммный автомате программируемой логикой 307
При горизонтальном, вертикальном и горизонтально-вертикальном способах кодирования микроопераций каждое поле микрокоманды несет фиксированные функции, то есть имеет место прямое кодирование. При косвенном кодировании одно из полей отводится для интерпретации других полей. Примером косвенного коди­рования микроопераций может служить вертикально-горизонтальное кодирова-н          и          е          .          .
Иногда используется двухуровневое кодирование микроопераций. На первом уровне с вертикальным кодированием выбирается микрокоманда, поле МО которой является адресом горизонтальной микрокоманды второго уровня — нанокоманды. Данный способ сочетания вертикального и горизонтального микропрограммиро­вания часто называют нанопрограммированием. Метод предполагает двухуровне­вую систему кодирования микроопераций и, соответственно, двухуровневую орга­низацию управляющей памяти (рис 6.10).
Рис. 6.10. Нанопрограммное устройство управлен Верхний уровень управления образуют микропрограммы, хранящиеся в памя­ти микропрограмм. В микрокомандах используется вертикальное кодирование микроопераций. Каждой микрокоманде соответствует нанокоманда, хранящаяся в управляющей памяти нижнего уровня — памяти нанокоманд. В нанокомандах применено горизонтальное кодирование микроопераций. Именно нанокоманды используются для непосредственного формирования сигналов управления. Мик­рокоманды вместо закодированного номера СУ содержат адресную ссылку на со­ответствующую нанокоманду.
Такой подход, сохраняя все достоинства горизонтального микропрограммиро­вания, позволяет значительно сократить суммарную емкость управляющей памяти. Дело в том, что число различных сочетаний сигналов управления, а следователь­но, количество «длинных» нанокоманд, обычно невелико. В то же время практи­чески все микрокоманды многократно повторяются в различных микропрограм­мах, и замена в микрокомандах «длинного» горизонтального управляющего поля на короткую адресную ссылку дает ощутимый эффект. Проиллюстрируем это при­мером.
3 08 Глава 6. Устройства управления
Пусть в системе вырабатывается 200 управляющих сигналов, а общая длина микропрограмм составляет 2048 микрокоманд. Предположим также, что реально используется только 256 различных сочетаний сигналов управления. В случае обычного УУ с горизонтальным микропрограммированием емкость управляющей памяти составила бы 2048 х 200 ,= 409 600 бит. При нанопрограммировании тре­буется память микропрограмм емкостью 2048 х 8 = 16 384 бит и Память наноко-манд емкостью 256 х 200 =51 200 бит. Таким образом, суммарная емкость обоих видов управляющей памяти равна 67 584 битам.
Иначе говоря, нанопамять реализует функцию шифратора управляющих сиг­налов (см. рис. 6.9, в). Справедливы следующие соотношения: RM < R^ Ем» Ец, где Е Rm~ емкость и разрядность микропамяти; Ен,, RHемкость и разрядность памяти нанокоманд.
Основным недостатком нанопрограммирования является невысокое быстро­действие, поскольку для выполнения микрокоманды требуются два обращения кпамяти, что, однако, частично компенсируется исключением из схемы дешифра­тора, свойственного вертикальному микропрограммированию.
Микропрограммный автомат с программируемой логикой 3 0 9
Двухуровневая память рассматривается как способ для уменьшения необходи­мой емкости ПМП, ее использование целесообразно только при многократном повторении микрокоманд в микропрограмме.
При разбиении микрокоманды на поля могут действовать два принципа: по функциональному назначению СУ и по ресурсам. Функциональное кодирование предполагает, что каждое поле соответствует одной функции внутри ВМ. Напри­мер, информация в аккумулятор может заноситься из различных источников, и для указания источника в микрокоманде может быть отведено одно поле, где каждая кодовая комбинация прикреплена к определенному источнику. При ресурсном кодировании ВМ рассматривается как набор независимых ресурсов (память, УВВ, АЛУ и т. п.), и каждому из ресурсов в микрокоманде отводится свое поле.
Обеспечение последовательности выполнения микрокоманд
На рис. 6.11 показано возможное размещение микрокоманд в памяти микропро­грамм. Содержимое ПМП определяет последовательность микроопераций, которые должны выполняться на каждом этапе цикла команды, а также последовательность этапов. Каждый этап представлен соответствующей микропрограммой. Микро­программы завершаются микрокомандой перехода, определяющей последую­щие действия. В управляющей памяти имеется также специальная микропрограм­ма-переключатель: в зависимости от текущего кода операции она указывает, этап исполнения какой команды должен быть выполнен.
Большей частью микрокоманды в микропрограмме выполняются последова­тельно, однако в общем случае очередность микроопераций не является фиксиро­ванной. По этой причине в УУ необходимо предусмотреть эффективную систему реализации переходов. Переходы, как безусловные, так и условные, являются неотъемлемой частью любой микропрограммы.
Адресация микрокоманд
При выполнении микропрограммы адрес очередной микрокоманды относится к одной из трех категорий:
; · определяется кодом операции команды;
: ' · является следующим по порядку адресом;
, · является адресом перехода.
Первый случай имеет место только один раз в каждом цикле команды, сразу же вслед за ее выборкой. Как уже отмечалось ранее, каждой команде из системы ко­манд ВМ соответствует «своя» микропрограмма в памяти микропрограмм, поэто-ί му первое действие, которое нужно произвести после выборки команды, — преоб-- разовать код операции в адрес первой МК соответствующей микропрограммы. Это может быть выполнено с помощью аппаратного преобразователя кода операции ; (см. рис. 6.8). Такой преобразователь обычно реализуется в виде специального ЗУ, !■: хранящего начальные адреса микропрограмм в ПМП. Для указания того, как дол-\ жен вычисляться адрес следующей МК в микрокоманде, может быть выделено ' специальное однобитовое поле. Единица в этом поле означает, что мк должен быть
310 Глава 6. Устройства управления
сформирован на основании кода операции. Подобная МК обычно располагается в конце микропрограммы этапа выборки или в микропрограмме анализа кода опе­рации.
Дальнейшая очередность выполнения микрокоманд микропрограммы может быть задана путем указания в каждой МК адреса следующей микрокоманды (при­нудительная адресация) либо путем автоматического увеличения на единицу ад­реса текущей МК (естественная адресация) [21].
В обоих случаях необходимо предусмотреть ситуацию, когда адрес следую­щей микрокоманды зависит от состояния осведомительных сигналов — ситуа­цию перехода. Для указания того, какое условие должно быть проверено, в МК вводится поле условия перехода (УП). Поле УП определяет номер / осведоми­тельного сигнала л:,, значение которого анализируется при формировании ад­реса следующей микрокоманды. Если поле УП = 0, то никакие условия не проверяются и мк либо берется из адресной части микрокоманды (при при­нудительной адресации), либо формируется путем прибавления единицы к адресу текущей микрокоманды. Если УП!=0, то мк = А + х{. В результате это­го осуществляется условный переход: при х;. - 0 к микрокоманде с адресом мк =Да при xt -■ 1 — к микрокоманде с адресом мк = А + 1. Описанный по­рядок формирования адреса показан на рис. 6.12 и имеет место в случае при­нудительной адресации с одним адресом.
Рассмотренный способ позволяет в каждой команде учесть состояние только одного из осведомительных сигналов. Более гибкий подход реализован в ряде ВМ фирмы IBM. В нем адреса микрокоманды разбиваются на две составляющие. Стар­шие п разрядов обычно остаются неизменными. В процессе выполнения микроко­манды эти разряды просто копируются из адресной части МК в аналогичные позиции РАМ, определяя блок из 2Лп микрокоманд в памяти микропрограмм. Ос­тальные (младшие) к разрядов РАМ устанавливаются в 1 или 0 в зависимости от того, проверка каких осведомительных сигналов была задана в поле УП и в каком состоянии эти сигналы находятся. Такой метод позволяет в одной микрокоманде сформировать 2Лк вариантов перехода.
Микропрограммный автомат с программируемой логикой 311
Теперь рассмотрим возможные способы реализации принудительной и есте­ственной адресации. Известные подходы сводятся к трем типовым вариантам [75]:
•   два адресных поля;
•   одно адресное поле;
•   переменный формат.
Два первых метода представляют принудительную адресацию, а третий — естес­твенную адресацию микрокоманд.
Простейшим вариантом является включение в микрокоманду двух адресных полей (рис. 6.13).
Рис. 6.13. Логика управления переходом с двумя адресными полями
С помощью мультиплексора в регистр адреса микрокоманды (РАМ) может быть загружен либо адрес, определяемый кодом операции выполняемой команды, либо содержимое одного из адресных полей микрокоманды. Выбор источника адреса осуществляется сигналом «Выбор адреса», вырабатываемым логикой перехода, на основании состояния осведомительных сигналов и поля УП микрокоманды. Если УП = 0 или УП = i, но х. = 0, то в РАМ заносится адрес Л(либо адрес, полученный из кода операции. В противном случае в РАМ переписывается адрес 2-
Более распространен вариант принудительной адресации с одним адресным полем, который уже был показан на рис. 6.12. Здесь в адресной части МКуказан адрес следующей микрокоманды, который в случае условного перехода может быть модифицирован. Возможен и иной подход, в чем-то близкий естественной адреса­ции, когда в адресной части МК задается лишь адрес возможного перехода (рис. 6.14). При естественном следовании микрокоманд адрес очередной МКфор-- мируется путем прибавления единицы к адресу текущей, микрокоманды.
Главное достоинство принудительной адресации— высокая универсальность и быстродействие. Здесь изменение участка микропрограммы не затрагивает ос­тальных микрокоманд, а совмещение в одной МК условного перехода с фор­мированием сигналов управления уменьшает общее время выполнения мик­ропрограммы.
312 Глава 6. Устройства управления
Основной недостаток принудительной адресации — повышенные требования к емкости памяти для хранения адресов МК:
где Ryij- разрядность поля УП; L — общее количество осведомительных сигна­лов.
При естественной адресации отпадает необходимость во введении адресной части в каждую МК. Подразумевается, что микрокоманды следуют в естествен­ном порядке и процесс адресации реализуется счетчиком адреса микрокоманды (СЧАМ). Значение СЧ AM увеличивается на единицу после чтения очередной МК.
Однако после выполнения МК с адресом А может потребоваться переход к МК с адресом В + 1. Переход может быть безусловным или зависеть от текущего значения х. (если х = 1, то мк = А + 1; если х = 0, то мк = В). Для реализации условных и безусловных переходов используются специальные управляющие мик­рокоманды, состоящие только из двух полей: адресного поля В и поля УП, вьщеля-ющего номер условия перехода. Алгоритм выполнения управляющей МК:
если УП = 0, то СЧАМ :- В;
если УП !=0, то если х. = 1, то СЧАМ := В, иначе СЧАМ := СЧАМ + 1.
Таким образом, при естественной адресации должны применяться МК двух типов: управляющие и операционные. Операционная микрокоманда содержит только микрооперационную часть и не имеет адресной части. Тип М К задается ее первым разрядом: если МК(1) = 1, то это управляющая микрокоманда.
Структура МПА с естественной адресацией показана на рис. 6.15. Выдача сиг­налов управления Сг..,Стстробируется сигналомMK(V),принимающим единич­ное значение при выполнении операционной МК. Дешифратор условия перехода стробируется сигналом МК(1), который равен 1 при обработке управляющей мик­рокоманды. Адрес следующей МК образуется на счетчике СЧАМ при выполне­нии микрооперации +1СЧАМ СЧАМ := СЧАМ + 1 или П2СЧАМ: СЧАМ := В. Формирова­ние адреса следующей МК описывается микропрограммой на рис. 6.16.
Достоинство естественной адресации — экономия памяти микропрограмм, а основной недостаток состоит в том, что для любого перехода требуется полный тактовый период, в то время как при принудительной адресации переход выпол-
Микропрограммный автомат с программируемой логикой 313
няется одновременно с формированием управляющих сигналов без дополнитель­ных обращений к управляющей памяти. Кроме того, при сильно разветвленных микропрограммах требуются большие дополнительные затраты памяти:
Рассмотренные способы адресации аппаратно реализует формирователь адреса микрокоманды ФАМ (см. рис. 6.8). ФАМ является механизмом управления по­следовательностью выполнения микрокоманд. Возрастание сложности микропрог­раммного обеспечения современных ВМ предопределяет необходимость расши­рения функциональных возможностей ФАМ.
314 Глава 6. Устройства управления
Набор базовых функций управления, реализуемых ФАМ, включает в себя: ПРИ-PATTTFHHF, ПЕРИОД ВЫЗОВ, ВОЗВРАТ, ЦИКЛ [9, 32]. Функции управления кодируются полем ФУ в составе МК (рис. 6.17) и задают алгоритмы выбора адреса очеред­ной МК.
МО
УП
ФУ
А
Рис. 6.17. Структура микрокоманды с выделенным полем функции управления
Обозначим: ;' — адрес МК, в которой размещена данная функция управления; АМК — адрес следующей МК; СЧЦ — счетчик количества повторений микропрог­раммы (циклов);^- — значение анализируемого условия; а — адрес возврата к вы­зывающей микропрограмме. Охарактеризуем каждую функцию управления.
Рис. 6.18. Набор базовых функций управления микрокоманд: а — ПРИРАЩЕНИЕ; б- ПЕРЕХОД; в — ВОЗВРАТ; г— ВЫЗОВ;д - ЦИКЛ
11РИРАШЕНИЕ — обеспечивает переход к МК, записанной по адресу; + 1, ауслов-ная функция ПРИРАЩЕНИЕ — многократное повторение одной и той же МК, запи­санной по адресу/' (рис. 6.18, а).
Микропрограммный автомат с программируемой логикой 315
ПЕРЕХОД — обеспечивает переход к последовательности микрокоманд с началь­ным адресом АМК. В случае условного перехода управление передается по адресу АМК при единичном значении условия Д/, в противном случае выполняется МК по адресу / + 1 (рис. 6.18, б).
ВЭЗНАТ — позволяет после выполнения микропрограммы автоматически вер­нуться в ту точку, откуда она была вызвана (рис. 6.18, в). Использование условной функции Β03ΗΆΤ позволяет вернуться к основной микропрограмме из различных точек внешней микропрограммы.
ВЫЗОВ — одна из основных функций, так как позволяет перейти к исполнению другой микропрограммы с начальным адресом АМК (с сохранением адреса точки перехода), как показано на рис. 6.18, г.
ЦИКЛ — передает управление многократно исполняемому участку микропрог­раммы с начальным адресом АМК (рис. 6.18, д).
Таким образом, можно сделать вывод, что по своим возможностям базовые функции управления микрокоманд близки к командам переходов программного уровня управления.
Организация памяти микропрограмм
Функциональные возможности и структура микропрограммных автоматов в зна­чительной степени зависят от организации памяти для хранения микропрограмм. Основные способы организации памяти микропрограмм можно свести к сле­дующим вариантам [3].
1.   Каждое слово ПМП содержит одну микрокоманду. Это наиболее простая орга­низация ПМП. Основной недостаток — в каждом такте работы МПАтребуется обращение к памяти микропрограмм, что приводит к снижению быстродействия МПА.
2.   Одно слово ПМП содержит несколько микрокоманд. В результате осуществ­ляется одновременное считывание из ПМП нескольких МК, что позволяет по­высить быстродействие УУ.
3.   Сегментация ПМП, при которой память разделяется на сегменты, состоящие из 2Лд соседних слов, при этом адрес слова АМК разделяется на два поля: 5 и Л. Поле 5 определяет адрес сегмента, а поле А — адрес слова в сегменте. Адрес S устанавливается специальной микрокомандой. В последующих микрокоман­дах указывается только адрес слова А в сегменте. Таким образом, разрядность адресной части МК уменьшается.
4.   Двухуровневая память (рис. 6.19). Первый уровень — микропамять, хранящая микрокоманды. Второй уровень — нанопамять, содержащая нанокоманды.
МК выбирается из микропамяти и служит для адресации слова нанопамяти, которое включает в себя необходимые сигналы управления. После выполнения микроопераций из микропамяти выбирается следующая МК. Иначе говоря, нано­память реализует функцию шифратора управляющих сигналов (см. рис. 6.9, в}. Двухуровневая память рассматривается как способ для уменьшения необходимой емкости ПМП, ее использование целесообразно только при многократном повто­рении микрокоманд в микропрограмме.
316 Глава 6. Устройства управления
Запоминающие устройства микропрограмм
Память микропрограмм может быть реализована запоминающими устройствами различных типов. В зависимости от типа применяемого ЗУ различают МПА со статическим и динамическим микропрограммированием [28]. В первом случае в качестве ПМП используется постоянное ЗУ (ПЗУ) или программируемая логи­ческая матрица (ПЛМ), во втором — оперативное ЗУ.
Динамическое микропрограммирование в отличие от статического позволяет оперативно модифицировать микропрограммы УУ, меняя тем самым функцио­нальные свойства ВМ. Основное препятствие на пути широкого.использования динамического микропрограммирования — энергозависимость и относительно невысокое быстродействие ОЗУ.
В УУ со статическим микропрограммированием более распространены ПЛМ. Программируемая логическая матрица является разновидностью ПЗУ, в котором программируются не только данные, но и адреса, благодаря чему на ПЛМ можно реализовать как память микропрограмм, так и формирователь адреса следующей микрокоманды.
ПЗУ содержит полный дешифратор с «-разрядным входом (адресом) и 2Λη вы­ходами. Напротив, ПЛМ имеет неполный дешифратор, количество выходов в ко­тором меньше, чем 2Λη, поэтому в ПЛМ некоторые адреса вообще не инициируют действий, тогда как другие адреса могут оказаться неразличимыми. Таким обра­зом, возможна выборка одного слова с помощью двух или более адресов или же выборка нескольких слов с помощью одного адреса, что эквивалентно реализации функции «ИЛИ» от выбранных слов.
В структуре ПЛМ (рис. 6.20) выделяют три части [21]:
•   буфер Б, формирующий парафазные значения ах„ ах„...,атУ ат входных перемен­ных а.,ая;
•   «И»-матрицу адресов, на выходе которой вырабатываются значения тер­мов Ζ1?..., Zj
•  «ИЛИ»-матрицу данных, на выходе которой формируются сигналы, представ-
ляющие значения выходных переменных сх ..., сп. Матрица адресов содержит входных цепей (горизонтальные линии) и /m-входовых элементов «И», каждый из входов которых (вертикальные линии) может соединяться с вход­ной цепью в точках, обозначенных крестиком. Аналогично строится матрица данных, в которой крестиками обозначены возможные соединения входных цепей матрицы с лу-входовыми элементами «ИЛИ».
Микропрограммный автомат с программируемой логикой 317
Рис. 6.20. Структура программируемой логической матрицы Соединения в ПЛМ обеспечивают однонаправленную передачу сигналов: в ма­трице «И» — из любой горизонтальной цепи в вертикальную, а в матрице «ИЛИ» — из любой вертикальной цепи в горизонтальную. Такие соединения осуществляют­ся за счет диодов или транзисторов.
Процесс установления соединений между горизонтальными и вертикальными цепями матриц называется программированием ПЛМ (программированием адре­сов и данных соответственно). Различают ПЛМ с масочным и электрическим про­граммированием, а также перепрограммируемые логические матрицы. В ПЛМ первого типа информация заносится посредством подключения диодов или тран­зисторов, к цепям за счет металлизации соответствующих участков матриц, вы­полняемой через маску (шаблон). В ПЛМ с электрическим программированием либо устанавливаются нужные соединения (путем пробоя слоя диэлектрика, (р-п)-перехода), либо уничтожаются ненужные соединения (благодаря выжига­нию плавких перемычек). Перепрограммируемые ПЛМ позволяют многократно переписывать информацию. При этом стирание информации производится ульт­рафиолетовым излучением, а запись — электрическим током. ПЛМ более.экономны по затратам, чем ПЗУ, в трех случаях: .
•   при выдаче нулевого кода;
•   при формировании значения функции «логическое ИЛИ» от нескольких слов;
•   при записи одного и того же слова по нескольким адресам.
Чтобы иметь возможность выдать нулевой код из ПЗУ, необходимо обеспе­чить предварительную запись нуля в определенную ячейку. В ПЛМ для этого до­статочно обращения по ^запрограммированному адресу.
Во втором случае в ПЗУ опять должна задействоваться дополнительная ячей­ка для хранения кода, специально запрограммированного как логическое «ИЛИ»
318 Глава 6. Устройства управления
от нескольких слов. В ПЛМ один адрес может относиться к нескольким словам, которые на выходе матрицы данных объединяются по схеме «ИЛИ».
В третьем случае в ПЗУ требуется многократная запись одного слова по всем указанным адресам. Применительно к ПЛМ это означает, что какое-то слово в ма­трице данных имеет адрес вида 010ХХ, где XX — разряды с безразличным значе­нием (цепи соответствующих разрядов буфера не подключены к вертикальным цепям матрицы адресов).
Минимизация количества слов памяти микропрограмм
Общая задача оптимизации емкости памяти микропрограмм достаточно сложна и поэтому обычно решается в два этапа. На первом этапе минимизируется количе­ство слов микропрограммы (количество микрокоманд), на втором этапе — разряд­ность микрокоманды.
Сначала рассмотрим один из возможных подходов, действующих при разбие­нии линейной микропрограммы на минимальное количество микрокоманд [3].
Обозначим через, — множество операндов микрооперации у.; 0;. — множество результатов микрооперации^.,. Сигналы управления (СУ) микроопераций у. и у. нельзя объединить в одну микрокоманду, если имеет место один из трех случаев пересечения по данным:
При этом говорят, что у;. и у. находятся в отношении wg зависимости по данным: у;. w у. Графически отношение wg отображается графом зависимости по данным (ГЗД), вершины которого соответствуют микрооперациям. Дуга (у;. ,у) в ГЗД по­казывает, что микрооперации у. и у. находятся в отношении wg. Пример ГЗД при­веден на рис. 6.21.
Если две микрооперации у;., у. используют один и тот же функциональный узел ВМ, то говорят, что они находятся в отношении структурной несовместимости wc, то есть у. wc у. Сигналы управления двух микроопераций можно объединить в одну микрокоманду, если они структурно совместимы и не находятся в отноше­нии зависимости по данным:
Микропрограммный автомат с программируемой логикой 319
Пусть между микрооперациямиух, ....^рассматриваемого ГЗД существует сле­дующая структурная несовместимость:
Минимальное количество микрокоманд в микропрограмме будет определять­ся длиной критического пути в графе ГЗД, то есть пути, длина которого макси­мальна.
На первом шаге алгоритма формируется начальное распределение (HP), состоя-, щее из блоков В1 ..., Вм, где М— длина критического пути ГЗД. Каждый блок Д. является «заготовкой» микрокоманды Υ{ , в него включаются СУ тех микроопера­ций, которые могут выполняться не ранее, чем по микрокоманде Yt.Начальное рас­пределение для нашего примера показано в табл. 6.1.
Таблица 6.1. Основные распределения микроопераций
Блок
Распределение МО
Блок
ПКР
HP
пр
КР
Я.
У^.УъУ?
Уг
Уг
δι
Уг
в2
УьУь
УьУ*
Уз
V
Уз
в,
Уа
Уа>Уч
Ул
Д>
Уа
в4
УьУъ
УьУъУъ
У* У*
в\
У$
в\
Ул
Так как уг г/2,г/7 независимы по данным от других микроопераций, то они могут выполняться в блоке Βν Микрооперация уъ зависит по данным от у2, а у8от у7, по­этому микрооперацииу3ну8могут выполняться не ранее, чем в блоке В2. Основной принцип построения HP: СУ микрооперации уп должен помещаться в блок Д, если в блоке Д_; находится СУ такой микрооперации г/т, что ymwgy„. Полученное HP (см. табл. 6.1) содержит четыре блока, что равно длине максимального пути в ГЗД (см. рис. 6.21), и определяет минимально возможное количество МК в микропрограмме.
На втором шаге алгоритма формируется повторное распределение (ПР), опре­деляющее максимальный по номеру блок Д, в котором еще в состоянии выпол­няться микрооперация^. Если HP формируется прохождением графа сверху вниз, то ПР — проходом по ГЗД снизу вверх. Так, г/8может выполняться в самом послед­нем блоке ПР (см. табл. 6.1), поскольку ни одна из микроопераций не зависит по данным оту8. Длина ПР также равна длине максимального пути в ГЗД.
Исходя из HP и ПР, формируется критическое распределение (КР). В КР вхо­дят СУ критических микроопераций, то есть таких, которые находятся в блоках с одинаковыми номерами как в HP, так и в ПР. Так, СУ г/2находится в блоке Д HP и в блоке Д ПР, следовательно, это критическая микрооперация. К критическим относятся также микрооперации уъ, ур у5, г/6(см. табл. 6.1). Кроме того, критичес­кое распределение содержит четыре блока и является основой для формирования набора микрокоманд.
Так как КР было сформировано без учета структурной несовместимости меж­ду критическими микрооперациями, оно должно быть проверено на ее наличие.
3 2 0 Глава 6. Устройства управления
Блок, содержащий СУ структурно несовместимых микроопераций, «расщепляет­ся»· на подблоки, внутри которых нет структурной несовместимости. Тем самым формируется проверенное критическое распределение (ПКР). В нашем случае су­ществует структурная несовместимость между у5 и у6, поэтому блок Βψ входящий в КР, необходимо разделить на два подблока В\ иВ* (см. табл. 6.1).
На последнем шаге алгоритма путем размещения оставшихся СУ некритичес­ких микроопераций по блокам ПКР формируется окончательный набор микроко­манд (НМК). Каждый блок и подблок ПКР соответствует одной микрокоманде результирующего НМК. В нашем примере нужно распределить СУ микроопера­ций у^у-цУв- Для этого имеется следующее правило: в ПКР ищется самый первый по номеру блок, в который можно включить СУ микрооперации у^ из последова­тельности блоков Ви,..., Вк, где Внблок HP и Вк —блок ПР, содержащие СУ данной микрооперации. Если размещаемый СУг/„не может быть включен ни в один из этих блоков из-за структурной несовместимости с уже размещенными в них СУ микроопераций, то он помещается в специально формируемый блок В'к (г = 1,2,...). В табл. 6.2 показано применение этого правила для окончательного формирова­ния НМК. Так, СУ микрооперации yi должен быть включен в микрокоманду У, или в микрокоманду Y2. СУ микрооперации у: включается в МК Υρ так как он структурно совместим с СУ микрооперации у2 принадлежит Yr СУ микрооперации у7должен быть включен в одну из микрокоманд У1; Y2, У3, однако его нельзя включить в из-за структурной несовместимости с СУ микрооперации у2. Нельзя его помес­тить и в микрокоманду Υ2 вследствие структурной несовместимости с у3. Поэтому СУ у7 войдет в микрокоманду У3.
Таблица 6.2. Формирование окончательного НМК
МК
Шаг
выполнения алгоритма
1
г
3
у.
УиУг
Ух<У1
У«Л
У*
Уз
Уз
Уз
У*
У*
УьУ?
У*,Ут
У*
Уъ
Уа
Уи.У%
У,
У*
Уб
Уе
Последней размещается СУ микрооперации г/8,и сначала может показаться, что он должен быть включен в МК Υ2, но при этом нарушается ограничение, которое накладывается зависимостью по данным: y7wgy8. Поэтому СУ уъ не может войти в МК, предшествующую микрокоманде У3, которая содержит СУ микрооперации у7. Для исключения подобных ошибок следует корректировать HP после каждого распределения СУ микрооперации в МК У,. Коррекция заключается в переме­щении всех СУ микроопераций уп, зависящих по данным от распределенного СУ микрооперации, в блок В,· HP, где номер блока равен: i—j+l. Следова­тельно, СУ микрооперации^после распределенияу7можно включить только в МК У4 (см. табл. 6.2).
Микропрограммный автомат с программируемой логикой 321
Минимизация разрядности микрокоманды
Пусть записанная в ПМП микропрограмма содержит т микрокоманд Yr.., Ym* На множестве {yv —,yj всех микроопераций, чьи СУ входят в эти МК, задается отно­шение несовместимости wc , такое что:
Таким образом, несовместимыми являются микрооперации, СУ которых не встречаются вместе ни в одной микрокоманде микропрограммы.
Класс несовместимости (КН) Q £ У — множество МО, все элементы которого попарно несовместимы. Максимальный класс несовместимости (МКН) — это та­кой класс, в который нельзя бавить ни одной микрооперации без нарушения отношения несовместимости wc.
Задача минимизации разрядности микрокоманды формулируется в [3] сле­дующим образом: найти множество классов несовместимости Cit,.... С } та­кое, что
где |С.| — количество микроопераций в классе несовместимости, а выражение mt^log/n + 1)) определяет минимальную разрядность поля ПМП, необходимую
для кодирования п микроопераций и признака их отсутствия в конкретной МК. папам W{ - т1(Га£2(]С^ | +1)) называют ценой класса С,.
Тешение ищется на множестве МКН. Для заданного в табл. 6.3 примера микро­программы получается следующий набор МКН: Ct - \yv у·}, уп}> Сг - 2, у7, уи},
^ - {У*УтУи>Ь С," &*Ут»Ую)> cs " &4>УяЬ Q -&*УьУ«.УиЬ С7" &s>УъЬ Q -<3feУ* Таблица б.З, Набор микрокоманд
Микрокоманд·
СУ микроопераций
У,
Уи1ЫЬУ»¥*Уб
Уг
Уз>Ут>У*У$
у»
УчУ2>У*У»>У«>
У*
У А, У* У U
■ ■
У* У*
По набору МКН строится таблица покрытий, в столбце уп которой записыва­ются все МКН, в которые входит СУ микрооперации^. В табл. 6.4 имеются СУ микроопераций уг у23 У8, входящих только в один МКН. Такие микрооперации называют различающими микрооперациями, а соответствующие им МКН — суще­ственными МКН.
3 2 2 Глава 6. Устройства управления
Таблица 6.4. Таблица покрытий
Vi
Уг
Уз
У*
У%
У*
Ут
У·
У»
Ум
Ун
с,
с,
с.
с
Q
с,
с,
с,
с,
с.
с,
съ
Су
^ίο
Сг
с»
Q
с*.
с,
сл
*·Ί0
се
с3
с«
с,
cs
с,
ся
с.
с»
Решением β          задачи является множество МКН, включающее в себя все микр*
операцииул, чьи СУ принадлежат Υ. Поскольку допустимо несколько решений, то , ищется минимальное, дающее наименьшую разрядность ПМК.
Объем вычислений можно сократить путем применения эвристических пра­вил. Так, существенные МКН (или их подклассы) Си С2, С^, С7 (см. табл. 6.4) дол­жны входить в любое решение бета. Далее, если множество МКН в столбце у. являет­ся подмножеством множества МКН в столбце ys то столбец ys можно удалить из таблицы покрытий, так как микрооперация у. в любом случае покрывается мень­шим числом МКН из столбца^ (говорят, что столбец^., доминирует над столбцом у ). Так, в табл. 6.4 столбец у: доминирует над столбцами г/7и у столбец угнад столбцом у10, столбец уьнад столбцом у5; следовательно, столбцы у5, у7, yia,yn можно удалить из таблицы покрытий.
.Таблица 6.5. Сокращенная таблица покрытий
У.
У.
У*
с<
с.
cs
с.
ч»
с*
t-LO
После применения этих правил получается сокращенная таблица покрытий (табл. 6.5), по которой покрытия могут быть найдены, например, методом Петри­ка: А' - (C4v С5) Л 9 v С10) л 5 v Cs v С10) и после приведения подобных членов и выполнения поглощений типа АВ имеем: А'= С4С10 v С5С9 v С5С104С8С9. Выражению А'соответствуют покрытия 4, Ci0},{C4, Св, С9), {С5, С9} и 5, Cw).
Добавив к этим покрытиям существенные МКН, получим начальное множе­ство решений:
Pi ** it'll *Ίι t"s» t'ti t'T» ''lOi· Pj = ί^Ίι *~Ί> ^3' *-'*> ^7· ^8' Ц)Г> Рз (^It t-2' "3· ^5' 1 Ц>1· Pi = {C-|, C2t Lj, Cj, C7, C(oJ.
Решение 6eTaj может быть избыточным, то есть некоторые микрооперации могут покрываться несколькими МКН Cff принадлежащее бета j. Для нахождения требуемого mi ного решения необходимо для каждого избыточного решения 6eTaj.
Микропрограммный автомат с программируемой логикой 3 2 3
•   определить множество неизбыточных решений и их цену;
•   выбрать в качестве окончательного решения неизбыточное решение с мини­мальной ценой.
Для нахождения неизбыточных решений годится такая же процедура. Для каж­дого избыточного решения бета j строится таблица покрытий наподобие табл. 6.4, од­нако в ее столбцах записываются только МКН, соответствующее решению бета. За­тем, используя описанные выше эвристические методы, получают сокращенную таблицу покрытий, из которой простым перебором или методом Петрика находят­ся все неизбыточные решения.
Пути повышения быстродействия автоматов микропрограммного управления
Цикл выполнения микрокоманды Гмк можно представить в виде трех этапов:
•   формирования адреса очередной микрокоманды в ФАМ (А);
•   выборки по данному адресу микрокоманды из памяти микропрограмм (Bj);
•   исполнения микрокоманды в операционной (ОЧ) или адресной части (АЧ) вычислительной машины (И).
Порядок следования этапов определяется способом соединения формировате­ля адреса следующей микрокоманды и памяти микропрограмм.
Структура МПА (рис. 6.22, а) с ФАМ и ПМП, связанными непосредственно друг с другом, не допускает совмещения этапов во времени — здесь этап +1 начи­нается только после выполнения этапа Д(рис. 6.22, б).
Рис. 6.22. Построение МПА без совмещения: а — структурная схема; б— временная диаграмма обработки микрокоманд
В течение цикла Гмк все узлы заняты обработкой только одной, текущей мик­рокоманды с номером i, причем последовательный характер обработки МКне по­зволяет достичь высокого быстродействия:
Производительность ВМ повышается при одновременной конвейерной обра­ботке в МПА нескольких микрокоманд, находящихся на различных этапах выпол-
Hosted by uCoz