Преобразование адресов в композиционном микропрограммном устройстве управления с разделением

РАДЮЕЛЕКТРОШКА ТА ТЕЛЕКОМУШКАЦН

РАДИОЕЛЕКТРОНИКА И ТЕЛЕКОММУНИКАЦИИ

ИАБЮ ЕЬЕСТИОШСБ А^ ТЕЬЕСОММиШСАТЮКБ

УДК 681. 324

А. А. Баркалов, Р. В. Мальчева, Баракат Халед

ПРЕОБРАЗОВАНИЕ АДРЕСОВ В КОМПОЗИЦИОННОМ МИКРОПРОГРАММНОМ УСТРОЙСТВЕ УПРАВЛЕНИЯ С РАЗДЕЛЕНИЕМ КОДОВ

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

ВВЕДЕНИЕ

Одним из методов реализации устройства управления (УУ) любой цифровой системы является использование модели композиционного микропрограммного устройства (КМУУ) [1, 2]. Подобные устройства идеально подходят при реализации цифровых систем в виде «систем на кристалле» [3, 4], где произвольная логика реализуется на БРОА или СРЬБ, а регулярная логика - на встроенных блоках памяти. Стремление к увеличению количества реализуемых системой функций приводит к необходимости уменьшения аппаратурных затрат в отдельных блоках системы, включая и УУ. Одним из методов решения этой задачи является уменьшение числа термов в системе функций возбуждения [5, 6], что возможно, например, при исполь-

© Баркалов А. А., Мальчева Р. В., Баракат Халед, 2006

зовании в КМУУ метода разделения кодов [2]. Этот метод позволяет использовать наличие псевдоэквивалентных операторных линейных цепей (ОЛЦ) в исходной граф-схеме алгоритма (ГСА). Однако разделение кодов целесообразно только при сохранении минимальной разрядности адреса микрокоманды. В противном случае требуемая емкость управляющей памяти КМУУ резко увеличивается по сравнению с известными методами синтеза [2, 4]. В настоящей работе предлагается метод синтеза КМУУ с разделением кодов, позволяющий сохранить минимальную емкость управляющей памяти при произвольных характеристиках исходной ГСА.

1 ПОСТАНОВКА ЗАДАЧИ

Пусть исходная ГСА Г имеет начальную вершину Ъо, конечную вершину ЪЕ, операторные вершины из множества В1 и условные вершины из множества В2. В вершинах Ъу е В1 записываются микрокоманды У(Ъу) с У, где У = {у 1, ..., уN - множество микроопераций. В вершинах Ъу е В2 записаны элементы множества логичес-

ких условий X ={^1, ..., x¿}. Вершины ГСА Г связаны дугами <bq, образующими множество дуг E. Введем ряд определений [1, 2], необходимых для дальнейшего изложения материала.

Определение 1. Операторной линейной цепью ГСА Г называется конечная последовательность операторных вершин ag = (bgl,..., bgF ), такая, что для любой пары соседних компонент вектора ag существует дуга Ь9+1> е E (г =1, ..., Fg - 1).

Определение 2. Входом ОЛЦ ag называется вершина bq е Dg, где Dg с Bl - множество операторных вершин, входящих в ОЛЦ ag, если существует дуга <bt, bq> е E, такая, что bt = Ьо или bt е B2 или ^ £ Dg.

Определение 3. Выходом ОЛЦ ag называется вершина bq е Dg, такая, что существует дуга <bq, е е Е, где bt = ЬЕ или bt е В2 или bt £ Dg.

Определение 4. Операторные линейные цепи ад и aj называются псевдоэквивалентными ОЛЦ, если их выходы связаны с входом одной и той же вершины ГСА.

Произвольная ОЛЦ ag может иметь более одного входа. Обозначим /-й вход ОЛЦ aд как 1]д. Каждая ОЛЦ имеет только один выход Од, входящий в множество О(Г) выходов ОЛЦ ГСА Г.

Пусть для ГСА Г сформировано множество ОЛЦ С = ^1, ..., aG}, удовлетворяющее условию

