Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 / BOOKS / cc_book.pdf
Скачиваний:
97
Добавлен:
28.05.2015
Размер:
807.63 Кб
Скачать

Глава 2. СХЕМНЫЕ УСТРОЙСТВА УПРАВЛЕНИЯ

Термин "схемное управление" относится к устройствам управления, в которых управляющие сигналы формируются с помощью специальных блоков, состоящих главным образом из комбинационных схем, отдельных элементов памяти(часто организованных в счетчики или регистры) и генераторов импульсов. Иногда такие УУ называют устройствами управления с жесткой логикой. Состав схемных УУ определяется набором операций, выполняемых под их управлением, а также принципами организации управления выполнением команд.

Существуют две основные разновидности схемных устройств управления: УУ на основе распределителей импульсов и УУ, представляющие собой схемную реализацию автоматов Мили и Мура, интерпретирующих заданный набор микропрограмм. Последние для краткости будут называться УУ на основе микропрограммных автоматов, несмотря на некоторую не строгость этого термина.

2.1. Устройства управления на основе распределителей импульсов

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

Рис.7. Обозначение распределителя импульсов на схемах (а) и временная диаграмма его работы (б).

Распределителем импульсов (РИ) называют узел, имеющий два входа: синхронизации С и начальной установки R, и n выходов Т1...Тn (рис.7,а). При подаче на вход R сигнала начальной установки (НУ) РИ устанавливается в такое состояние, при котором выходной сигнал присутствует только на

первом его выходе Т1. При подаче синхроимпульса (СИ) на вход синхронизации С распределителя выходной сигнал снимается с i-го выхода Тi и переходит на (i + 1)-й выход Тi+1, причем с n-го выхода сигнал переходит на выход Т1. Таким образом, при подаче на вход С распределителя серии синхроимпульсов на его выходах будут поочередно появляться сигналы, как показано на временной диаграмме (рис.7,б).

РИ может быть построен, например, на основе счетчика и дешифратора, как показано на рис.8,а. В исходное состояние РИ переводится сигналом НУ, поступающим на вход начальной установки R счетчика Сч и устанавливающим в счетчике нулевой код. При этом на нулевом выходе дешифратора Дш, являющемся выходом Т1 распределителя, появляется выходной сигнал. После пуска РИ (цепь пуска на рисунке не показана) на вход "+ 1" счетчика начинают поступать синхроимпульсы. При поступлении очередного СИ содержимое счетчика увеличивается на единицу, вследствие чего выходной сигнал дешифратора переходит с i-го выхода на (i + 1)-й выход.

Другим вариантом реализации РИ является n-разрядный кольцевой сдвигающий регистр, осуществляющий, например, циклический сдвиг вправо на один разряд (рис.8,б). Сигнал начальной установки, поступающий на вход R регистра, устанавливает в регистре код 100...0, соответствующий наличию выходного сигнала на выходе первого разряда регистра, являющегося выходом Т1 распределителя. Синхроимпульсы поступают на вход S, управляющий сдвигом, и осуществляют сдвиг вправо установленного в регистре кода. Тогда с приходом каждого СИ выходной сигнал передвигается с i-го выхода на (i + 1)-й выход.

Рис.8. Построение распределителя импульсов на основе счетчика и дешифратора (а) и сдвигающего регистра (б)

Распределитель импульсов может быть также построен из соединенных последовательно линий задержки. В дальнейшем, независимо от способа реализации, РИ будет изображаться на схемах так, как показано на рис. 7,а.

Построение устройства управления на основе РИ сводится к выбору количества распределителей и числа их выходов с последующим синтезом комбинационной схемы, формирующей управляющие сигналы yi в соответствии с заданной микропрограммой.

Наиболее просто строится УУ, управляющее выполнением линейной (без разветвлений и циклов) микропрограммы (МП). В этом случае используется один распределитель импульсов с количеством выходов, равным числу операторов(операторных вершин) в МП. Реализация i-го оператора yi МП, представляющего собой некоторый набор выполняемых одновременно микроопераций Yi = {ya, yb,...,yz}, относится к такту Тi и осуществляется в момент формирования распределителем выходного сигнала на выходе Ti. Комбинационная схема УА УУ в этом случае состоит только из набора элементов ИЛИ, с помощью которых формируются управляющие сигналы МО, входящих в несколько операторов микропрограммы.

Построение УУ для микропрограмм с разветвлениями

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

распределения начинается с первого оператора Y1 МП, для выполнения которого назначается такт Т1, и продолжается далее последовательно для

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

Вкачестве примера рассмотрим распределение по тактам операторов микропрограммы, граф-схема которой представлена на рис. 9.

Самый длинный по количеству операторов путь Lm в МП от начальной вершины к конечной включает шесть операторов: Y1, Y2, Y3, Y6, Y7, Y9. Тогда kmax = 6, а РИ должен вырабатывать шесть тактовых синхросигналов Т1Т6, по которым и распределяются перечисленные операторы: Y1 T1, Y2 T2, Y3

T3, Y6 T4, Y7 T5, Y9 T6. Операторы Y4, Y5, Y8, не вошедшие в рассмотренный путь МП, распределяются по тактам исходя из следующих

соображений. Оператору Y8 непосредственно предшествуют операторы Y4, Y5, Y6, а сразу за ним следует конечная вершина микропрограммы. Операторам Y4 и Y5 непосредственно предшествует оператор Y2, сразу за ним следуют операторы Y7 и Y8. Поэтому для выполнения операторов Y4 и Y5 могут быть назначены такты Т3 или Т4, а для выполнения оператора Y8 – такты Т5 или Т6. Для определенности примем, например, что Y4 и Y5 выполняются в такте T3, а Y8 – в такте Т5.

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

li
(i)

Рис.9. Граф-схема микропрограммы с

Рис.10. Управляющий автомат на основе

распределителя импульсов, реализующий

разветвлениями

микропрограмму, представленную на

 

рис.9

Для каждой микрооперации yi должен быть выработан

соответствующий управляющий сигнал во всех тактах, в которых выполняются операторы, включающие эту МО. Пусть микрооперация yi

входит в операторы Y1(i), Y2(i)Y (i). Тогда для сигнала yi можно записать yi = Y1 \/ Y2 (i) \/ ... \/ Yli(i)

Каждый оператор Yj(i) выполняется в некотором такте Tj(i) либо при единичном значении определенного набора Xj(i) = {xασα xβσβ ... xωσω} логических условий xθσθ, где

xθ , если

σ θ =0;

xθσθ =

σ θ =1,

xθ , если

либо безусловно, т.е. при Xj(i) = . Следовательно, для сигнала любой микрооперации yi можно записать булеву функцию

yi = X1(i)Т1(i) \/ X2(i)Т2(i) \/ ... \/ Yli(i) Тli(i),

i = 1, …, n ,

где n – количество различных МО заданной микропрограммы. Эти функции должна реализовать комбинационная схема УА УУ.

Для рассматриваемого примера (рис. 9) можно записать следующие соотношения:

y1 = T1 \/

x3 T5;

y2

= T2 \/

x1 x2 T3 \/ x3T5;

y3

= T1 \/

x1 x2T3 \/ x3 T6;

y4 =

x1 x2 T3 \/ x1T3 = (x1 \/ x2 )T3;

y5 =

x1 x2 T4 \/ x3T5.

Соответствующая этому случаю схема УА УУ представлена на рис. 10.

Построение УУ для циклических микропрограмм

Поскольку порядок формирования тактовых сигналов распределителем импульсов жестко фиксирован, а любой цикл предполагает многократное повторение какого-либо участка микропрограммы, то для реализации микропрограмм, включающих циклы, необходимо использовать не один, а два распределителя импульсов: основной РИ1 и вспомогательный РИ2. Распределитель РИ1 будет вырабатывать последовательность основных тактовых сигналов, во время которых выполняются все операторы микропрограммы, не входящие в тело цикла; распределитель РИ2 вырабатывает вспомогательную последовательность тактовых синхроимпульсов, во время которых выполняются операторы, образующие цикл. Распределители работают поочередно. При входе в цикл запускается распределитель РИ2, а основной распределитель РИ1 останавливается. По окончании выполнения цикла РИ1 запускается с того такта, в котором он был остановлен, а РИ2 останавливается.

