КОМПЬЮТЕРНАЯ ИНЖЕНЕРИЯ И ТЕХНИЧЕСКАЯ ДИАГНОСТИКА
УДК681.324
ОПТИМИЗАЦИЯ КОМПОЗИЦИОННОГО МИКРОПРОГРАММНОГО УСТРОЙСТВА УПРАВЛЕНИЯ С ЭЛЕМЕНТАРНЫМИ ОПЕРАТОРНЫМИ ЛИНЕЙНЫМИ ЦЕПЯМИ
БАРКАЛОВ А.А., КРАСИЧКОВ А.А.,
ХАЛЕД БАРАКАТ_____________________
Предлагается использовать преобразование адреса микроопераций в схеме КМПК. Рассматриваются применения преобразователя адреса. Приводится пример синтеза схемы КМПК с преобразователем адреса. Проведенные исследования показали, что метод уменьшает аппаратурные затраты до 18%.
1. Введение
Модель композиционного микропрограммного устройства управления (КМУУ) может быть использована при реализации устройств управления (УУ) цифровых систем [1,2]. Структурно КМУУ состоит из схемы адресации и управляющей памяти, хранящей набор микрокоманд УУ. Такая модель достаточно просто реализуется в современных “системах на кристалле” [3,4], где логика адресации реализуется на FPGA или CPLD, а управляющая память - на блоках встроенной памяти типа PROM или RAM. Одним из путей увеличения числа функций, реализуемых системой при ограниченной емкости кристалла, являетсяумень-шение аппаратурных затрат в отдельных блоках системы, что требует применения различных оптимизационных методов. Для решения этой задачи при синтезе КМУУ может быть использован метод разделения кодов [2], ориентированный, как и известные методы [5,6], на уменьшение числа термов в системе функций возбуждения памяти КМУУ. Однако этот метод применим только при выполнении определенных условий [2], в противном случае он приводит к резкому увеличению емкости упр авляющей памяти.
Целью исследования является возможность применения предлагаемого метода преобразования адресов, позволяющего использовать разделение кодов при произвольных характеристиках исходной граф-схемы алгоритма (ГСА), задающей алгоритм управления.
Задача исследования - разработка формализованного метода преобразования адресов, ориентированного на КМУУ с элементарными операторными линей-
ными цепями (ОЛЦ). Отметим, что предлагаемый метод применим и для КМУУ с произвольными ОЛЦ.
2. Основные определения и общие положения
Пусть множество B вершин ГСА Г включает начальную вершину b0, конечную вершину bE, операторные вершины bq Є Bj и условные вершины bq є B2: B = B1 uB2 u{b0,bE} . В вершинах bq є B1 записываются наборы микроопераций из множества Y = {y1,...,yN}, в вершинах bq є B2 записываются элементы множества логических условий X = {x1,...,xL}. Вершины ГСА Г связаны дугами
< bq,bt >Є E, где E - множество дуг.
Введем ряд определений [1,2], необходимых для дальнейшего изложения материала
Определение 1. Операторной линейной цепью ГСА Г называется последовательность операторных вершин ag =< bg1, -’bgFg >, такая, что для любой пары соседних компонент вектора ag существует дуга
< bgA,+1 >є E(i = 1,-,Fg -1).
Определение 2. Вершина bq є Dg , где Dg - множество вершин, входящих в ОЛЦ ag, называется входом ОЛЦ ag , если существует дуга < bt,bq >є E, гдеbt = b0 илиbt є B2, или bt £ Dg .
Определение 3. Операторная линейная цепь ag называется элементарной операторной линейной цепью (ЭОЛЦ), если она имеет только один вход.
Определение 4. Вершина bq є Dg называется выходом ОЛЦ ag , если существует дуга < bt ,bq >є E, где
bt = bE или bt є B2, или bt g Dg .
Определение 5. Элементарные ОЛЦ , aj называются псевдоэквивалентными ЭОЛЦ, если их выходы связаны с входом одной и той же вершины ГСА Г.
Пусть Ig - вход ЭОЛЦ »g, Og - выход ОЛЦ , О(Г) - множество выходов ОЛЦ ГСА Г. Пусть для ГСА Г сформировано множество ЭОЛЦ С = {a1,...,aG}, удовлетворяющее условию
D1 n Dj =0(i,je {1,...,G});
B1 = D1 uD2u...uDg ; G ^ min. (1)
При выполнении (1) каждая вершина bq є B1 входит точно в одну ЭОЛЦ и каждая ЭОЛЦ ag є C включает максимально возможное число компонент. Закодируем ЭОЛЦ ag є C R1 -разрядными кодами K(a,g), где R1 =]log2 G[, и используем для такого кодирования элементы множества г , где | т |= R1. Закодируем компоненты каждой ЭОЛЦ ag є C r2 -разрядными кодами K(bt), где R2 =]log2Fmax[, Fmax = max(FJ,...,FG), и используем для такого кодирования элементы множества T, где | T |= R2. Выполним кодирование так, чтобы выполнялось условие
РИ, 2006, № 2
50
K(bgJ = K(bg.)+1), (2)
где g = , І = 1,...,Fg -1.
Теперь операторной вершине bq є Dg соответствует код
A(bq) = K(a g) * K(bq), (3)
здесь * - знак конкатенации.
Clock в RG заносится код очередной ОЛЦ аІ є C, во вход которой есть переход из выхода Og под действием переменных X. Одновременно содержимое CT обнуляется, что соответствует первой компоненте ЭОЛЦ аІ є C . Если <bt,bq >єE, то одновременно с микрооперациями Y формируется сигнал yE, триггер TF обнуляется и выборка микрокоманд прекращает-
Этот код можно рассматривать как адрес микрокоманды Y(bq), соответствующей вершине bq є Dg .
Представление (3) называется разделением кодов [2] и ему соответствует КМУУ U1 (рис.1).
Рис. 1. Структурная схема КМУУ с разделением кодов и элементарными ОЛЦ
Здесь комбинационная схема СС формирует систему функций возбуждения регистра RG, хранящего коды ЭОЛЦ,
ся, что соответствует режиму останова КМУУ Uj.
Такая организация УУ позволяет минимизировать число выходов схемы СС по сравнению с известными методами реализации КМУУ [1,2], а также позволяет использовать оптимальное кодирование псевдоэквивалентных ЭОЛЦ, основанное на принципах [7].
Однако при выполнении условия
R1*R2 >R , (5)
где R = ]log2M[, M =| B1 |, емкость управляющей памяти КМУУ U1 в
2R-(R1+R2) (6)
раз больше ее минимальной емкости:
Vmm = 2r(N + 2). (7)
В настоящей работе предлагаются два метода оптимизации КМУУ U1 , позволяющие использовать принцип разделения кодов при любых характеристиках исходной ГСА. Методы основаны на введении преобразователя адресов, формирующего адрес микрокоманды с разрядностью R0 < R по представлению (3).
¥ = ¥(х,Х); (4)
управляющая память СМ хранит микрооперации Y, сигнал управления синхронизацией y0 и сигнал управления выборкой yE , триггер выборки TF формирует сигнал выборки Fetch.
Устройство U1 функционирует следующим образом. По сигналу start в RG заносится нулевой код, соответствующий первой ЭОЛЦ ГСА Г, а в CT заносится нулевой код, соответствующий коду первой компоненты ЭОЛЦ. Одновременно сигнал Fetch=1, что разрешает выборку микрокоманд из CM. Пусть в момент времени t (t=0, 1, 2, ...) содержимое RG и CT образует адрес A(bq). Если вершина bq £ 0(Г), то управляющая память формирует микрооперации, записанные в вершине
bq єВь и сигнал у0. По сигналу синхронизации Clock содержимое СТ увеличивается на единицу, что соответствует режиму (2). Таким образом, в момент времени t +1 из CM выбирается микрокоманда, соответствующая очередной компоненте ОЛЦ ag, и содержимое RG не меняется.
Если bq є °(Г), то сигнал у0 не формируется. При этом по сигналу
3. Принцип организации КМУУ с оптимальным кодированием элементарных ОЛЦ и преобразователем адреса
Пусть для ГСА Г условие (5) выполняется. Введем в схему КМУУ U1 преобразователь адреса AT, что порождает КМУУ U2 (рис. 2). Здесь преобразователь адреса формирует переменные
A = A(T, т), (8)
используемые для адресации микрокоманд в CM.
В настоящей работе предлагается метод синтеза КМУУ U2 , включающий следующие этапы:
РИ, 2006, № 2
51
1. Формирование преобразованной ГСА Г (U2).
2. Формирование множества ЭОЛЦ ГСА Г (U2).
3. Кодирование элементарных ОЛЦ.
4. Кодирование операторных вершин.
5. Адресация микрокоманд.
случае R1 = 3 , т = (ть т2, т3} и один из вариантов кодирования ЭОЛЦ представлен на рис. 4
6. Формирование содержимого управляющей памяти.
7. Формирование таблицы переходов КМУУ.
8. Формирование таблицы преобразователя адресов.
9. Формирование систем функций Y и L.
10. Реализация схемы КМУУ в заданном элементом базисе.
Преобразование исходной ГСА Г необходимо для организации режима пуска и останова КМУУ U2.
Если в ГСА Г имеется дуга <b0,bq >єE, гдеbq єB2
(рис. 3,а), то в ГСА T(U2) водится операторная вершина (рис. 3, б).
Если в ГСА Г имеется дуга <bt,bE >єE, гдеbt єB1 (рис. 3, в), то в вершинуbt вводится сигнал yE. Если
в ГСА Г имеется дуга <bq,bE >є E, где bq єB2 (рис. 3, в), то в ГСА вводится дополнительная операторная вершина с yE (рис. 3, г).
Множество ЭОЛЦ формируется по преобразованной ГСА с использованием методики [2]. Для кодирования ЭОЛЦ необходимо найти разбиение множества C на классы псевдоэквивалентных ЭОЛЦ:
ПC = {B1,...,BI} . Элементарные ОЛЦ ag О B1 кодируются так, чтобы их коды входили в один обобщенный интервал R1 -мерного пространства, при этом интервалы интерпретируются как коды K(Bt) соответствующих классов B1 £xC.
Рис. 4. Оптимальное кодирование ЭОЛЦ ГСА Г1
В этом случае K(B1) = 000, K(B2) = 1**, K(B3) = 0*1, K(B4) = *10.
Кодирование операторных вершин производится тривиальным образом. Например, при R2 = 3 первые компоненты всех ЭОЛЦ имеют код 000, вторые - 001 и т.д. Очевидно, что такой подход позволяет получить коды вершин, удовлетворяющих условию (2).
После формирования ЭОЛЦ в операторные вершины bq ^Og(g = 1, ...,G) преобразованнойГСА Г(U2) вводится сигнал управления синхронизацией у0. Таким образом, операторной вершине bq соответствует микрокоманда Yq с Yu{y0,yE}. Пусть ГСА Г(U2) содержит K попарно различных наборов микроопераций и сигналов у0, yE (микрокоманд). Для адресации наборов Yk (k = 1,...,K) достаточно
R0 =]log2K[ (9)
двоичных переменных, образующих множество L. Адресация микрокоманд Yk(k = 1,...,K) может выполняться произвольным образом, так как эти адреса формируются схемой AT по адресам (3), удовлетворяющим условию (2).
Очевидно, что при выполнении условия
R0 < R (10)
емкость управляющей памяти КМУУ (U2) в (R - R0) раз меньше параметра Vmin . Таким образом, применение преобразователя адресов позволяет при определенных условиях уменьшить емкость управляющей памяти КМУУ.
Пусть для ГСА Г1 ПC = {Bj,...,B4}, где B1 = {аЦ, B2 = {a2,a3,a4}, B3 = {a5,a6}, B4 = {a7}. В этом
( start ) b0
Содержимое упр авляющей памяти формируется тривиальным образом: адресу A(Yk) микрокоманды Yk(k = 1,...,K) соответствует ячейка СМ с соответствую щимимикроопе-рациями и сигналами Уо 5 УЕ-
В г
Рис. 3. Преобразование исходной ГСА Г
При достижении выхода ЭОЛЦ, содержаще-
го сигнал yE, функционирование КМУУ U2 прекращается. Поэтому таблица переходов КМУУ должна отображать переходы из выходов ЭОЛЦ, входя-
52
РИ, 2006, № 2
щих в классы B. є ПC. В классы разбиения ПC с ПC не входят ЭОЛЦ с сигналом yE.
Для формирования таблиц переходов предлагается построить систему обобщенных формул перехода
B. ^vX1(ag)ag, (11)
где В1 є ПC, Xi(ag) - конъюнкция логических условий xe є X, определяющих переход в ГСА Г( U2) из выхода ОЛЦ aj єВі во вход ОЛЦ ag eBt, где Bt єП C. Каждый терм выражения (11) соответствует одной стороне таблицы переходов со столбцами: B1, K(Bi), ag, K(ag), Xh, Yh, h, где Xh - Xi(«g), % - набор функций возбуждения регистра RG, принимающих единичное значение для формирования в RG кода K(«g); h = 1,...,H- номер перехода.
Таблица преобразователя адреса АТ задает закон формирования адресов микрокоманд A(Yk) по кодам K(a,g) * K(bq), где Yk - набор микроопераций и сигналов у0 и yE, записанный в вершине bq є Bi. Каждая строка таблицы имеет столбцы bq, K(bq), ag, K(ag), Yk, A(Yk), \, q, где столбец X q содержит переменные X q є Л , принимающие единичные значения в адресе микрокоманды A(Yk), q = 1,...,M - номер строки.
Система функций (4) строится по таблице переходов КМУУ U2 в виде
но рассмотрены в литературе [4-6,8] и выходят за рамки нашей статьи.
4. Особенности синтеза КМУУ с преобразователем кодов элементарных ОЛЦ
Оптимальное кодирование ЭОЛЦ, при котором все коды ЭОЛЦ одного класса входят в один обобщенный интервал, возможно не всегда. Например, для
разбиения П C = {B1,...,B4}, где B1 = {a1}, B2 = {a2,a3,a4}, B3 = {a5,a6}, B4 = {a8}, такого решения при R1 = 3 не существует. В этом случае предлагается ввести преобразователь кодов ЭОЛЦ в коды классов псевдоэквивалентных ЭОЛЦ, что порождает КМУУ U3 (рис. 5).
Здесь преобразователь кодов СОТ формирует переменные
Z = Z(t), (14)
кодирующие классы псевдоэквивалентных ЭОЛЦ, а схема СС реализует систему функций
¥ = ¥ (Z,X), (15)
управляющую регистром RG.
Методы синтеза КМУУ U3 и U2 практически совпадают, но в процедуру синтеза добавляются этапы:
5а. Кодирование классов псевдоэквивалентных ЭОЛЦ.
9а. Формирование таблицы преобразователя кодов СОТ.
H R1
Dr = v Сгh( лтГ11) • Xh (г = 1,...,R1), (12)
h =1 r=1
где Dr еТ; Crh - булева переменная, равная единице, если в h-й строке таблицы переходов записана переменная Dr; lir e{0,L,*}- значение г-го разряда кода K(B.) из h-й строки таблицы переходов, т0 = хг , хГ =х^ X* = 1(r = 1,...ДЦ.
Кроме того, в п.10 необходимо ввести формирование функций Z, которые фигурируют в таблице переходов КМУУ U3 вместо функций хг єх.
Для кодирования классов B. є nC достаточно
R3 =]l0g2 І1[ (16)
переменных zr є Z, где I1 = Пc . Кодирование клас-
Система функций (8) строится по таблице AT в виде
M R1 , R2 і
Xr = V Сrq(Axrgr)• (ATrlqr),(r = 1,...,Ro), (13)
q=1 r=1 r=1
здесь Crq - булева переменная, равная единице, если в q-й строке таблицы находится переменная Xг ; lgr є{0Л} - значение г-го разряда кода K(«g) из q-й строки таблицы; Ц є {0,1} - значение г-го р азряда кода K(bq) из q-й строки таблицы;
сов выполняется тривиальным образом, а таблица преобразователя СОТ включает столбцы: ag, K(ag), B., K(B.), Zg, g, где Zg - переменные zr eZ,
T° = X
Xr =Xr ,
0
r
(r = 1,...,R1); Tru = Tr ,
Tr1 = Tr, (r = 1,...,R2).
Вопросы реализации подобных функций достаточно пол-
Рис. 5. Сруктурная схема КМУУ U3
РИ, 2006, № 2
53
принимающие единичные значения в коде K(Bj) класса Bi є ПC; - номер строки (g = 1,...,G0, где G0 < G ). Функции (14) реализуются в виде
Go Ri ,
zr = ^С^лтЛ (г = 1,...,R3), (17)
g=1 r=1
где Cgr - булева переменная, равная единице, если в g-й строке таблицы COT переменная zr = 1; lgr є {0,1}
- значение г-го разряда кода K(ag) из g-й строки таблицы.
Наиболее просто система (11) реализуется на PROM или RAM.
5. Заключение и результаты исследований
Применение метода преобразования адресов эффективно при выполнении условия (5), при этом емкость управляющей памяти КМУУ может быть уменьшена
по сравнению с параметром Vmin , достижимым при известных методах синтеза КМУУ [1,2]. Уменьшение емкости возможно при выполнении условия (10), если в разных операторных вершинах находятся одинаковые наборы микроопераций.
Научная новизна предложенных методов заключается в разработке методов синтеза, позволяющих соединить все преимущества метода разделения кодов с минимизацией емкости управляющей памяти. Практическая значимость методов заключается в уменьшении площади кристалла, занимаемой управляющей памятью КМУУ, что позволяет получить схемы, которые либо обладают меньшей стоимостью, либо позволяютувеличить объем микропрограммного обеспечения цифровой системы при неизменной площади кристалла, чем отличаются от литературных аналогов.
Если коды псевдоэквивалентных элементарных ОЛЦ входят в один интервал R1 -мерного булева пространства для всех классов эквивалентности, то наибольшая экономия аппаратурных затрат достигается при
использовании КМУУ U2. В противном случае необходимо провести выбор между моделями U2 и U3. Исследования авторов показали, что лучшая в конкретных условиях модель дает до 18% экономии аппаратуры по сравнению с известными структурами КМУУ.
Література: І.Баркалов А.А., Палагин А.В. Синтез микропрограммных устройств управления. Киев: ИК НАН Украины, 1997. 135 с. 2. Баркалов А.А. Синтез устройств управления на программируемых логических устройствах. Донецк: ДонНТУ, 2002. 262 с. 3. Грушвицкий Р.И., Мурсаев А.Х., Угрюмое Е.П. Проектирование систем с использованием микросхем программируемой логики. Петербург: БХВ, 2002. 4. Luba T. Synteza ukladow logicznych. 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 с.
Поступила в редколлегию 05.06.2006
Рецензент: д-р техн.наук, проф. Хаханов В.И.
Баркалов Александр Александрович, д-р техн. наук, профессор кафедры ЭВМ ДонНТУ, профессор Университета Зеленогурского (Польша). Научные интересы: цифровые устройства управления. Увлечения: научная работа, спорт. Адрес: Украина, 83122, Донецк, ул. Артема, 204А, кв. 105, тел. (+38062)301 -07-35.
Красичков Алексей Александрович, канд. техн. наук, доцент кафедры ЭВМ ДонНТУ. Научные интересы: цифровые устройства управления на ПЛУ. Увлечения: научная работа, спорт, музыка. Адрес: Украина, 83005, Донецк, ул. Куприна, 62, кв. 33, тел. (+38062)301-07-23.
Халед Баракат, аспирант кафедры ЭВМ ДонНТУ. Научные интересы: цифровые устройства управления на ПЛУ. Увлечения: научная работа. Адрес: Украина, 83000, Донецк, ул. Артема, 58, к. 36.
54
РИ, 2006, № 2