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

КОМПЬЮТЕРНАЯ ИНЖЕНЕРИЯ И ТЕХНИЧЕСКАЯ ДИАГНОСТИКА

УДК681.324

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

БАРКАЛОВ А.А., МАЛЬЧЕВА Р.В.,

КРАСИЧКОВ А.А., ХАЛЕД БАРАКАТ____

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

1. Постановка задачи и цели исследования

Устройство управления (УУ) любой цифровой системы может быть реализовано в виде композиционного микропрограммного устройства управления (КМУУ) [1,2]. В настоящее время для реализации схем устройств управления широко используются программируемые логические устройства типа CPLD и FPGA [3,4]. При этом традиционно актуальной является задача оптимизации аппаратных затрат в схеме УУ [4,5].

Цель исследования - разработка методов минимизации емкости управляющей памяти КМУУ. Для достижения этой цели нужно решить такую задачу, как преобразование адресов микрокоманд и оптимальное кодирование микрокоманд для КМУУ с разделением кодов. В случае применения CPLD или FPGA эту задачу можно решить путем уменьшения числа термов в системе функций, реализуемых УУ [6]. Для решения данной задачи в случае КМУУ используется метод разделения кодов [2]. Однако он применим только при выполнении определенных условий, нарушение которых ведет к резкому увеличению емкости управляющей памяти КМУУ [2]. В настоящей работе предлагается метод синтеза КМУУ с разделением кодов, позволяющий сохранить минимальную емкость управляющей памяти при произвольных характеристиках реализуемого алгоритма управления.

2. Основные определения и общая постановка задачи

Пусть алгоритм управления цифровой системы представлен в виде граф-схемы алгоритма (ГСА) Г [2] с начальной вершиной b0, конечной вершиной bg, операционными вершинами из множества Bi и условными вершинами из множества B2. Вершины ГСА Г образуют множество B = Bi u B2 и (b0,bE} , связанное дугами < bt,bq >, образующими множество дуг E . Введем ряд определений, используя результаты работы [1].

Определение 1. Операторной линейной цепью (ОЛЦ) ГСА г называется конечная последовательность операторных вершин «g =< bgi,...,bgFg >, такая, что существует дуга <bgi,bg+i > є E для каждой пары соседних компонент вектора a(i = 1,..., Fg — 1).

Определение 2. Операторная вершина bq є Dg , где Dg мн°жеств° вершищ входящих в °ЛЦ a g,

называется входом ОЛЦ a g, если существует дуга

< bt,bq > є E , такая, что bt = bo или bt є B2 , или bt g Dg.

Определение 3. Операторная вершина bq єDg называется выходом ОЛЦ a g, если существует дуга

< bt,bq > є E , такая, что bt = bg или bt є B2 , или bt g Dg.

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

Di n Dj = 0 (i * j; i,j є (1,...,G});

1 2 G

D1 u D2 u... u Dg = B1;G ^ min.

При выполнении (1) каждая операторная вершина исходной ГСА входит ровно в одну ОЛЦ є C. Пусть каждой вершине bq eB1 соответствует двоичный код A(bq) и для компонент любой ОЛЦ ag єС выполняется условие

A

В этом случае для интерпретации ГСА Г может быть использовано КМУУ U1 (рис.1), называемое КМУУ с общей памятью [2].

46

Рис. 1. Структурная схема КМУУ с общей памятью

РИ, 2006, № 1

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

Ф = Ф

где X = {x1,...,xL} - множество логическихусловий, записанных в условных вершинах ГСА Г ; Т ={Tj,...,TR} - множество внутренних переменных, используемых для адресации микрокоманд, хранящихся в управляющей памяти СМ,