Процедура распределения операторов циклической МП по тактам начинается для тактов Тi основного распределителя РИ1 с первого оператора МП, так же как и для МП с разветвлениями, и продолжается для всех операторов самого длинного пути Lm к концу микропрограммы. Причем если цикл входит в рассматриваемый путь, то для его выполнения выделяется только один такт РИ1. Затем, так же как и в предыдущем случае, назначаются такты РИ1 для выполнения всех остальных операторов, которые не входят в цикл, и один такт на выполнение цикла,

если этот такт не был выделен ранее. После этого аналогичным образом распределяются операторы, входящие в цикл, по тактам Т'i вспомогательного распределителя РИ2.

Например, распределение операторов микропрограммы, граф-схема которой представлена на рис. 11, будет следующим:

Y1 T1, Y2 T2, Y3 T3, Y4 T4, Y11 T5, Y12 T6,

Y10 T5, Y5 T'1, Y6 T'2, Y8 T'3, Y9 T'4, Y7 T'3,

где Т1...Т6 – тактовые синхроимпульсы распределителя РИ1, а Т'1...Т'4 – тактовые синхроимпульсы вспомогательного распределителя РИ2, причем под выполнение цикла отводится такт Т3 РИ1.

Рис.11. Граф-схема циклической микропрограммы

Синтез комбинационной схемы УУ на основе РИ выполняется для циклических микропрограмм так же, как и для микропрограмм с разветвлениями. Однако для обеспечения поочередной работы основного и вспомогательного распределителей необходимо комбинационную схему дополнить цепями их включения и выключения. Поскольку момент включения одного распределителя совпадает с моментом выключения другого, обозначим через В1 сигнал выключения РИ1 и включения РИ2, а через В2 – сигнал выключения РИ2 и включения РИ1. Тогда сигнал В1 должен вырабатываться при вхождении в цикл, а сигнал В2 – при выходе из него.

Выход из цикла осуществляется при выполнении некоторого условия Xвых, вход в цикл также может происходить для выполнения некоторого условия Xвх. Пусть Тc – такт распределителя РИ1, в котором выполняется цикл, а Т'e – такт распределителя РИ2, в котором выполняется последний оператор цикла (т.е. последний такт РИ2). Тогда для сигналов В1 и В2 можно

записать: В1 = ХвхТc и В2 = XвыхТ'e. Для того чтобы после подачи сигнала включения распределитель продолжал работать, необходимо использовать

управляющий триггер, состояния которого устанавливаются сигналами В1 и

В2.

Комбинационная схема УУ для микропрограммы, представленной на рис. 11, будет описываться следующими соотношениями:

y1

= T1

\/ T'2 \/ x3T'3;

y4

=

x1 T3 \/ x3T'3;

 

y2

= T2

\/ T'1 \/ x2 T5;

y5

=

x3 T'3 \/ x3T'4 \/ x2T6;

y3

= T2

\/ T4 \/ x2T5;

B1 = x1T3;

B2 = x4 T'4.

Схема рассматриваемого УУ приведена на рис. 12, причем часть комбинационной КСх, формирующая сигналы y1...y5, представлена одним блоком ввиду очевидности ее построения. Наибольший интерес в данном УУ представляет узел переключения синхроимпульсов между распределителями. Он работает следующим образом.

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

После запуска УУ (цепь пуска на рис. 12 не показана) в тактах Т1 и Т2 распределителя РИ1 выполняются первые два оператора МП. При этом триггеры управления Тг1 и Тг2 установлены в единичное состояние и пропускают синхроимпульсы на вход С РИ1, но не пропускают СИ на РИ2, установленный в исходное состояние. Поступление сигнала Т'1 в КСх блокируется нулевым сигналом на инверсном выходе управляющего триггер Тг1, предотвращая неправильное формирование сигнала y2, который должен вырабатываться в такте Т'1 только при выполнении циклического участка МП.

При поступлении очередного синхроимпульса выходной сигнал РИ1 переходит на выход Т3. Если выполняется условие х1 = 0, то в комбинационной схеме формируется сигнал y4, а выполнение микропрограммы продолжается по ветви, не содержащей цикла, и следующий СИ поступит в РИ1, вызывая переключение выходного сигнала РИ1 с выхода Т3 на выход Т4. Если выполняется условие х1 = 1, то в такте Т3

сформируется сигнал В1, который переключит триггер Тг1 в состояние 0. При этом снимается блокировка сигнала Т'1, и комбинационной схемой будет выработан управляющий сигнал y2. Задний фронт СИ, вызвавшего эти переключения, переведет управляющий триггер Тг2 в нулевое состояние и блокирует поступление следующих синхроимпульсов в РИ1, одновременно разрешая их поступление в РИ2. Таким образом, РИ1 будет остановлен в такте Т3, а РИ2 – включен и начнет вырабатывать тактовые синхроимпульсы, в которых выполняются операторы циклического участка микропрограммы.

Когда после очередного выполнения цикла условие х4 примет нулевое значение, то в такте Т'4 будет выработан сигнал В2, что вызовет переключение управляющих триггеров в единичное состояние. В результате будет выключен РИ2 и включен РИ1. Очередной синхроимпульс поступит в РИ1 и переключит выходной сигнал этого распределителя на выход Т4. Поступление СИ в РИ2 заблокировано, однако он будет остановлен в такте Т'4. Для перевода РИ2 в исходное состояние можно, например, подать тактовый сигнал Т4 РИ1 на вход начальной установки R распределителя РИ2 (на рис. 12 эта связь не показана).

Временная диаграмма, изображающая описанные переключения, представлена на рис. 13, где для простоты показаны не все тактовые импульсы распределителя РИ1, а обозначенный точками разрыв в диаграмме соответствует повторениям циклического участка микропрограммы.

Рис.13. Временная диаграмма переключения распределителей импульсов управляющего автомата (рис.12) при входе в цикл и выходе из цикла

При практической реализации УУ для переключения синхроимпульсов между распределителями РИ1 и РИ2 может потребоваться более сложная

схема управления и две или более серий синхроимпульсов, обеспечивающие устойчивую работу УУ с учетом задержек в элементах схемы и не идеальности фронтов СИ.

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

2.2.Построение устройств управления на основе автоматов Мили и Мура, интерпретирующих заданную микропрограмму

Схемные устройства управления можно реализовать, используя автоматную интерпретацию микропрограмм. В этом случае осуществляется схемная реализация автомата Мили или Мура, закон функционирования которого соответствует заданной микропрограмме. Для такого пути построения УУ разработан развитый формальный аппарат синтеза [13].

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

А = {A, Z, U, ϕ , ψ , a0},

где A = {a0, a1, ..., am-1} – множество состояний автомата, Z = {z0, z1, ..., zr} и U = {u0, u1, ..., uj} – множества входных (входной алфавит) и выходных сигналов (выходной алфавит) соответственно; ϕ – функция переходов автомата, задающая отображение декартова произведения A × Z множеств A

иZ на множество A, т.е. соответствие между всевозможными парами

состояние – входной сигнал {ai, aj} и новым состоянием ak автомата; ψ – функция выходов, задающая отображение A × Z U для автомата Мили или

отображение A U для автомата Мура; a0 A – начальное состояние автомата.

Определяемый таким образом автомат называют абстрактным.

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

ивыходных сигналов A, Z, и U. Для этой цели элементы множества A, т.е. состояния абстрактного автомата, кодируются позиционным (иногда унитарным или каким-либо специальным) кодом, и в схему автомата вводится набор элементов памяти по числу разрядов в кодах состояний. Множество Z входных сигналов отображается на множество сигналов

логических условий X = {x0, x1, ..., xp}, поступающих в УУ из операционной части процессора. При этом в схему автомата вводится столько входов, сколько имеется различных логических условий. Множество U выходных сигналов отображается на множество управляющих сигналов(сигналов микроопераций) Y = {y0, y1, ..., yn}, вырабатываемых УУ, а в схему автомата вводится n выходных шин по числу различных управляющих сигналов.

Кроме того, для обеспечения дискретности автоматного времени в схеме автомата применяется синхронизация синхроимпульсами, подаваемыми на специальный вход синхронизации автомата. Такой автомат (рис. 14) называют структурным.

Рис.14. Структурный автомат

Структурный автомат состоит из комбинационной схемы КСх и памяти П. На вход КСх поступают входные сигналы xi (логические условия) и синхросигналы СИ, а на ее выходе формируются управляющие сигналы yj. Кроме управляющих сигналов, КСх вырабатывает сигналы возбуждения qk, k