D n Di = 0; (j * i; j, i e {1, ..., Gj); B1 = D1 и D2 и ... и Dg; G ^ min.

При выполнении (1) каждая вершина bq е В1 входит точно в одну ОЛЦ ag е С, число которых - минимально. Пусть Fmаx - максимальное число компонент в ОЛЦ ag е С, то есть Fmax = тах^, ..., FG}. Закодируем ОЛЦ ag е С ^-разрядными кодами К^д), где К1 = ]log2G[. Закодируем компоненты ОЛЦ ag е С ^2-разрядными кодами /К(^), где К 2 = ]log2Fmax[, причем кодирование выполним таким образом, чтобы для соседних компонент Ьд , Ьд (I = 1, ..., Fg - 1) вы-

дг д г+1 У

полнялось условие:

K

gi+1 gi J

В этом случае адрес A(bq) микрокоманды Y(bq) такой, что bq е Dg, представляется в виде конкатенации

и систему функций возбуждения регистра RG

V = V

где т - внутренние переменные, кодирующие ОЛЦ ag e C и |т| = R1. Компоненты ОЛЦ ag e C кодируются внутренними переменными T и |T| = R2. Управляющая память СМ хранит микрооперации Y, сигнал управления синхронизацией yo и сигнал управления выборкой из управляющей памяти yE.

Устройство управления U1 функционирует следующим образом. По сигналу Start =1 в счетчик СТ и регистр RG заносятся нулевые коды, что соответствует адресу A(bq), где <b0, bq> e E, одновременно триггер TF устанавливается в единичное состояние и сигнал Fetch разрешает выборку микрокоманд из СМ. Очередная микрокоманда Y(bq) считывается из СМ. Если bq * Og (g = 1, G), то одновременно с микрооперациями Y формируется сигнал y0. При yo = 1 по сигналу Clock к содержимому СТ прибавляется единица, что соответствует адресации микрокоманд в пределах одной ОЛЦ, содержимое RG при этом не меняется. Если bq = Og (g = 1, G), то сигнал yo не формируется, и по сигналу Clock в RG заносится код очередной ОЛЦ, определяемый функциями Y, а в СТ заносится код компоненты, определяемый функциями Ф. При достижении адреса A(bt), где <bt, Ье> e E, формируется сигнал уе, триггер TF обнуляется и выборка микрокоманд из СМ прекращается.

Такая организация КМУУ имеет ряд положительных качеств [2]:

- код ОЛЦ не зависит от адреса микрокоманды, что может быть использовано для оптимального кодирования ОЛЦ и оптимизации числа термов в схеме СС;

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

Однако при выполнении условия

R1 + R2 > R,

где К = ^М[, М = |В^, емкость управляющей памяти КМУУ и резко увеличивается по сравнению с ее минимальным размером

A(bq) = K(ag)*K(bq),

Fmin = 2r(N +2).

где * - знак конкатенации. Такое представление адреса называется принципом разделения кодов [2] и ему соответствует КМУУ и (рис. 1).

Здесь комбинационная схема СС реализует систему функций возбуждения счетчика СТ

Ф = Ф

Кроме того, оптимальное кодирование псевдоэквивалентных ОЛЦ, при котором коды ОЛЦ одного класса эквивалентности входят в один обобщенный интервал Камерного булевого пространства, не всегда возможно и зависит от характеристик исходной ГСА.

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

10

ISSN 1607-3274 «Радюелектрошка. 1нформатика. Управлшня» № 2, 2006

ства КМУУ и при выполнении (6) и невозможности оптимального кодирования псевдоэквивалентных ОЛЦ. Предлагаемый метод позволяет при выполнении определенных условий уменьшить емкость управляющей памяти по сравнению с параметром ^т;п.

2 ОСНОВНАЯ ИДЕЯ МЕТОДА

Предлагаемый метод основан на введении:

- преобразователя АТ адреса микрокоманды, выраженного как (3), в адрес А'(Ъ^) минимальной разрядности Ктт ^

- преобразователя СОТ кодов ОЛЦ ag е С в коды классов псевдоэквивалентных ОЛЦ по аналогии с преобразованием кодов состояний автомата Мура [7].

Применение этих методов приводит к КМУУ и (рис. 2).

Здесь преобразователь АТ реализует систему функций

Л = Л(т, Т),

используемых для адресации микрокоманд, а преобразователь СОТ реализует систему функций

2 = г(т),

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

Ф = Ф(2, X),

т = т(г, х).

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

разрядов. Если

Я = ]1<^[

Я0 < Я,

то емкость СМ КМУУ и уменьшается по сравнению с параметром Ут;п.

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

1. Формирование преобразованной ГСА Г.

2. Формирование множества ОЛЦ преобразованной ГСА.

3. Кодирование операторных линейных цепей.

4. Кодирование операторных вершин.

5. Адресация микрокоманд.

6. Формирование содержимого управляющей памяти.

7. Кодирование классов псевдоэквивалентных ОЛЦ.

8. Формирование таблицы переходов КМУУ.

9. Формирование таблицы преобразователя адресов.

10. Формирование таблицы преобразователя кодов.

11. Формирование систем функций Ф, Т, Л, 2.

12. Реализация схем КМУУ в заданном элементом базисе.

3 ПРИМЕР ПРИМЕНЕНИЯ

ПРЕДЛОЖЕННОГО МЕТОДА

Рассмотрим применение предложенного метода на примере ГСА Г (рис. 3).

Преобразование исходной ГСА. Преобразование сводится к введению дополнительных операторных вершин, а также к введению дополнительных сигналов в вершины исходной ГСА. Если существует дуга <Ъ0, Ъу> е Е, где Ъу е В2, то в ГСА Г вводится пустая вершина Ъ1 е е В\, и дуга <Ъ0, Ъу> заменяется дугами <Ъ0, Ъ^-> и <ЪЬ, Ъу>. Если существует дуга <Ъу, Ъе>, где Ъу е В\, то в вершину Ъу вводится сигнал уе (в нашем примере -в Ъ^). Если существует дуга <Ъу, Ъе>, где Ъу е В2, то в ГСА Г водится вершина Ъ е В1 с сигналом уе, а дуга <Ъу, ЪЕ> заменяется дугами <Ъу, Ъ£> и <Ъ^ Ъе>.

Для рассматриваемого примера структура преобразованной ГСА совпадает со структурой исходной ГСА.

Формирование множества ОЛЦ. Применение процедуры из работы [2] приводит к формированию следующего множества операторных линейных цепей С =

1

= {а},..., а8}, где а1 = <Ъ1>, /1 = 0\ = Ъ^ а2 = <Ъ2, Ъ3>,

11 /2 = Ъ2, 02 = Ъ3; а3 = <Ъ4, /3 = Ъ4, 03 = Ъ5; а4 =

12

= <Ъ 6, Ъ10> /4= Ъ 6, /4= Ъ 9, 0 4 = Ъ10; а 5 = 11

= <Ъ1Ь Ъ12>, /5 = Ъ1Ь 05 = Ъ12; а6 = <Ъ13, Ъ14>, /6 =

1

= 06 = Ъ14; а7 = <Ъ15, Ъ16>, /7 = Ъ15, 07 = Ъ1в;

а8 = <Ъ17>, /8 = 08 = Ъ17. Итак, О = 8, ^ах = 5, 0(Г1) = = {Ъ1, Ъ3, Ъ5, Ъю, Ъ12, Ъ14, Ъ16, Ъ17}. Отметим, что во все вершины Ъу е О(^) вводится сигнал у0.

Кодирование операторных линейных цепей. В рассматриваемом примере разбиение Пс множества ОЛЦ С на классы псевдоэквивалентных ОЛЦ имеет / = 4 класса, где В1 = {а^, В2 = {а2, а3, а4}, В3 = {а5, а6, а7}, В 4 = {а8}. Отметим, что в данном случае оптимальное кодирование классов [7] невозможно. В этой связи закодируем ОЛЦ ад е С кодами К(ад) разрядности Я = = ]^28[ = 3 произвольным образом: /К(а^ = 000, ..., К(а8) = 111.

Кодирование операторных вершин. В рассматриваемом примере -Ртах = 5, следовательно, Я2 = 3. Присвоим первым компонентам ОЛЦ ад е С нулевой код: К(Ъ1) = К(Ъ2) = К(Ъ4) = К(Ъ6) = К(Ъц) = К(Ъ13) = = К(Ъ15) = К(Ъ17) = 000. Тогда, согласно условию (2), имеем К(Ъ3) = К(Ъ5) = К(Ъ10) = К(Ъ12) = К(Ъ14) = = К(Ъ16) = 001, К(Ъ8) = 010, К(Ъ9) = 011, К(Ъ10) = 100.

Адресация микрокоманд. Пусть Уц с У — набор микроопераций, включающий элементы множества У, Уо и уЕ. С учетом всех преобразований в ГСА Г можно выделить Q =11 наборов микроопераций:

VI = У(&1> = У(Ь5) = {У1, У2}; У2= У(&2) = У(Ь;) = {Уо, Уз}; Уз= У(Ьз) = У(&12) = {У2, У4};

У4 = У(Ъ4) = ^ У2, У5};

У5= У(Ь6) = У(Ь1з) = {уо, У1, У2};

У6= У(Ь8) = У(Ь15) = {У2, У4};

У7= У(Ь9) = {У0, У3, У4, У5};

У8= У(Ью) = У(ъи) = {уз};

У9= У(ъи) = {Уо, Уз, У6}; У1о= У(Ъ16) = {yз, У6};

VII = У(Ъ17) = {уз, Уе}.

Итак, в рассматриваемом примере общее число операторных вершин М =17 и для их адресации необходимо К = 5 разрядов, а число наборов микрокоманд Q =11 и для их кодирования достаточно Ко = 4 разряда. Следовательно, условие (13) выполняется и емкость управляющей памяти в КМУУ и будет меньше параметра Утп в два раза.

Условимся рассматривать наборы Уц с У и {уо, Уе} как микрокоманды и назовем их двоичные коды А(УЦ) адресами микрокоманд. В рассматриваемом примере Л = {Х1, ..., Х4}, пусть А(У1) = 0000, ..., А(У 10) = = 1о1о. Отметим, что в данном случае адресация микрокоманд проводится производным образом.

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

Таблица 1 - Фрагмент содержимого управляющей памяти КМУУ и2

ад е В, содержат сигнал уе. Обобщенная формула имеет вид:

Адрес УЦ У0 У1 У2 У3 У4 У5 У6 Уе Примечание

0000 У1 0 1 1 0 0 0 0 0 У

0001 У2 1 0 0 1 0 0 0 0 У

0010 У3 0 0 1 0 1 0 0 0 УЪ); У(Ъ12>

Здесь ^(Г^ означает, что КМУУ и2 синтезируется по ГСА Г1, в столбце «Примечание» записаны микрокоманды исходной ГСА, соответствующие микрокоманде Уц (ц = 1, ..., Q).

Кодирование классов псевдоэквивалентных ОЛЦ. В рассматриваемом примере Пс = {В1, ..., В4}, I = 4, следовательно, для кодирования классов В, е Пс достаточно К3 = ]^2Д = 2 переменных и 2 = {г^ ¿2}. Пусть К(В1) = 00, ..., К(В4) = 11.

Формирование таблицы переходов КМУУ. Эта таблица отображает закон формирования функций (10)—(11). Для формирования таблицы переходов построим систему обобщенных формул перехода для классов В, е П'с, где класс В, £ П'с, если выходы ОЛЦ

В Хг( Рд ) Рд,

где X, (1д) — конъюнкция логических условий, определяющая переход из выхода любой ОЛЦ а- е В, во вход 1д (В, е П'с).

В рассматриваемом примере П'с = {В1, В2, В3} и система (14) имеет вид:

П Т1 - Л__Л.

В1 —^ 2 V X1 13 V X1Х"ь14;

С Л - Л__Л

В2 — Х215 V Х2Х316 V Х2Х317

П Л - г2

В2 — Х418 VХ414.

Таблица переходов КМУУ и2 имеет столбцы: В,, К(В,), 1д, А( 1д), Хь Фь Н, где адрес входа 1д представляется в виде (3), Тн — набор функций возбуждения, формирующий в ИО код К (ад), Фн — набор функций возбуждения, формирующий в СТ код компоненты К(Ъ-), соответствующий входу !д, Н = 1, Н — номер перехода. Очевидно, параметр Н равен числу дизъюнктивных членов в системе (14).

Фрагмент таблицы переходов КМУУ ^(Г^ представлен в табл. 2.

Таблица 2 - Фрагмент таблицы переходов КМУУ и2

В, К(В,) 1'д А( Iд > X (4) Тн Фн Н

12 001000 Х1 — 1

В\ 00 13 010000 Х1 Х2 — 2

14 011000 X1 Х2 ^2 П3 — 3

Формирование таблицы преобразователя адреса.

Эта таблица задает закон формирования системы (8) и включает столбцы: Ът, А(Ът), Уц, А(УЦ), Хт, т, где Хт — набор переменных 'Кг е Л, принимающих единичное значение в адресе микрокоманды Уц, соответствующей операторной вершине Ът е В1; т — номер строки таблицы (т = 1, ..., М).

Для рассматриваемого примера число строк М = 17, фрагмент таблицы преобразователя адресов КМУУ и2(Г1) приведен в табл. 3.

Таблица 3 - Фрагмент таблицы преобразователя адресов КМУУ и2

Ът А(Ът) УЦ А(УЧ) к т

Ъ\ 000000 У1 0000 — 1

Ъ2 001000 У2 0001 Х4 2

Ъ3 001001 У3 0010 3

Ъ\ 010000 У4 0011 ц х4 4

12

1607-3274 «Радюелектрошка. 1нформатика. Управлшня» № 2, 2006

Формирование таблицы преобразователя кодов.

Эта таблица задает систему (9) и включает столбцы: ад, К(ад), В,, К(В,), 2д, д, где 2д - набор переменных гг е 2, принимающих единичное значение в коде К(В), где В, е П'С. В случае КМУУ и2(Г1) эта таблица включает О0 = 7 (табл. 4).

Таблица 4 - Таблица преобразователя кодов КМУУ ^

ag K(ag) Bi K(Bi) Zg G

«1 000 B1 00 - 1

a2 001 B2 01 z2 2

a3 010 B2 01 z2 3

a4 011 B2 01 z2 4

a5 100 B3 10 z1 5

a6 101 B3 10 z1 6

a7 110 B3 10 z1 7

позволяет уменьшить аппаратурные затраты в схеме СС по сравнению с произвольным кодированием ОЛЦ. При выполнении условия (6) уменьшение аппаратурных затрат возможно за счет применения преобразователя кодов ОЛЦ в коды классов псевдоэквивалентных ОЛЦ. Отметим, что применение преобразователя адреса приводит к увеличению времени цикла КМУУ и2 по сравнению с соответствующим параметром КМУУ и1. Однако, такой подход дает потенциальную возможность уменьшения емкости управляющей памяти КМУУ и2 по сравнению со всеми известными методами реализации КМУУ [2]. Исследования авторов показали, что при выполнении условия (6), невозможности оптимального кодирования ОЛЦ и уменьшении емкости управляющей памяти предлагаемый метод позволяет на 14-17 % уменьшить аппаратурные затраты по сравнению с известными методами реализации КМУУ.

Формирование систем функций КМУУ. Функции Ф и Y формируются по таблице переходов КМУУ, дизъюнктивные нормальные формы функций (10)—(11) включают термы, соответствующие строкам таблицы переходов. Например, из табл. 2 имеем D3 = v

v(ZiZ2XiX2). Функции Л формируются по таблице преобразователя адресов. Например, из табл. 3 имеем

^4 = TiТ2Т3Г1T2T3 VT1T2Т3Г1Г2Г3. Функции (9) реализуются по таблице преобразователя кодов. Например, из табл. 4 имеем zi= T1T2T3 vTiT2T3 vt^T3 = TiT2 v TiT3. Функции Y и {yo, Уе) формируются по таблице содержимого управляющей памяти. Отметим, что наиболее естественным способом реализации схем СМ и СОТ является использование ПЗУ или других блоков памяти.

Реализация схемы КМУУ в заданном элементном базисе. Методы реализации схем в базисе CPLD, FPGA и PROM достаточно полно рассмотрены в литературе [4, 5, 6, 8]. Таким образом, для реализации схем Y, Л, Ф, Y, Z могут быть использованы стандартные методы, что выходит за рамки данной работы.

ЗАКЛЮЧЕНИЕ

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

ПЕРЕЧЕНЬ ССЫЛОК

1. Баркалов А. А., Палагин А, В, Синтез микропрограммных устройств управления - Киев: ИК НАН Украины, 1997. - 136 с.

2. Баркалов А. А. Синтез устройств управления на программируемых логических устройствах. - Донецк: Дон-НТУ, 2002. - 262 с.

3. Грушвицкий Р. И., Мурсаев А. X., Угрюмов Е. П. Проектирование систем на микросхемах программируемой логики. - Петербург: БХВ. - 2002. - 636 с.

4. Luba T. Synteza ukladow logicznych. - Warszawa: WKL, 2001. - 238 s.

5. Salcic Z. VHDL and FPLDs in Digital systems Design, Prototyping and Customization. - Kluwer Academic Publishers, 1998. - 412 p.

6. Sasao T. Switching theory for logic synthesis. - Kluwer Academic Publishers, 1999. - 355 p.

7. Баркалов А. А. Принципы оптимизации логической схемы микропрограммного автомата Мура. // Кибернетика и системный анализ. - 1998. - № 1. - C. 65-72.

8. Соловьев В. В. Проектирование цифровых схем на основе программируемых логических интегральных схем. -М.: Горячая линия-ТЕЛЕКОМ, 2001. - 636 с.

Надшшла 7.07.06 Шсля доробки 7.08.06

Запропоновано метод оптим1зацИ композицшного мт-ропрограмного пристрою керування з роздiленням коdie. Метод заснований на введент перетворювачiв адреси мк рокоманди та кодiв операторних лтшних ланцюгiв до схе-ми пристрою керування. Метод дозволяв зменшити ем-тстъ керуючоЧ пам'ятi. Розглянуто приклад застосу-вання запропонованого методу.

The method of compositional microprogram control unit with codes sharing optimization is proposed. Method is based on adding of the converters of microinstruction address and operator linear chains' codes in the circuit of the control unit. The method allows reducing the capacity of control memory. The example of application of the offered method is given.