R = ]log2 М[,

здесьM = |Bx|. Система (3) формирует адрес A(Ijj) j -го входа ОЛЦ a g є C. Управляющая память СМ содержит микрооперации yn є Y, где

Y = {yi,. .,yN} - множество микроопераций, записанных в операторных вершинах ГСА Г . Сигнал у0 используется для управления счетчиком CT : если Уо = 1, то выполняется операция CT := CT +1; если Уо = 0, то содержимое CT определяется функциями (3). Сигнал уЕ используется для организации режима останова Ui.

Устройство управления Ui функционирует следующим образом. По сигналу start = 1 в CT записывается адрес первой микрокоманды интерпретируемой микропрограммы. Одновременно триггер выборки TF устанавливается в единицу и сигнал Fetch = 1 разрешает выборку микрокоманды из CM . Если в CT находится адрес A(bq) микрокоманды Y(bq) и bq ^ Og , где Og - выход ОЛЦ a,g є C , то CM формирует соответствующие микрооперации и сигнал Уо. Таким образом, происходят переходы между микрокомандами, соответствующими компонентам одной ОЛЦ. Если bq = Og, то уо = 0 и адрес перехода формируется системой (3). При достижении микрокоманды Y(bt), такой, что существует дуга <bt,bE >єE, формируется сигнал уЕ, триггерTF обнуляется и выборка микрокоманд прекращается.

Устройство управления U1 является автоматом Мура, память которого реализована на счетчике. При этом содержимое CT интерпретируется как код состояния, совпадающий с адресом выхода ОЛЦ. Если число R1 переменных, требуемых для кодирования ОЛЦ ag eC:

R1 = ]log2G[

меньше R , то аппаратурные затраты в схеме CC можно уменьшить, применив метод разделения кодов [2], приводящий к КМУУ U2 (рис.2).

Здесь адрес A(bq) микрокоманды Y(bq) определяется как конкатенация

A

где K(ag) - код ОЛЦ ag ^C разрядности R1; K(bq) - код вершины bq єDg (g = 1,...,G) разрядности

R2 = ]log2Fmax[,

здесь Fmax - максимальная длина ОЛЦ; Fmax = max(F1,..., Fg ), * - знак конкатенации. Принципы функционирования КМУУ U1 и U2 идентичны, но комбинационная схема КМУУ U 2 формирует системы функций

Ф = Ф

^ = ^

где V - множество функций возбуждения регистра RG, хранящего код K(a g), представленный переменными X , где | X | = R1 . Кроме того, условие (2) превращается в условие

K

Такой подход позволяет использовать известные методы оптимизации автомата Мура [7] для уменьшения аппаратурных затрат в схеме СС. Но при нарушении условия

R1 + R2 = R

емкость управляющей памяти КМУУ U 2 резко увеличивается по сравнению с соответствующим параметром КМУУ U1. В настоящей работе предлагается метод, позволяющий использовать метод разделения кодов при нарушении условия (11).

3. Метод решения задачи

Пусть для ГСА Г условие (11) нарушается, т.е.

R1 + R2 > R.

РИ, 2006, № 1

Введем в схему КМУУ U2 преобразователь адреса АТ и получим КМУУ U3 (рис.3).

47

Рис. 3. Структурная схема КМУУ с разделением кодов и преобразователем адреса

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

Л = Л

где Л = {^i,...,Xr} - множество переменных, кодирующих адреса микрокоманд в управляющей памяти. Функции остальных структурных элементов схемы КМУУ U3 и U2 совпадают.

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

1. Преобразование исходной ГСА.

2. Формирование удовлетворяющего (1) множества ОЛЦ С.

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

4. Кодирование операторных вершин преобразованной ГСА.

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

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

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

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

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

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

4. Пример применения предложенного метода

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

Преобразование исходной ГСА сводится к введению сигнала yg в операторные вершины bq, такие, что <bq,bg >єE. Если существует дуга

< bt,bE >є E , такая, что bt є B2 , то вводится дополнительная вершина bq, содержащая yg, и дуги

< bt,bq > , < bq,bg > заменяют исходную дугу

< bq,bE >. Если существует дуга < b0,bq >єE, такая, что bq є B2 , то вводится дополнительная пустая вершина bt, содержащая yg, и дуги < bo, bt > и < bt,bq > заменяют исходную дугу <bo,bq > .

В случае ГСА Г1 преобразование сводится к введению сигнала yE в вершину b12 .

Формирование множества ОЛЦ. Для этого используется стандартная процедура из [1]. В нашем случае

C = {аь..., а 5 },

где

а1 =<b1 >, а2 =<Ь2,Ьз,Ь4 > ,

а з =< b5,b6 >, а 4 =< b7,...bn > ,

а5 =<b12 >, l1 = 01 = bE ^ = b2, O2 = b4’ іЗ = b5 , 03 = b6, l4 = b75 l2 = b9> O4 = bU, I2 = 05 = b12 .

Анализ множества С показывает, что G = 5 ,

F1 = F5 = 1, f2 = 3 , F3 = 2 , f4 = 5 , Fmax = 5 . Следовательно, для кодирования ОЛЦ a g є C достаточно R1 = 3 разряда, для кодирования компонент ОЛЦ достаточно R2 = 3 . Для адресации микрокоманд достаточно R = 4 адресных разряда. Следовательно, условие (11) нарушается и применение модели КМУУ U3 целесообразно.

Кодирование операторных линейных цепей. Этот этап выполняется аналогично оптимальному кодированию псевдоэквивалентных состояний автомата Мура [7]. Напомним, что ОЛЦ являются эквивалентными, если их выходы связаны с входом одной и той же вершины ГСА. Для оптимизации аппаратурных затрат коды псевдоэквивалентных ОЛЦ должны входить в один обобщенный интервал R1 - мерного булева пространства [2].

В нашем случае разбиение Пс множества ОЛЦ С на классы псевдоэквивалентных ОЛЦ включает блоки B1 = {а1Ь B2 = {а2,а3,а4b B3 = {а5}. Закодируем ОЛЦ ag є C следующим образом: K(a1) = 000, K(a 2) = 001, K(a 3) = 011,

K(a 4) = 101, K(a 5) = 010 . Теперь с учетом неопределенностей классу B1 соответствует код K(B1) = *00 , классуB2 - K(B2) = **1, классуB3 - K(B3) = *10.

48

Рис. 4. Исходная граф-схема алгоритма Г1

РИ, 2006, № 1

Кодирование операторных вершин ГСА. Кодирование выполняется так, чтобы выполнялось условие

(10). Используя метод [2], получаем

K(bi) = K(b2) = K(b5) = K(b7) = K(bi2) = 000,

K(b3) = K(b6) = K(b8) = 001,

K(b4) = K(b9) = 010, K(b10) = 011, K(b11) = 100.

Адресация микрокоманд. Адреса микрокоманд могут быть присвоены в произвольном порядке, так как они формируются преобразователем АТ. При этом микрокомандам Y(bq) и Y(bt) могут быть присвоены одинаковые адреса, если содержимое вершин bq и bt совпадает. Это может привести к оптимизации емкости управляющей памяти при ее реализации на FPGA.

Пусть в нашем случае A(b1) = 0000, A(b2) = 0001,

..., A(b12) = 1011.

Формирование содержимого управляющей памяти. Содержимое CM представляется таблицей, каждая строка которой содержит адрес микрокоманды и входящие в нее микрооперации. В микрокоманду Y(bq), где bq ^ О(Г), вводится сигнал У0 , здесь О(Г) -множество выходов ОЛЦ ag єс . Например, микрокоманде Y(b1) соответствует строка с адресом 0000 и содержимым У1, микрокоманде - с адресом 0001 и содержимым у0 , Уз, У4 и т.д.

Формирование таблицы переходов КМУУ. Для формирования этой таблицы необходимо построить систему формул перехода вида

Bi ^VXi

где Xi(lg) - конъюнкция логических условий, определяющая переход из выхода любой ОЛЦ aq є Bi в операторную вершину, соответствующую входу Ig ; Пс єПс - множество классов ОЛЦ, выходы которых не связаны с конечной вершиной ГСА.

В случае ГСА Г Пс = {BbB2} и формулы (14) имеют следующий вид:

B1 ^x1l2 vx1x2l3 vx1X2l4, B2 ^x3l4 vхзі5. Таблица переходов КМУУ U3 включает столбцы: Bi, K(Bi), ig, A(Ijg), Xh, Ф^, Фь h,

где A(Ig) - адрес входа Ig ;Xh =Xi(Ig) ; Фh -набор функций возбуждения СТ, принимающих единичное значение для формирования в СТ кода компоненты ОЛЦ ag, соответствующей входу Ig ; Фь -набор функций возбуждения RG кода ОЛЦ «g єС ; h = 1,H - номер перехода. В случае ГСА Г1 таблица переходов КМУУ U3 имеет H = 5 строк (табл.1).

РИ, 2006, № 1

Таблица 1

Таблица переходов КМУУ U3

Bi K(Bi) Ig A(Ig) Xh Фь Фь h

B1 *00 i2 001000 x1 - D3 1

i3 011000 x1 x2 - D2 D3 2

I4 101000 x1 x2 - D1 D3 3

B2 **1 I4 101010 x3 D5 D1 D3 4

i5 010000 x3 - D2 5

Как видно из табл. 1, регистр RG и счетчик CT имеют информационные входы D-типа: Ф = {D1,D2,D3 }, Ф = {d4,d5,d6 } .

Формирование таблицы преобразователя адреса. Эта таблица отображает систему функций (13) и имеет столбцы: bq, K(ag), K(bq), A(bq), Xh, h. Здесь Xh - набор адресных разрядов, равных единице для h-й строки таблицы (h = 1,H1). Для ГСА Г1 таблица АТ имеет H1 = 12 строк и H1 = |B^ . Фрагмент таблицы АТ приведен в табл. 2.

Таблица 2

bq K(ag) K(bq) A(bq) Xh h

b1 000 000 0000 - 1

b2 001 000 0001 X4 2

b3 001 001 0010 ^3 3

b4 001 010 0011 %3 %4 4

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

Формирование систем функций ф , ^ , X . Функции ф и ^ формируются по таблице переходов КМУУ. Например, D1 = Т213 x1 x2 v 13 x3, что соответствует третьей и четвертой строкам табл.1. Функции X r єХ формируются по таблице АТ. Например, из табл.2 имеем

Д3 =Т112 X3T1T2T3 VT112 X3T1T2T3 = І112 т3T1T2, что соответствует третьей и четвертой строкам табл.2.

Реализация схемы КМУУ в заданном элементном базисе. Схема СС реализуется на FPGA или CPLD по системам (8)-(9), схема преобразователя адресов АТ реализуется на FPGA или CPLD по системе (13), управляющая память СМ, как правило, реализуется с использованием памяти, входящей в состав кристаллов с FPGA и CPLD [4,5]. Вопросы реализации подобных схем достаточно полно рассмотрены в литературе [4,8] и выходят за рамки данной статьи.

5. Заключение и результаты исследований

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

49

композиционных микропрограммных устройств управления при любом сочетании разрядности кодов операторных линейных цепей, их компонент и минимальной разрядности адреса микрокоманды. Научная новизна предлагаемого метода заключается в том, что сохраняется возможность оптимального кодирования псевдоэквивалентных ОЛЦ, что позволяет уменьшать аппаратурные затраты в схеме, формирующей коды ОЛЦ и их компонент. Практическое значение метода заключается в том, что применение преобразователя адресов позволяет уменьшить емкость управляющей памяти из-за произвольной адресации по сравнению с известными методами реализации устройств-аналогов. К недостаткам предложенного метода относится увеличение времени цикла КМУУ за счет введения схемы АТ. Исследования авторов показали, что при выполнении условия (12), оптимальном кодировании операторных линейных цепей и уменьшении емкости управляющей памяти предлагаемый метод позволяет на 12-16% уменьшить аппаратурные затраты по сравнению с КМУУ с общей памятью. Применение метода является перспективным и для КМУУ с элементарными ОЛЦ.

Литература: 1. Баркалов А.А., Палагин А.В. Синтез микропрограммных устройств управления. К.: ИК НАН Украины, 1997. 135 с. 2. Баркалов А.А. Синтез устройств управления на программируемых логических устройствах. Донецк: ДонНТУ, 2002. 262 с. З.Грушвицкий Р.И., Мурсаев А.Х., Угрюмов Е.П. Проектирование систем с использованием микросхем программируемой логики. Петербург: БХВ, 2002. 4. Luba T. Synteza ukladow logicznych.

УДК 519.714.5

ON DECOMPOSITION OF PETRI NET BY MEANS OF COLORING

WEGRZYN AGNIESZKA____________________________

In the paper a method of decomposition of hierarchical Petri nets is presented. Such approach is based on P-invariants and testing of dependence between deadlocks and traps. The presented decomposition method can be used for e.g. generation of Finite State Machine (FSM).

1. Introduction

Hierarchical Petri net is very effective tool for modeling of logic controllers. The model is formally verified on the base of well-known Petri net theory. There are a lot of methods of analysis of Petri nets, but majority ofmethods answer only a question, if Petri net have defect or not. These methods have rather small computational complexity, but in some case it is necessary to show places of defect. The presented below method belongs to more precise procedures, although its complexity is exponential.

The proposed method is based on testing dependencies between deadlocks and traps that occur in Petri nets.

Deadlocks and traps of a Petri nets correspond to the decisions of certain logical equations, which can be represented in conjunctive normal form. Deadlocks and 50

Warszawa: WSIZ, 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. 316 p. 7. Баркалов А.А. Принципы оптимизации логической схемы микропрограммного автоматa Мура. / Кибернетика и системный анализ. 1998, №1. С. 65-72. 8. Соловьев В.В. Проектирование цифровых схем на основе программируемых логических интегральных схем. М.: Горячая линия-ТЕЛЕКОМ, 2001. 636 с.

Поступила в редколлегию 06.12.2005

Рецензент: д-р техн. наук, проф. Кривуля Г.Ф.

Баркалов Александр Александрович, д-р техн. наук, проф. каф. ЭВМ ДонНТУ, проф. Университета Зеленогурского (Польша). Научные интересы: цифровые устройства управления. Хобби: научная работа, спорт. Адрес: Украина, 83122, Донецк, ул. Артема, 204А, кв .105, тел. (+3 8062)301 -07-35.

Мальчева Раиса Викторовна, канд. техн. наук, доцент каф. ЭВМ ДонНТУ. Научные интересы: компьютерная графика. Хобби: научная работа, туризм. Адрес: Украина, 83000, Донецк, ул. Артема, 58, к.36, тел. (+38062)301-07-35.

Красичков Алексей Александрович, канд. техн. наук, доцент каф. ЭВМ ДонНТУ. Научные интересы: цифровые устройства управления на ПЛУ. Хобби: научная работа, спорт, музыка. Адрес: Украина, 83005, Донецк, ул. Куприна, 62, кв.33, тел. (+3 8062)301 -07-23.

Халед Баракат, аспирант каф ЭВМ ДонНТУ. Научные интересы: цифровые устройства управления на ПЛУ. Хобби: научная работа. Адрес: Украина, 83000, Донецк, ул. Артема, 58, к.36.

traps can be represented by a special conjunctive form -Horn formulae [4].

In the following section theoretical basis related to Petri nets, especially deadlocks and traps, is presented. In section 3, method of computation of all deadlocks and traps in Petri net is described. In this section, the method of decreasing time consumption of proposed algorithm is presented too. In the next section, an example of using proposed method is presented.

2. Definitions, theoretical basis

In this section definition and the theoretical basis of Petri nets and theirs properties is presented.

2.1. Petri net

Petri net is a graphical and mathematical modeling tool describing system characterized as being concurrent, distributed, and parallel. As a graphical tool, Petri nets can be used for simulation of logic controllers. As a mathematical tool, Petri nets can be used for analysis and synthesis of concurrent controllers [5,11].

A Petri net [10,11] is a quadruple PN = (P, T, F, M0) where: P - is a set of places; T - is a set of transitions; M0 - initial marking; P n T = 0',

F c (P x T) u (T x P).

РИ, 2006, № 1