= 1, h (или k = 1, 2h ), (где h – количество элементов памяти автомата), вызывающие переключения элементов памяти, а следовательно, и переходы автомата в новые состояния. Сигналы возбуждения должны соответствовать функции переходов автомата, принятому кодированию состояний и выбранному типу элементов памяти. Между КСх и П имеется обратная связь, по которой сигналы состояний Qk элементов памяти автомата поступают на входы комбинационной схемы, так как выходные сигналы и сигналы возбуждения, согласно определению функций переходов и выходов, зависят от состояния автомата.

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

Существуют два основных метода синтеза МПА, вырабатывающих управляющие сигналы согласно заданной микропрограмме: канонический и интерпретационный.

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

Если синтезируемый автомат достаточно сложен, полается система из большого числа уравнений, включающих много переменных. Ее минимизация традиционными методами является трудоемкой и малоэффективной. В таких случаях может быть использован интерпретационный метод синтеза автомата непосредственно по граф-схеме МП. При необходимости ознакомления с этим методом рекомендуется обратиться к работам [2, 9].

Процесс технической реализации микропрограммного автомата при использовании канонического метода синтеза включает следующие основные этапы:

1)синтез абстрактного автомата по заданной микропрограмме;

2)минимизацию абстрактного автомата;

3)выбор типов элементов памяти и кодирование состояний автомата;

4)составление канонических уравнений, описывающих комбинационную схему автомата;

5)минимизацию полученной системы уравнений (булевых функций);

6)построение схемы автомата в заданном элементном базисе. Рассмотрим кратко эти этапы.

1.Синтез абстрактного автомата по заданной микропрограмме.

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

Пусть микропрограмма задана в виде граф-схемы микропрограммы (ГСМП) и синтез абстрактного автомата должен завершиться построением графа автомата. Тогда правила перехода от заданной ГСМП к графу автомата будут следующими.

Переход от ГСМП к графу автомата Мили осуществляется в два этапа. На первом из них определяется число состояний автомата путем разметки ГСМП, на втором строится граф автомата.

Разметка ГСМП сводится к определению точек ГСМП, соответствующих состояниям автомата Мили. Поскольку автомат этого типа вырабатывает входные сигналы только в момент перехода из одного

состояния в другое, то этим переходам будут соответствовать операторные вершины ГСМП, а состояниям – переходы между операторными вершинами. Тогда разметки можно изложить следующим образом:

1)отмечаются выход начальной и вход конечной вершин ГСМП и этим отметкам присваивается символ начального состояния автомата a0;

2)отмечаются выходы всех операторных вершин ГСМП и этим

отметкам присваиваются символы состояний ai, i = 1, 2, . . . . Причем каждой отметке присваивается только один символ, отличный от символов всех остальных отметок. Исключение составляют отметки тех выходов операторных вершин, которые связаны со входом одной и той же операторной, условной или конечной вершины. Таким отметкам присваивается один и тот же символ. Пример размеченной по этим правилам ГСМП представлен на рис. 15,а.

Рис. 15. Размеченная граф-схема микропрограммы (а) и соответствующие графы автоматов Мили (б) и Мура (в)

После разметки ГСМП строится граф автомата. Для этого существуют следующие правила:

1)изображается столько вершин графа, сколько имеется отметок на ГСМП, обозначенных различными символами. В эти вершины вписываются символы a0, a1, ..., am-1, использованные при разметке;

2)изображаются дуги переходов между вершинами графа(состояниями

автомата), при чем две вершины ai и aj соединяются дугой перехода, если между отметками на ГСМП, обозначенными символами ai и aj, имеется хотя бы один путь, содержащий не более одной оперативной вершины (т.е. не содержащий никаких других отметок);

3)на дугах переходов между состояниями ai и aj записываются входные сигналы, под действием которых происходит переход, и выходные сигналы, вырабатываемые на данном переходе. В качестве входного сигнала берется конъюнкция содержимого условных вершин, лежащих на пути

между отметками ai и aj ГСМП. При этом если рассматриваемый путь проходит через выход условной вершины xr, обозначенный единичным значением условия, то во входном сигнале это условие записывается в

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

вырабатываемого при переходе автомата из состояния ai в состояние aj, записывается содержимое операторной вершины, лежащей на пути между

отметками ai и aj ГСМП. Причем если на ГСМП путей перехода между этими отметками несколько, то на дуге перехода между состояниями ai и aj пары входной сигнал-выходной сигнал, соответствующие различным путям, записываются через дизъюнкцию.

На рис. 15, б представлен граф автомата Мили, построенный с использованием описанных правил по микропрограмме, граф схема которой изображена на рис. 15, а.

Переход от ГСМП к графу автомата Мура также осуществляется посредством разметки граф-схемы заданной микропрограммы с последующим построением графа автомата.

Процедура разметки ГСМП в данном случае сводиться к отметке начальной, конечной и всех операторных вершин и присвоению этим отметкам различных символов a0, a1, ..., am-1, причем символ a0 присваивается

иначальной и конечной вершинам. На рис. 15, а цифрами 0...9, стоящими в круглых скобках рядом с начальной, конечной и всеми операторными

вершинами ГСМП, обозначены отметки этих вершин с символами a0... a9 соответственно.

Граф автомата Мура после разметки граф-схемы заданной микропрограммы строится следующим образом:

1) изображается столько вершин графа, сколько имеется различных отметок на ГСМП. В эти вершины вписываются символы состояний a0, a1, ..., am-1, использованные при разметке, и соответствующие им выходные сигналы. При этом в качестве выходного сигнала, соответствующего

состоянию ai, i = 1, (m 1) , берется содержимое операторной вершины

ГСМП, отмеченной символом ai, а состоянию a0 приписывается пустой выходной сигнал;

2)изображаются дуги переходов, соединяющие те вершины графа

автомата ai и aj, для которых между отметками ai и aj на ГСМП имеется путь, не содержащий ни одной операторной вершины;

3)на дугах переходов между состояниями ai и aj по тем же правилам, что и при построении графа автомата Мили, записываются сигналы, под действием которых происходит переход.

На рис. 15, в представлен граф автомата Мура, построенный по изложенным правилам для микропрограммы, изображенной на рис. 15, а. В общем случае количество состояний автомата Мура, интерпретирующего некоторую микропрограмму, больше количества состояний автомата Мили, построенного по той же микропрограмме.

2.Минимизация абстрактного автомата. Этот этап выполняется с помощью известного метода Ауфенкампа-Хона [2]. Следует отметить, что минимизация абстрактных автоматов, закон функционирования которых соответствует реальным микропрограммам ЭВМ, редко позволяет намного сократить число состояний автомата, если микропрограмма не содержит одинаковых участков, повторяющихся в различных ее частях.

3.Выбор типа элементов памяти и кодирование состояний автомата.

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

Вопросам кодирования состояний автоматов посвящено много работ, в том числе [7]. Однако попытки обеспечить при кодировании совместное выполнение требований устойчивости работы автомата, максимального быстродействия, минимального количества памяти и наиболее простой комбинационной схемы приводили к настолько сложным постановкам задачи кодирования, что полностью решить ее не удавалось.

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

управляющие устройства. Все это снизило остроту проблемы оптимизации кодирования состояний автомата.

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

Комбинационная схема автомата Мили описывается системой булевых функций

q

 

=

 

X il a il

Н ,

i =

 

 

(или i =

 

);

i

1, h

1, 2 h

 

(bil

Bi )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

Н

 

 

 

 

 

 

 

 

j =

 

, j = 1, h ,

y

jr a jr

 

 

(b jl B j

)

 

 

 

 

 

 

 

 

 

где h – количество сигналов возбуждения элементов памяти автомата; n – количество выходных сигналов автомата; Bi = {bi1, bi2, ..., bil, …} – множество

переходов bil: ailн ailк автомата из состояния ailн в состояние ailк, на которых qi = 1, т.е. должен быть выработан сигнал возбуждения qi; Bj = {bj1,

bj2, ..., bjr, …} – множество переходов bjr: ajrн ajrк автомата из состояния ajrн в состояние ajrк, на которых yj = 1, т.е. должен быть выработан выходной

сигнал yj; Xjl и Xjr-наборы входных сигналов (конъюнкций логических условий xs, s = 1, p ), под действием которых осуществляются переходы bil и

bjr соответственно.

Комбинационная схема автомата Мура описывается системой булевых функций

q

 

=

 

X il ail

Н ,

i =

 

 

(или i =

 

);

i

1, h

1, 2 h

 

(bil

Bi )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Н

 

 

 

 

 

 

 

 

 

 

j =

, j

= 1, h ,

y

a jk

 

 

(a jk A j )

 

 

 

 

 

 

 

 

 

где Aj = {aj1, aj2, ..., ajk, …} – множество состояний ajk автомата, которым соответствует выходной сигнал yj.

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

автомата, выполняемому под действием одного входного сигнала; для каждого перехода записывается столько строк, сколько имеется различных входных сигналов, вызывающих данный переход.

Рассмотрим таблицы переходов для автоматов Мили и Мура, графы которых представлены на рис. 15, б и 15, в соответственно.

Пусть состояния автомата Мили (рис. 15, б) закодированы следующим образом: a0 – 000, a1 – 001, a2 – 010, a3 – 011, a4 – 100 и a5 – 101. Для иллюстрации рассмотрим три случая, когда в качестве элементов памяти автомата используются триггеры RS, T и D типов. Соответственно в таблице переходов будет не один столбец для записи функций возбуждения, а три – по одному на каждый тип триггера (табл. 1).

Таблица 1. Таблица переходов автомата Мили

Исходное состояние

Код

Конечное состояние

Код

Входные сигналы

Выходны сигналые

 

 

Сигналы

 

 

исходного

 

конечного

 

 

 

возбуждения

 

состояния

 

состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

RS

 

T

 

D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a0

000

a1

001

у1, у3

S3

 

T3

 

D3

a1

001

a2

010

y2

S2

R3

 

T2

T3

 

D2

a2

010

a3

011

x1x2

у2, у4

S3

 

T3

 

D2 D3

 

 

a4

100

x1x2

у3

S1

R2

 

T1

T2

 

D1

 

 

a4

100

x1

у4

S1

R2

 

T1

T2

 

D1

a3

011

a4

100

y5

S1R2R3

 

T1T2T3

 

D1

a4

100

a4

100

x3

у2, у5

 

 

D1

 

 

a5

101

x3

у1

S3

 

T3

 

D1 D3

a5

101

a0

000

у3

R3

 

T3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В табл. 1 Si, Ri, Ti и Di – сигналы возбуждения, подаваемые на соответствующие входя i-го триггера (i = 1, 3 ) памяти автомата. Рассмотрим

одну из строк. Например, четвертая строка соответствует переходу автомата из состояния a2 (010) в состояние a4 (100) под действием входного сигнала x1x2 , (т.е. переход выполняется при x1 = 0 и x2 = 1 и только в этом случае),

причем во время перехода вырабатывается выходной сигнал y3. На данном переходе необходимо переключить триггеры памяти автомата: в первом разряде – из нуля в единицу, во втором – из единицы в нуль (010 100). Для этого при использовании RS-триггеров необходимо выработать сигнал установки в единицу S1 первого триггера и сигнал сброса в ноль R2 второго триггера; при использовании T-триггеров необходимо подать сигналы T1 и T2 на счетные входы первого и второго триггеров соответственно, инвертирующие их состояния; при использовании D-триггеров следует

подать единичное значение сигнала D1 на информационный вход (вход D) первого триггера. Следовательно, в зависимости от типа используемых триггеров соответствующие функции возбуждения S1 и R1, T1 и T2 или D1 и только они должны принять на этом переходе единичные значения.

Тогда канонические уравнения, описывающие комбинационную схему данного автомата RS-триггеров, будут следующими:

y1 = a0 x3 a4 ;

R1 = a5 ;

y2 =a1 x1x2 a2 x3a4 ;

R2 = x1x2 a2 x1a2 a3 ;

y3=a0 x1x2 a2 a5 ;

R3 = a1 a3 a5 ;

y4 = x1x2 a2 x1a2 ;

S1 = x1x2 a2 x1a2 a3 = R2;

y5 = a3 x3a4 ;

S2 = a1 ;

 

S3 = a0 x1x2 a2 x3 a4.

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

Т1 = x1x2 a2 x1a2 a3 a5 ;

T2 = a1 x1x2 a2 x1a2 a3 ;

T3 = a0 a1 x1x2 a2 a3 x3 a4 a5,

а для D-триггеров

 

D1 = x1x2 a2 x1a2 a3 x3 a4 x3a4 ;

D2 = a1 x1x2 a2 ;

D3 = a0 x1x2 a2 x3 a4.

Ни одна из приведенных функций минимизации не подвергалась. Аналогичным образом может быть построена таблица переходов

автомата Мура. Пусть состояния автомата (рис.15, в) закодированы следующим образом: а0 – 0000, а1 – 0001, а2 – 0010, ..., а8 – 1000, а9 – 1001.

Так же, как и в предыдущем случае, помесим в таблице переходов сигналы возбуждения для трех вариантов построения памяти автомата: на RS-, T- и D- триггерах (табл. 2).

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

сигналы yi, соответствующие состоянию, записанному в той же строке таблицы в столбце исходного состояния перехода.

Тогда канонические уравнения, описывающие комбинационную схему данного автомата Мура, при построении памяти автомата на RS-триггерах примут вид:

y1 = a0 a7 ; y2 = a2 a3 ; y3 = a1 a4 a9 ; y4 = a3 a5 ; y5 = a6 a8 ;

R1 = a9 ;

S1 = x3a4 x3a5 x3a6 a7 = R2 ;

R2 = x3a4 x3a5 x3a6 a7 ;

S2 = x1x2 a2 x1a2 a3 ;

R3 = x1x2 a2 x1a2 x3a6 a7;

S3 = a1 x3 a4 x3 a5 ;

 

R4 = a1 a3 x3a5 a9 ;

 

S4 = a0 x1x2 a3 x1a2 x3 a4 x3 a6.

 

 

 

Таблица 2 Таблица переходов автомата Мура

 

 

 

 

 

 

 

 

 

Исходное состояние

Код

Выходны сигналые

Конечное состояние

Код

Входные сигналы

Сигналы возбуждения

 

 

 

 

 

исходного

 

 

конечного

 

 

 

 

 

состояния

 

 

состояния

 

 

 

 

 

 

 

 

RS

T

D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a0

0000

a1

0001

S4

T4

D4

 

 

 

 

 

 

 

 

 

a1

0001

у1, у3

a2

0010

S3 R4

T3 T4

D3

a2

0010

у2

a3

0011

x1x2

S4

T4

D3 D4

 

 

 

a4

0100

x1x2

S2 R3

T2 T3

D2

 

 

 

a5

0101

x1

S2 R3 S4

T2 T3 T4

D2 D4

a3

0011

у2, у4

a6

0110

S2 R4

T2 T4

D2 D3

a4

0100

у3

a7

0111

x3

S3 S4

T3 T4

D2D3D4

 

 

 

a8

1000

x3

S1 R2

T1 T2

D1

a5

0101

у4

a7

0111

x3

S3

T3

D2D3D4

 

 

 

a8

1000

x3

S1 R2 R4

T1 T2 T4

D1

a6

0110

у5

a7

0111

x3

S4

T4

D2D3D4

 

 

 

a8

1000

x3

S1 R2 R3

T1 T2 T3

D1

a7

0111

у1

a9

1001

S1 R2 R3

T1 T2 T3

D1 D4

a8

1000

у2, у5

a7

0111

x3

S4

T4

D2D3D4

 

 

 

a8

1000

x3

D1

a9

1001

у3

a0

0000

R1 R4

T1 T4

 

 

 

 

 

 

 

 

 

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

5.Минимизация полученной системы уравнений (булевых функций). Выполняется традиционными методами минимизации булевых функций. Уместно напомнить о взаимосвязи этого этапа с этапом кодирования состояний и возможности итеративного выполнения этих процедур.

6.Построение схемы автомата в заданном элементном базисе. На этом заключительном этапе синтеза микропрограммного автомата по полученным уравнениям строятся комбинационная схема автомата в заданном

элементном базисе и память автомата на элементах памяти выбранного типа, обеспечивается взаимодействие (синхронизация) КСx автомата с памятью и устойчивость его работы. Кроме того, осуществляется синхронизация входов и выходов МПА. При этом цепи формирования выходных сигналов в комбинационной схеме автомата Мили должны синхронизироваться сигналом СИ, вызывающим переход.

Востальном данный этап выполняется известными приемами построения комбинационных схем.

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

2.3.Учет распределения сдвигов в микропрограммных автоматах

Вмикропрограммном автомате Мили к неправильному функционированию может привести зависимость значений входного сигнала

Xr = {xασα xβσβ ...xωσω}, вызывающего переход as at, от значений выходных сигналов, вырабатываемых на этом переходе. Действительно, выходной сигнал в автомате Мили зависит от входного сигнала и состояния автомата. Но входной сигнал (логическое условие) отражает состояние какого-либо узла (узлов) процессора, которое может измениться при выполнении некоторой МО под действием управляющего сигнала, являющегося выходным сигналом управляющего автомата. В таком случае говорят, что

если выполнение микрооперации yi, i = 1, n может изменить значение логического условия xj, то xj входит в распределение сдвигов МО yi.

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

Во избежание таких ситуаций необходимо исключить возможность изменения входного сигнала на время tмо существования управляющих сигналов на выходе КСx автомата и его перехода tп из одного состояния в другое. Для этого можно использовать один из трех способов:

а) запомнить значения входных сигналов x1, x2, ..., xp на специальных триггерах перед началом формирования выходных сигналов (в начале каждого такта) на время tмо + tп;

б) ввести в автомат дополнительные состояния, разделив тем самым по двум различным тактам работы автомата момент переключения автомата в новое состояние, определяемое значением входного сигнала, и момент формирования выходного сигнала. Этот прием показан на рис. 16, где фрагмент граф-схемы микропрограммы (рис. 16, а) интерпретируется

фрагментом графа автомата с дополнительными состояниями аs' и аs'' (рис. 16, б) в том случае, если сигнал xk входит в распределение сдвигов микроопераций yi и yj;

в) реализовать МПА по схеме автомата Мура, в котором выходной сигнал зависит только от состояния автомата.

При выборе того или иного варианта следует оценить аппаратурные затраты при усложнении схемы автомата и снижения его быстродействия за счет введения дополнительных состояний.

Рис. 16. Фрагменты граф-схемы микропрограммы (а) и графа автомата с дополнительными состояниями (б), интерпретирующего эту микропрограмму

Глава 3. МИКРОПРОГРАММНЫЕ УСТРОЙСТВА УПРАВЛЕНИЯ

Альтернативой схемному управлению ЭВМ является микропрограммное управление. Когда набор команд ЭВМ велик, то в схемных УУ приходится строить очень большую комбинационную часть со сложными пересечениями и связями между отдельными ее узлами, лишенную всякой регулярности. Внесение каких-либо изменений в схемное УУ также весьма затруднительно.

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

3.1. Принцип микропрограммного управления и структура микропрограммных устройств управления

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

Любую машинную команду можно разложить на последовательность более простых операций (микроопераций), определяющих передачу информации между различными функциональными узлами процессора или преобразование информации в этих узлах. Между отдельными узлами процессора и внутри них имеются или устанавливаются вентили (схемы "И"), управляя которыми можно передавать через них данные или выполнять некоторые преобразования данных внутри узлов. Каждым вентилем может управлять специальная шина, состояния которой представляются в виде символа 0 или 1, хранимого в постоянной памяти.

Первая модель микропрограммного управления была предложена М. Уилксом в 1951 г. Эта модель, иногда называемая микропрограммным автоматом Уилкса-Стринджера (рис.17, а) состоит из управляющей матрицы С, матрицы последовательности S, регистра адреса РА и дешифратора Дш, на который подаются синхронизирующие импульсы СИ.

Матрица С состоит из набора горизонтальных проводов w0, ..., wN – 1 (по количеству выходов дешифратора) и набора вертикальных проводов, соединенных с управляющими шинами процессора. Количество

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

Рис. 17. Модель микропрограммного управления (а) и связь горизонтальных шин матриц C и S для реализации условных переходов (б)

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

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

Если на регистре адреса установлен некоторый код и на дешифратор поступает синхроимпульс, то возбуждается соответствующий выход дешифратора, связанная с этим выходом горизонтальная шина матрицы С (что вызывает формирование заданного набора управляющих сигналов) и подключенная к ней горизонтальная шина матрицы S. В результате возбуждаются и соответствующие вертикальные шины матрицы S и формируется новый код адреса, который, пройдя через элементы задержки D, поступает на регистр адреса. (Элементы задержки необходимы для разнесения по времени момента подачи сигнала, возбуждающего горизонтальные шины, и момента установки на РА нового кода).

Таким образом, при подаче нового синхроимпульса на дешифратор будет возбуждена горизонтальная шина матрицы С, соответствующая новому коду на РА. Например, после возбуждения горизонтальной шины, обозначенной на рис. 17,а символом w1, на РА будет установлен код 00011, и при подаче очередного синхроимпульса возбудится шина w3.

Следовательно, в соответствии с содержимым РА выбирается микрокоманда, выдающая сигналы в заданные управляющие шины согласно коду, записанному в постоянной памяти. Кроме того, эта же МК устанавливает на РА адрес следующей микрокоманды, которая будет управлять функционированием процессора во время следующего цикла процессора.

Для реализации условных переходов в микропрограммах горизонтальная шина матрицы С, соответствующая микрокоманде, в которой производится проверка условия перехода, связана с двумя горизонтальными шинами матрицы S. При возбуждении этих шин формируются различные коды, задающие адреса следующих микрокоманд для обеих ветвей перехода. Такая связь имеется у горизонтальной шины w3 (рис. 17,а). На рис. 17,б показано, каким образом выполнено это соединение. Ясно, что при возбуждении горизонтальной шины матрицы С значение проверяемого логического условия определяет, какая из двух подключенных к ней горизонтальных шин матрицы S будет возбуждена: если логическое условие имеет значение 0, то будет возбуждена верхняя шина матрицы S, в противном случае – нижняя.

Внастоящее время микропрограммные устройства управления используются в различных ЭВМ. Несмотря на то, что все МПУУ в той или иной мере отличаются друг от друга, принципиальных изменений исходная модель МПУ не претерпела. Общая структурная схема МПУУ представлена на рис. 18. В состав устройства входят постоянное запоминающее устройство (ПЗУ), регистр адреса микрокоманды (РАМК), регистр микрокоманды (РМК), схема формирования управляющих сигналов (СФУС), схема формирования адреса микрокоманды (СФАМК) и генератор тактовых синхронных импульсов (ГТИ).

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

Регистр адреса микрокоманды предназначен для хранения кода адреса микрокоманды во время выборки ее из ПЗУ.

Регистр микрокоманды используется для хранения микрокоманды, выбранной из ПЗУ, на время ее выполнения.

Схема формирования управляющих сигналов (СФУС) служит для выработки управляющих сигналов (сигналов микроопераций),задаваемых микрокомандой, находящейся на РМК. Наличие этой схемы, как будет

показано ниже, обусловлено тем, что не во всех МПУУ разряды МК соответствуют управляющим сигналам.

Рис.18. Структурная схема микропрограммного устройства управления

Схема формирования адреса микрокоманды вырабатывает адрес очередной подлежащей выполнению МК согласно информации, записанной в адресной части текущей МК, установленной на РМК, с учетом значений сигналов логических условий, поступающих на СФАМК.

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

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

Единственным новым узлом по отношению к исходной модели является схема формирования управляющих сигналов, вырабатываемых МПУУ, велико и выделение для каждого из них самостоятельного разряда в микрокоманде (по аналогии с собственной вертикальной шиной матрицы C на каждый управляющий сигнал) приводит к чрезмерно большой

разрядности (100...200 и более двоичных разрядов) ПЗУ. Чтобы сократить разрядность ПЗУ, используют специальные методы кодирования управляющих сигналов в микрокомандах.(Эти методы рассмотрены в следующем параграфе.)

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

3.2. Способы кодирования микрооперация и схемы формирования управляющих сигналов

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

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

Разрядность операционной части МК определяет емкость ПЗУ, необходимую для хранения микропрограмм. Чем большее количество микрокоманд содержится в МП, которые реализует МПУУ, тем более значительной будет экономия емкости ПЗУ за счет уменьшения числа разрядов МК.

С другой стороны, различным способам кодирования МО соответствуют различные структуры схем формирования управляющих сигналов. Поэтому, рассматривая формат операционной части МК, следует соизмерять экономию в объеме ПЗУ и аппаратные затраты на построение схемы формирования управляющих сигналов.

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

микроопераций не является необходимым. Некоторые МО могут взаимно исключать друг друга (например, микрооперации передачи информации из регистра в прямом и обратном кодах).

При кодированном представлении МО указание в МК произвольного набора микроопераций невозможно. Гибкость микропрограммирования при этом будет меньшей, что в определенных случаях может привести к увеличению времени выполнения микропрограммы.

Существуют четыре основных способа кодирования микроопераций:

-унитарное кодирование (иногда называемое горизонтальным микропрограммированием);

-максимальное кодирование (которое иначе называют вертикальным микропрограммированием);

-кодирование полей совместимых микроопераций;

-кодирование совместимых полей микроопераций.

Два последних способа являются промежуточными вариантами между первыми.

Унитарное кодирование микроопераций. При этом способе каждой

микрооперации yi, i = 1, n соответствует отдельный i-й разряд в операционной части микрокоманды. Единичное значение этого разряда указывает на то, что микрооперация yi выполняется при выполнении данной МК. И наоборот, если i-й разряд имеет нулевое значение, то микрооперация yi не выполняется. Разрядность операционной части МК в этом случае максимальна и равна количеству различных микроопераций n. Гибкость микропрограммирования при данном способе кодирования также максимальна, так как в одной МК может быть задан произвольный набор МО.

Рис. 19. Схема формирования управляющих сигналов для способа унитарного кодирования микроопераций

Схема формирования управляющих сигналов при унитарном кодировании не нужна и вырождается в набор вентилей по числу разрядов

операционной части МК (регистра МК), как показано на рис. 19. Назначение вентилей заключается в том, чтобы подать в процессор сигналы микроопераций в соответствующие моменты времени, поскольку цикл процессора может состоять из нескольких тактов. Для этой цели на вентили

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

В общем случае количество различных тактирующих синхроимпульсов p меньше количества различных микроопераций n, а сигналы на выполнение

микроопераций yi и yi +1 не обязательно подаются в одном и том же такте Tj,

j = 1, p . Поэтому на рис. 19 синхроимпульсы, поступающие на вентили

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

Максимальное кодирование микрокоманд (в данном случае следует использовать термин “микрокоманда”, а не “микрооперация”). Это такой

способ кодирования, при котором каждый элемент (микрокоманда) wi всего множества W различных по задаваемым микрооперациям микрокоманд кодируется позиционным двоичным кодом – кодом МК (аналогично коду операции в команде).

Разрядность кода МК при данном способе кодирования зависит от количества различных микрокоманд N и равна int ( log2N ), где через int ( x ) обозначено ближайшее большее целое к x, т.е. такое целое число, для которого выполняется соотношение x <= int ( x ) < x+1. Разрядность операционной части микрокоманды при таком кодировании минимальна.

Однако при составлении микропрограмм в МПУУ с максимальным кодированием допустимо использовать только уже закодированные микрокоманды. Введение новых МК требует перестройки схемы МПУУ, поэтому гибкость микропрограммирования в таком устройстве наименьшая.

Схема формирования управляющих сигналов для рассматриваемого способа представлена на рис. 20. Каждый выход дешифратора (если нет незадействованных кодов МК) соответствует определенной микрокоманде, т.е. определенному набору микроопераций, задаваемому этой МК. Шифратор имеет столько же входов, сколько дешифратор выходов, и преобразует поступающий на любой из его входов сигнал в набор сигналов соответствующих микроопераций. Учитывая, что в различных микрокомандах могут встречаться одинаковые микрооперации, шифратор функционально представляет собой набор схем ИЛИ по числу повторяющихся в различных МК микроопераций. Вентили на выходе шифратора используются для той же цели, что и в случае унитарного кодирования МО.

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

Рис.20. Схема формирования управляющих сигналов для способа максимального кодирования микрокоманд

Кодирование полей совместимых операций. При этом способе кодирования все множество микроопераций Y разбивается на несколько

подмножеств Yj так, что в каждое из подмножеств входят микрооперации, не встречающиеся вместе ни в одной из микрокоманд МПУУ. Эти подмножества называют подмножествами совместимых МО.

Такое разбиение позволяет закодировать МО каждого подмножества и исключает необходимость использования шифраторов.

Операционная часть МК при данном способе кодирования разбивается на несколько подмножеств, и в каждом поле записывается код какой-либо из микрооперации (КМО) соответствующего подмножества. Разрядность b операционной части в этом случае определяется количеством полученных подмножеств L и количеством микроопераций в каждом из подмножеств

b = j=L int(log

2

(| Yj | +1))

,

î =1

 

 

 

где | Yj | – мощность (количество

микроопераций) подмножества Yj.

Аргументом логарифма здесь является (| Yj | + 1) вследствие того, что в каждое подмножество необходимо включить пустую микрооперацию (см. с. 55).

Разрядность операционной части при кодировании полей совместимых МО меньше, чем в случае унитарного кодирования, но больше, чем при максимальном кодировании. Анализируя гибкость микропрограммирования, можно отметить, что при данном способе кодирования микрокоманды могут

включать не более L микроопераций – по одной из каждого подмножества. Сочетание МО, относящихся к различным подмножествам, в одной МК может быть произвольным.

Схема формирования управляющих сигналов для рассматриваемого случая приведена на рис. 21. Схема включает L дешифраторов кода микрооперации ДшКМО – по одному на каждую группу разрядов операционной части МК. Количество входов и выходов каждого ДшКМО определяется количеством МО, включенных в соответствующее подмножество. Индексы у микроопераций на рис. 21 – буквенные, так как МО с соседними номерами не обязательно попадут в одно подмножество и микрооперации на схеме не будут упорядочены по своим номерам (индексам). Тактирующие синхросигналы для микроопераций одного и того же подмножества часто совпадают, хотя на приведенной схеме они показаны раздельными.

Рис. 21. Схема формирования

Рис. 22. Схема формирования управляющих

управляющих сигналов для

сигналов

для

способа

способа кодирования полей

кодирования

совместимых полей

совместимых операций

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

 

В общем случае схема формирования управляющих сигналов для данного способа проще, чем для максимального кодирования.

Кодирование совместимых полей микроопераций. При этом способе кодирования все множество микроопераций Y разбивается на L' подмножеств

Yj', j = 1, L' так, что на заданном множестве микрокоманд W каждая МО любого подмножества не встречается в одной микрокоманде ни с одной микрооперацией любого другого подмножества. Эти подмножества МО называют совместимыми (в отличие от подмножества совместимых МО в предыдущем способе кодирования). При таком разбиении микрооперации каждого подмножества кодируются унитарным кодом.

Операционная часть МК в этом случае делится на три поля. В первом поле указывается номер подмножества. Это поле имеет b1 = int(log2L') двоичных разрядов, а номер подмножества кодируется позиционным двоичным кодом. Второе поле имеет столько разрядов b2, сколько микроопераций содержит самое большое подмножество, т.е. и b2 = max |Yj'|, где | Yj' | – мощность подмножества Yj'. Каждый разряд этого поля соответствует одной из микроопераций всех или части подмножеств. Какую именно МО задает разряд, определяет код номера подмножества, указываемый в первом поле.

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

Данный способ в целом близок по своим характеристикам к предыдущему, однако уступает ему в случае разделения множества микроопераций на небольшое количество групп, относящихся к управлению различными узлами, и поэтому не получил широкого распространения в универсальных ЭВМ. Схема формирования управляющих сигналов для рассматриваемого способа приведена на рис. 22, где КНП – код номера подмножества, поле УнМО – поле универсальных микроопераций.

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

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

3.3. Методы кодирования полей совместимых микроопераций

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

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

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

Заданы множества микроопераций Y = {y1, y2, ..., yn} и микрокоманд W = {w1, w2, ..., wN}, различающиеся своей операционной частью. Требуется построить набор подмножеств МО У = {Y1, Y2, ..., YL} таким образом, чтобы выполнялись условия:

1)в каждое из подмножеств входят только те микрооперации, которые не встречаются вместе ни в одной из микрокоманд множества W (т.е. так называемые совместимые микрооперации);

2)каждая из микроопераций множества Y входит хотя бы в одно из

подмножеств Yj, и только в это подмножество;

3) сумма разрядов, необходимых для кодирования микроопераций каждого подмножества позиционным двоичным кодом (разрядность операционной части микрокоманды), минимальна.

Условие (2) можно записать в виде

Ujj==1LYj =Y и Yj IYi = , для i j, i, j = 1, L ,

где L – количество построенных подмножеств;

условие (3) –

jj==1L int (log2 (| Yj | + 1) min,

где | Yj | – мощность (количество микроопераций) подмножества Yj; int (x) – ближайшее большее целое к х.

В записи условия (3) аргумент логарифма представляет собой увеличенное на единицу количество микроопераций подмножества Yj. Увеличение производится для того, чтобы в каждое подмножество можно было включить и закодировать “пустую” микрооперацию, не задающую никаких действий. Если не предусмотреть этого, то будет невозможно записать микрокоманду, в которую не входит ни одна из микроопераций какоголибо одного или нескольких подмножеств.

Условием (1) вводится отношение S совместимости микроопераций, определяемое на заданном множестве микроопераций Y = {y1, y2, ..., yn} по заданному множеству микрокоманд W = {w1, w2, ..., wN}. Совместимыми называют такие микрооперации yi и yj, которые не встречаются вместе ни водной из микрокоманд заданного множества W. (В [8, 9] совместимость микроопераций понимается в противоположном смысле, как совмещаемость или одновременное выполнение микроопераций в одной микрокоманде.)

Отношение совместимости симметрично, рефлексивно и нетранзитивно. Его удобно задавать с помощью матрицы совместимости S. Матрица S представляет собой квадратную булеву матрицу порядка n (с числом строки столбцов, равным количеству различных микроопераций n),симметричную относительно главной диагонали в силу свойства симметричности отношения совместимости:

 

s11

s12

.

.

.

s1n

 

 

s21

s22

.

.

.

s2n

 

S =

 

.

.

 

 

 

.

.

 

.

.

 

 

 

.

 

 

 

 

 

 

 

 

.

.

 

 

 

.

 

 

sn1

sn2

. . . snn

 

Элементы sij матрицы S принимают значения 0 или 1, причем

0,

если yi совместима с yj ;

sij =

 

 

 

 

 

 

 

1 впротивном случае.

 

Главная диагональ матрицы S при таком определении ее элементов содержит нули в силу свойства рефлексивности отношения совместимости.

В рассматриваемой постановке решение задачи оптимального кодирования микроопераций включает следующие этапы:

-построение матрицы S совместимых микроопераций по заданным множествам микроопераций и микрокоманд;

-построение всех максимальных подмножеств совместимых МО для заданного отношения совместимости;

-выбор из построенных подмножеств набора подмножеств, удовлетворяющих условиям (2) и (3) приведенной выше постановки задачи (условие (1) обеспечивается на втором этапе построением подмножеств совместимых МО).

Следует отметить, что первый этап не является обязательным, так как в принципе задание множеств Y и W обеспечивает конструктивное задание и отношения совместимости S. Однако для формализованного решения рассматриваемой задачи кодирования (в особенности при использовании средств автоматизации проектирования) построение матрицы S целесообразно.

На первом этапе матрица совместимости строится следующим образом. Заданное множество микрокоманд W представляется в матричной форме – матрицей W микрокоманд. Строки этой матрицы соответствуют микрокомандам, а столбцы – микрооперациям. Тогда матрица W является

булевой матрицей размера N × n, а ее элементы wij определяются следующим образом :

0, еслиМО yi невходитвмикрокоманду wi ;

wij =

1 впротивном случае.

Эта матрица также строится для удобства формализации последующего процесса формирования матрицы S. Если же матрица S строится ручным способом, то можно воспользоваться любой формой

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

хотя бы в одной из строк wk = {wk1, wk2,... wkn} матрицы W элементы wki и wkj будет равен нулю. Следовательно, можно записать соотношение

sij = kk ==1N wki wkj.

Пользуясь этим соотношением, элементы sij матрицы S, начиная с элемента s12, определяются поочередным просмотром всех строк матрицы W для каждой пары микроопераций. При этом благодаря симметричности матрицы S относительно главной диагонали можно определить только элементы, лежащие правее этой диагонали, т.е. для которых j > i, а затем

заполнить левую часть матрицы, учитывая, что sij = sji.

Проиллюстрируем выполнение этого этапа на примере. Пусть заданы

множества Y = {y1, y2, ..., y10} из 10 микроопераций и W = {w1, w2, ..., w8} из восьми микрокоманд, в операционной части которых заданы следующие

микрооперации:

w1 = {y1, y2, y6};

w4 = {y3, y4};

w7 = {y5, y9, y10};

w2 = {y1, y3, y9};

w5 = {y4, y5, y9}; w8 = {y6, y7}.

w3 = {y2, y8, y10};

w6 = { y5 };

 

Соответствующая матрица W будет выглядеть следующим образом:

 

1

1

0

0

0

1

0

0

0

0

 

 

1

0

1

0

0

0

0

0

1

0

 

 

0

1

0

0

0

0

0

1

0

1

 

W =

0 0 1

1

0 0 0 0 0 0

.

 

0

0

0

1

1

0

0

0

1

0

 

 

0

0

0

0

1

0

0

0

0

0

 

 

0

0

0

0

1

0

0

0

1

1

 

 

0

0

0

0

0

1

1

0

0

0

 

Тогда, используя выведенное для sij соотношение, определим, что s12 = 1, так как уже в первой строке матрицы W элементы w11 и w12 равны единице и, следовательно, в первой микрокоманде w1 МО y1 и y2 встречаются вместе, а значит, они несовместимы. Аналогично и s13 = 1, так как во второй строке

матрицы W w21 = 1, т.е. во вторую микрокоманду входят микрооперации y1 и

y3.

Следующий элемент s14 матрицы S будет равен нулю, так как ни в одной из строк матрицы W не содержится единицы одновременно в первом и четвертом столбцах.

Определив каждый из элементов, можно записать и соответствующий ему симметричный относительно главной диагонали элемент. Поэтому s21 =

1, s31 = 1, а s41 = 0.

Окончательно матрица S для данного случая будет выглядеть так:

 

0

1

1

0

0

1

0

0

1

0

 

 

1

0

0

0

0

1

0

1

0

1

 

 

1

0

0

1

0

0

0

0

1

0

 

 

0

0

1

0

1

0

0

0

1

0

 

S =

0 0 0 1

0 0 0 0 1 1

.

 

1

1

0

0

0

0

1

0

0

0

 

 

0

0

0

0

0

1

0

0

0

0

 

 

0

1

0

0

0

0

0

0

0

1

 

 

1

0

1

1

1

0

0

0

0

1

 

 

0

1

0

0

1

0

0

1

1

0

 

Второй этап решения задачи оптимального кодирования, в ходе которого осуществляется построения максимальных подмножеств совместимых МО, выполняется с использованием специальных алгоритмов. Как правило, эти алгоритмы предполагают перебор различных вариантов объединения совместимых МО подмножества. Один из таких алгоритмов рассматривается в [9].

Менее громоздким является алгоритм последовательного построения максимальных подмножеств на базе каждой МО. Алгоритм выполняется за n

шагов, в которых последовательно для каждой из микроопераций yi, i = 1, n , строится множество Уi = {Yi1, Yi2, ..., YiR} всех максимальных подмножеств Yir совместимых микроопераций, включающих МО yi.

На i-м шаге алгоритма анализируется i-я строка si матрицы S и строится множество Yc = { yc1, yc2,... ycm} микроопераций, совместимых с МО yi. В это множество войдут все те МО, для которых соответствующие элементы sij матрицы S равны нулю (исключая саму МО yi).

Если множество Yc пусто, то МО yi несовместима ни с какой из микроопераций, а единственное максимальное подмножество, в которое она входит, состоит только из одной этой микрооперации yi.

Если множество Yc содержит только один элемент yc1, то микрооперации yi и yc1 образуют единое максимальное подмножество совместимых МО, включающее МО yi.

Если множество Yc содержит более одного элемента, то на основании анализа соответствующих строк матрицы совместимости S, для каждой МО ycj множества Yc строится список (подмножество) Uj = {yj1, yj2, ..., yjq} микроопераций множества Yc, несовместимых с МО ycj.

Тогда каждый элемент Yir множества Yi будет включать микрооперацию yi; микрооперации ycj множества Yc, для которых множества Uj пусты (т.е. те, для которых нет несовместимых микроопераций среди МО, совместимых с yi); группу микроопераций множества Yc, совместимых между собой, подмножества Uj для которых не пусты, соответствующую j-му терму функции, получаемой после упрощения выражения,

Vi = ( yc1 y11 y12 y1q ) ( yc2 y21 y22 y2q ) …( ycm ym1 ym2 ymq ),

каждая скобка которого описывает условие того, что в строящееся подмножество совместимых микроопераций не входят либо микрооперация

ycj, либо несовместимые с ней микрооперации подмножества Uj.

После раскрытия скобок и упрощения последнего выражения каждый

терм tr будет иметь вид tr = yr1 yr 2 yrF и определять одно из подмножеств Y'ir совместимых между собой микроопераций множества Yc, которые совместимы и с МО yi. Причем для получения подмножества Y'ir необходимо удалить (вычесть) из множества Yc элементы, входящие в терм tr, т.е. Y'ir = Yc\Uff ==1F yrf . Тогда, присоединив к каждому такому подмножеству Y'ir, r =

1, R микрооперацию yi (те микрооперации yi множества Yc, для которых подмножества Uj пусты, уже вошли в подмножество Y'ir), можно получить все максимальные подмножества Yir совместимых МО, содержащих МО yi, т.е. подмножества, являющиеся элементами искомого множества Уi.

После выполнения n шагов алгоритма будут получены n множеств Уi, i = 1, n . Тогда окончательно множество У = {Y1m, Y2m, ..., YGm} всех

максимальных подмножеств Ygm совместимых микроопераций заданного множества микроопераций Y для заданной матрицы совместимости S будет

объединением множеств Yi, т.е. У = Uii==1n Уi .

Проиллюстрируем один шаг описанного алгоритма на примере построения множества всех максимальных подмножеств совместимых микроопераций, содержащих МО y1, для матрицы совместимости S, приведенной на с.59.

Множество Yc микроопераций, совместимых с МО y1, есть Yc = {y4, y5, y7, y8, y10}, что определяется по первой строке S1 матрицы S, в которой

элементы s14 = s15 = s17 = s18 = s10 = 0.

Анализируя строки S4, S5, S7, S8, S10 матрицы S, можно найти для каждой из микроопераций ycj множества Yc подмножества Uj несовместимых

МО из числа МО, входящих в множество Yc:

 

yc1 = y4, U1 = {y5};

yc2 = y5, U2 = {y4, y10};

yc3 = y7, U3 = ;

yc4 = y8, U4 = {y10};

yc5 = y10, U5 = {y5, y8}.

Тогда в любое максимальное подмножество совместимых МО, содержащее y1, войдут микрооперации y1 и y7 (так как соответствующее y7 подмножество U3 пусто) и группа микроопераций, определяемых одним из термов, получаемым после упрощения выражения

V1 = ( y4 y5 ) ( y5 y4 y10 ) ( y8 y10 ) ( y10 y5 y8 ).

В результате несложных преобразований получим

V1 = y5 y8 y5 y10 y4 y10 .

Правая часть этого выражения содержит три терма t1 = y5 y8 , t2 = y5 y10 и t3 = y4 y10 , которые определяют три подмножества:

Y'11 = Yc \ { y5, y8} = { y4, y7, y10};

Y'12 = Yc \ { y5, y10} = { y4, y7, y8};

Y'13 = Yc \ { y4, y10} = { y5, y7, y8}.

Присоединив к полученным подмножествам микрооперацию y1, получим множество У1 = {Y11, Y12, Y13} всех максимальных подмножеств совместимых микроопераций, включающих МО y1, где

Y11 = {y1, y4, y7, y10},

Y12 = {y1, y4, y7, y8},

Y13 = {y1, y5, y7, y8}.

Выполнив аналогичные шаги алгоритма для остальных микроопераций и объединив множества Уi, i = 1, 10, получим множество У = {Y1m, Y2m, …,

Y14m} из четырнадцати максимальных подмножеств совместимых МО: Y1m =

{y1, y4, y7, y8}, Y2m = {y1, y4, y7, y10}, Y3m = {y1, y5, y7, y8}, Y4m = {y2, y3, y5, y7}, Y5m = {y2, y4, y7}, Y6m = {y2, y7, y6}, Y7m = {y3, y5, y6, y8}, Y8m = {y3, y5, y7, y8}, Y9m = {y3, y6, y10}, Y10m = {y3, y7, y10}, Y11m = {y4, y6, y8}, Y12m = {y4, y6, y10}, Y13m = {y6, y8, y9}, Y14m = {y7, y8, y9}.

Осуществляемая на третьем этапе процедура выбора совокупности подмножеств совместимых МО, обеспечивающих минимальное суммарное количество разрядов, необходимое для кодирования входящих в них МО, эквивалентна задаче о поиске покрытия минимальной цены и может быть выполнена с помощью метода Петрика или алгоритма извлечения Рота [10].

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

Можно показать, что из-за необходимости добавления пустой МО к каждому из подмножеств (см. с.55) в покрытии следует использовать только

те максимальные подмножества Ygm, мощность которых |Ygm| 2k (k – целое), и те немаксимальные подмножества, мощность которых равна 2k – 1 [13]. Немаксимальные подмножества легко получить, исключая по одной или более МО из максимальных подмножеств.

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

метод прямого включения.

В этом методе второй и третий этапы задачи кодирования совмещаются и находится такая совокупность Уa = {Y1, Y2 ,..., YL} подмножеств совместимых микроопераций, которая отвечает первым двум условиям постановки задачи (с.55), т.е.

Ujj==1LYj =Y и Yj IYi = , для i j, i, j = 1, L ,

где Y – заданное множество микроопераций.

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

Процесс распределения микроопераций множества Y = {y1, y2, ..., yn} по подмножествам Y1, Y2, ... осуществляется за n шагов. На начальном (первом) шаге вводится подмножество Y1, состоящее только из МО y1. На i-м шаге для микрооперации yi отыскивается подмножество Yj, в которое можно включить эту микрооперацию.

Такое включение возможно, если МО yi совместима со всеми МО, вошедшими в Yj после выполнения предшествующих шагов. Если среди подмножеств Y1, Y2, ..., Yk, образованных в предшествующих i – 1 шагах, нет ни одного такого подмножества, то вводится новое подмножество Yk+1 и в него включается MO yi.

Процесс распределения микроопераций удобно описывать матрицей включения R = | rij |, строка Rj которой соответствует подмножеству Yj совместимых МО, а i-й столбец – микрооперации yi. Элемент rij матрицы R равен единице, если МО yi входит в подмножество Yj, и нулю в противном случае. Тогда условие включения микрооперации yi в подмножество Yj можно записать в виде kk==1n rjk & sik =0 , где sik – элемент заданной матрицы

совместимости S. Иначе говоря, микрооперация yi включается в строку Rj матрицы R, если эта строка и строка и строка Si матрицы S не содержат единиц в одноименных столбцах (что является условием совместимости МО yi со всеми МО, входящими в строку Rj).

Для иллюстрации метода прямого включения рассмотрим распределение микроопераций множества Y = {y1, y2, ..., y10}, отношение совместимости между которыми задано матрицей совместимости S, приведенной на стр. 58.

Ш а г 1. Матрица R будет состоять из одной строки, соответствующей подмножеству Y1 = y1:

R(1) = 1 0 0 0 0 0 0 0 0 0 .

Ш а г 2. Поскольку r11 & s21 = 1 (т.е. МО y1 и y2 несовместимы), назначается новое подмножество Y2 = y2, а матрица R будет выглядеть

следующим образом:

R(2)

=

1

0

0

0

0

0

0

0

0

0

.

0

1

0

0

0

0

0

0

0

0

Ш а г 3. Так

как

r11

& s31

=

1, а

kk==110 r2k & s3k =0 (т.е. МО y3

несовместима с МО y1, но совместима с МО y2), то МО y3 включается в подмножество Y2, и матрица R приобретает вид:

R(3) =

1

0

0

0

0

0

0

0

0

0

.

0

1

1

0

0

0

0

0

0

0

Ш а г 4. Так как kk==101 r1k & s4k =0 то МО y4 включается в подмножество

Y1 :

R(4) =

1

0

0

1

0

0

0

0

0

0

.

0

1

1

0

0

0

0

0

0

0

Выполнив последующие шаги 5...10, окончательно получим:

 

1

0

0

1

0

0

1

1

0

0

R(10) =

0

1

1

0

1

0

0

0

0

0

0

0

0

0

0

1

0

0

1

0

 

0

0

0

0

0

0

0

0

0

1

чему соответствуют подмножества

Y1 = {y1, y4, y7, y8}; Y2 = {y2, y3, y5}; Y3 = {y6, y9}; Y4 = {y10}.

Тогда для кодирования операционной части МК (с учетом пустых микроопераций) потребуется 3 + 2 + 2 + 1 = 8 двоичных разрядов. Коды микроопераций могут быть выбраны произвольно, например, следующим

Соседние файлы в папке BOOKS