Элементаризация операторных линейных цепей управляющего алгоритма при реализации композиционных устройств управления на FPGA-микросхемах

УДК 681.3

А.А. БАРКАЛОВ, Л.А. ТИТАРЕНКО, А.Н. МИРОШКИН

ЭЛЕМЕНТАРИЗАЦИЯ ОПЕРАТОРНЫХ ЛИНЕЙНЫХ ЦЕПЕЙ УПРАВЛЯЮЩЕГО АЛГОРИТМА ПРИ РЕАЛИЗАЦИИ КОМПОЗИЦИОННЫХ УСТРОЙСТВ УПРАВЛЕНИЯ НА FPGA-МИКРО СХЕМАХ

Рассматривается влияние элементаризации операторных линейных цепей алгоритма управления на количество аппаратурных затрат при реализации композиционного устройства управления на современных микросхемах программируемой логики (Spartan3). Определяются области параметров исходных ГСА, при которых целесообразно применение методики элементаризации операторных линейных цепей алгоритма. Приводятся результаты исследований.

1. Введение

Цифровая система, реализующая принцип микропрограммного управления [1], состоит из операционного автомата (ОА) и устройства управления (УУ). Операционный автомат содержит аппаратные средства, способные выполнять конечное множество операций над данными, а устройство управления интерпретирует алгоритм обработки данных, вырабатывая последовательность управляющих сигналов, под воздействием которых операционный автомат выполняет необходимые микрооперации [2]. Для задания последовательности необходимых микроопераций в данной работе используется язык граф-схем алгоритма (ГСА). Функционирование УУ, реализующего ГСА, может быть описано моделью цифрового автомата [3]. Реализация устройства управления в базисе современных программируемых логических интегральных схем (ПЛИС) характеризуется такими показателями как количество аппаратурных затрат, тактовая частота микросхемы, потребляемая и рассеиваемая мощности. Современные ПЛИС позволяют реализовывать все более сложные схемы, однако уменьшение аппаратурных затрат остается актуальной задачей, поскольку позволяет увеличить скорость работы, а также уменьшить потребляемую и рассеиваемую мощности устройства.

Данная статья посвящена исследованию одного из подходов, направленных непосредственно на уменьшение аппаратурных затрат в схеме композиционного микропрограммного устройства управления (КМУУ) с разделением кодов в базисе ПЛИС типа программируемых вентильных матриц (Field Programmable Gate Array, FPGA).

Множество подходов к уменьшению аппаратурных затрат в устройствах управления уже известны [4-8]. Однако использование новых элементных базисов и модификация известных подходов в некоторых случаях могут давать лучшие результаты.

Базис FPGA содержит все необходимые средства для реализации сложных цифровых систем. Наличие специализированных элементов, таких как синхронные блоки встроенной памяти (Embedded Memory Block, EMB), делают базис FPGA очень удобным для реализации схем с памятью, таких как композиционные управляющие автоматы. Целый ряд работ посвящен реализации конечных автоматов с памятью в базисе FPGA [5-9].

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

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

2. Исследуемые структуры устройств управления

Абстрактный автомат задается пятью компонентами: , где X = {х1,...,хь}

- входной алфавит, У = {уь...,ум} - выходной алфавит, S - множество внутренних состояний автомата, : : X х S ^ S - функции перехода автомата, g : X х S ^ У - функции выхода. Автомат, имеющий шестую компоненту, 80 - начальное состояние, называется детерминированным. Конечным называется автомат, имеющий конечное множество внутренних состояний. Цифровое устройство управления является детерминированным конечным цифровым автоматом.

Одним из способов реализации управляющего алгоритма в виде конечного автомата является композиционное микропрограммное устройство управления [10, 11]. Принцип организации КМУУ основан на выделении в ГСА операторных линейных цепей (ОЛЦ).

Операторной линейной цепью аg ГСА г называется конечная упорядоченная последовательность < ^-.^р > из Fg операторных вершин ГСА г, для любой пары соседних компонент которой существует дуга, соединяющая их.

КМУУ является композицией автомата с жесткой и программируемой логикой. Автомат с жесткой логикой выполняет переходы между различными ОЛЦ, а автомат с программируемой логикой адресует состояния в пределах каждой ОЛЦ. Прямая структурная таблица (ПСТ) КМУУ описывает все возможные переходы между различными ОЛЦ. Строка ПСТ включает следующие элементы: текущее состояние а^ его двоичный код к(а^, следующее состояние а8 и его код к(а8), множество логических сигналов X, обеспечивающих переход из состояния ат в состояние а8, функции Б возбуждения памяти регистра состояния автомата и номер Ь строки.

Функции перехода задаются формулой:

Б1 ^

Ь=1 г=1 1=1

и реализуются автоматом с жесткой логикой, где Б; - функция возбуждения 1-го разряда регистра состояния автомата; р!1 - переменная, определяющая наличие функции Б; в строке Ь ПСТ (Р;11 = 1, если функция Б; присутствует в строке Ь, и р!1 = 0 в обратном случае); оЬ - выход г-го разряда регистра состояния автомата в строке Ь ПСТ автомата (ОЬ = , если на выходе г -го разряда регистра находится значение логической «1», и ОЬ = в обратном случае); хЬ - переменная, определяющая значение логического условия Х1 в строке Ь ПСТ автомата (х^ = Х1, если переход в строке Ь выполняется при выполнении условия, и х^ = х1 - при невыполнении); сЬ - переменная, определяющая наличие логического условия х1 в строке Ь ПСТ автомата (сЬ = 1 при наличии сигнала х1 и СЬ = 0 при его отсутствии); Н - количество строк ПСТ автомата; Я - разрядность регистра состояния автомата; Ь - количество сигналов во входном алфавите автомата.

Функции выхода КМУУ определяются только для каждого состояния автомата с программируемой логикой, причем выходные функции не зависят от логических условий и формируются при помощи ПЗУ, следовательно, они формально описываются как g : S ^ У .

Операторная вершина Ьт называется входом ОЛЦ ай, если существует дуга (Ь{,Ьт),

или выходом, если существует дуга (Ьт,Ь^, где Ь^ £ аg .

Функционирование КМУУ подразумевает естественную адресацию вершин в пределах каждой ОЛЦ аg , т.е. для перехода (Ь; ^ Ь;+}) справедливо равенство

А

где А(Ь!),А(Ь!+1) - адреса вершин Ь; и Ь;+1 соответственно, Ь;, Ь;+1 еа g.

Для программной реализации более удобным является алгоритм формирования ОЛЦ, основанный на математической модели произвольной операторной вершины b m ГСА. Для описания алгоритма введем следующие обозначения:

Om - количество переходов < bg ^ bm >, где bg е Б^, Б^ - множество операторных вершин граф-схемы алгоритма управления;

Om - количество переходов < bm ^ bg >, где bg е Bj. Алгоритм формирования ОЛЦ заключается в следующем:

1. Поиск главного входа очередной ОЛЦ по признаку om = 0. Отметка найденной вершины как входа ОЛЦ. Назначение ей очередного кода ОЛЦ и нулевого кода компоненты. При отсутствии вершины с om = 0 - переход на п. 4.

2. Если следующая вершина является условной или конечной, то текущая помечается как вершина-выход текущей ОЛЦ и выполняется переход на п. 1. Иначе переход на следующую вершину.

3. Если для текущей операторной вершины выполняется неравенство om ^ 1, то она может войти в одну из нескольких ОЛЦ. Такая вершина помечается для дальнейшего анализа, затем выполняется переход на п. 1. Иначе назначение текущей вершине очередного кода компоненты. Переход на п. 2.

4. При наличии вершины, которая может войти в одну из нескольких ОЛЦ, определить ее в ОЛЦ-претендент с меньшей длиной. Переход на п. 2. При отсутствии такой вершины выполнить переход на п. 5.

5. Конец.

Описанный алгоритм позволяет получить множество C = {aj,...,aq} минимальной мощности.

Принцип разделения кодов (Code Sharing, CS-структура КМУУ) [11, 12] реализуется следующим образом: адрес любой операторной вершины определяется как конкатенация кода ОЛЦ, которой она принадлежит, и кода данной вершины в пределах ОЛЦ (кода компоненты, порядкового номера вершины).

Такая адресация позволяет ввести в схему регистр для хранения кода текущей ОЛЦ и счетчик для хранения кода текущей компоненты ОЛЦ.

Под длиной ОЛЦ будем понимать количество входящих в нее операторных вершин:

Fg =| ag |. Пусть Fmax = max(F1,...,Fg), где G - количество ОЛЦ в ГСА, тогда разрядность регистра равна

R1 = [log2 G~|,

а счетчик имеет

R2 =Tlog2

разрядов.

Система функций выходов КМУУ с разделением кодов реализуется на ПЗУ тривиально: в памяти расположена микропрограмма из

M =

слов, где Fmin = min(F1,...,FQ). Для обеспечения равенства (5) необходимо ОЛЦ минимальной длины закодировать максимальным кодом ОЛЦ, что отнесет соответствующее содержимое управляющей памяти (УП) в область с максимальными адресами. При унитарном кодировании микрокоманд [11] разрядность слова УП равна

где константа «2» определяет разряды для хранения внутренних переменных yo и yg .

На рис. 1, а представлена структурная схема КМУУ CS. Схема формирования адреса (СФА) реализует систему функций переходов (1), а управляющая память содержит микро-

6

программу, в которой находятся закодированные одним из известных способов [13] выходные функции.

По сигналу Start в регистр Рг и счетчик СТ заносится начальный адрес микропрограммы, а триггер выборки ТВ разрешает чтение из управляющей памяти. Если считанная из УП микрокоманда не соответствует выходу ОЛЦ, то одновременно с микрооперациями у

формируется сигнал yo. Если yo = 1, то к содержимому СТ прибавляется единица и адресуется следующая компонента текущей ОЛЦ, содержимое Рг при этом остается неизменным. Если выход ОЛЦ достигнут, то yo = 0 . При этом адрес входа следующей ОЛЦ вырабатывается схемой формирования адреса, после чего новый код ОЛЦ записывается в Рг, а номер компоненты - в CT. При достижении окончания микропрограммы

формируется сигнал yg, триггер ТВ обнуляется и выборка микрокоманд прекращается.

Рассмотрим принцип элементаризации ОЛЦ. Схема формирования адреса вырабатывает код следующей ОЛЦ и номер ее компоненты. В том случае, если адресацию операторных вершин выполнить таким образом, что каждая ОЛЦ имеет ровно один вход и один выход, то переход всегда будет осуществляться на компоненту с нулевым кодом, что избавит от необходимости его формирования. При этом количество ОЛЦ может увеличиться, и СФА будет формировать адрес, разрядность которого вместо Ri + R2 (3), (4) будет составлять

Ri' =riog2

где G' - количество ОЛЦ после применения методики элементаризации. Структурная схема КМУУ с разделением кодов и элементаризацией ОЛЦ приведена на рис. 1, б.

б

Рис. 1. Структурная схема КМУУ: а - с разделением кодов

3. Результаты экспериментов

Для эксперимента были выбраны ГСА со следующими параметрами:

- количество вершин от 10 до 500 с шагом 10;

- доля операторных вершин от 50 до 90% с шагом 10%;

- количество микроопераций = 15;

- количество логических условий = 5.

Для указанных ГСА были получены результаты имплементации КМУУ с разделением кодов без применения элементаризации ОЛЦ и с применением таковой (рис. 2-4). Также

приводится сравнительная характеристика результатов реализации тех же ГСА в виде автоматов Мили и в виде КМУУ с общей памятью [11] (CM-структура). В качестве элементного базиса выбраны FPGA-микросхемы Spartan-б фирмы Xilinx.

Для автоматизации процесса синтеза управляющих устройств была разработана система Генератор Автоматов (ГенА), которая по описанию алгоритма управления в формате XML генерирует VHDL-модель управляющего устройства заданной структуры. Под моделью понимается описание структурных элементов устройства на языке описания аппаратуры VHDL и при необходимости файлы прошивки ПЗУ. Далее модель автомата поступает в САПР Xilinx ISE, где проходит процесс имплементации в одну из доступных микросхем по выбору пользователя. Отчет об имплементации содержит подробную количественную информацию об использовании ресурсов микросхемы, которая и подлежит дальнейшему анализу.

При получении набора экспериментальных данных был выполнен синтез и имплемента-ция пяти ГСА для каждой измеряемой точки.

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

Аппаратурные затраты при реализации устройств управления. ГСА содержат 50% операторных вершин

0 100 200 300 400 500

Общее количество вершин ГОД шт.

а

Аппаратурные затраты при реализации устройств управления. ГСА содержат 70% операторных вершин

х ,в 600,00

о в J от 500,00

се ч е ен s н 400,00 300,00

и л л о h 200,00

о С h- 100,00

и 0,00

-CM

CS ECS - Mealy

0 100 200 300 400 500

Общее количество вершин ГОА, шт.

б

Аппаратурные затраты при реализации устройств управления. ГСА содержат 90% операторных вершин

Общее количество вершин ГОА, шт.

в

Рис. 2. Аппаратурные затраты при реализации автомата Мили, КМУУ с общей памятью, с разделением кодов, с элементаризацией ОЛЦ. Процент операторных вершин в ГСА: а - 50%; б - 70%; в - 90%

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

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

Относительные аппаратурные затраты при реализации различных устройств управления. ГСА содержат 80% операторных вершин

100 200 300 400

Общее количество вершин ГСА, шт.

CS/CM ECS/CM

- Mealy/CM

- Norm

0

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

содержат 80% операторных вершин

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

Для сравнения С8- и ЕС8-структур КМУУ рассмотрим рис. 4, где выполнено нормирование аппаратурных затрат по отношению к КМУУ без элементаризации ОЛЦ управляющего алгоритма.

График на рис. 4 показывает, что в 26% из общего числа ГСА с 80% операторных вершин структура КМУУ без элементаризации ОЛЦ алгоритма управления оказывается эффективнее. Общее количество вершин этих ГСА сосредоточены на отрезках [10; 120] и [270; 360]. На указанных отрезках необходимо выполнять синтез обеих структур для выяснения той, которая даст меньшие аппаратурные затраты в каждом конкретном случае. Для ГСА, параметры которых не попадают в указанные отрезки, достаточно синтезировать лишь КМУУ с элементаризацей ОЛЦ.

Относительные аппаратурные затраты при реализации различных структур КМУУ. ГСА содержат 80% операторных вершин.

Общее количество вершин ГСА, шт.

Рис. 4. Относительные аппаратурные затраты при реализации КМУУ с использованием методики элементаризации ОЛЦ алгоритма управления и без таковой

4. Выводы

Предлагаемая методика элементаризации ОЛЦ алгоритма при реализации КМУУ с разделением кодов в базисе ПЛИС типа БРОЛ направлена на уменьшение числа ЬИТ-

элементов, используемых в схеме формирования адреса микрокоманд. Методика заключается в формировании ОЛЦ с единственным входом, что позволяет уменьшить количество формируемых разрядов адреса при переходе между различными ОЛЦ с величины

Rl + R2 (3), (4) до Ri' (7).

Проведенные исследования показали, что применение методики элементаризации ОЛЦ исходных ГСА может снизить количество аппаратурных затрат в среднем на 10-15% в сравнении с базовой структурой КМУУ при реализации схем устройств управления в базисе современных FPGA-микросхем. Если количество вершин ГСА принадлежит отрезкам [10; 120] или [270; 360], применение данной методики может оказаться неэффективным, однако проверить это можно лишь после синтеза всех сравниваемых структур КМУУ для конкретной ГСА.

Научная новизна предлагаемой методики заключается в установлении аналитической зависимости между параметрами входного алгоритма и количеством необходимых для реализации схемы ресурсов микросхемы FPGA. Для микросхемы Spartan-3 фирмы Xilinx

аналитическая зависимость имеет вид Q = (-0,043p2 + 4,554p - 40,8) • N, где Q - количество LUT-элементов, необходимых для реализации схемы, N - общее количество вершин ГСА, p - доля операторных вершин в ней (p е [0.5;0.9]). Данная зависимость может быть использована для других FPGA-микросхем фирмы Xilinx с четырехвходовыми LUT-элементами. Погрешность формулы для ГСА с количеством вершин более 40 не превышает 30%, в то время как для малых ГСА статистическая погрешность может достигать величины аппаратурных затрат.

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

Длительность формирования выходных сигналов для рассматриваемых структур КМУУ одинакова и составляет 3,6-5 нс против 7-11 нс для автомата Мили, причем для КМУУ эти значения постоянны, а в автомате Мили задержки растут при увеличении сложности схемы.

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

Дальнейшие направления исследований связаны с анализом эффективности применения различных подходов к кодированию вершин ГСА, использования незанятых участков управляющей памяти для уменьшения аппаратурных затрат при реализации устройства управления.

Список литературы: 1. Wilkes M. V. The Best Way to Design an Automatic Calculating Machine (1951, July), Rept. Manchester Univ. Computer lnaug. Conf., Manchester, U.K. 2. Baranov S. Logic and System Design of Digital Systems. Tallinn: TUT Press, 2008. 266 p. 3. Глушков В.М. Синтез цифровых автоматов. М.: Физматгиз, 1962. 476 с. 4. .ROM-based finite state machine implementation in low cost FPGAs / I. Garcrn-Vargas, R. Senhadji-Navarro, G. Jimйnez-Moreno, A. Civit-Balcells, P. Guerra-Gutimrez // (2007) IEEE International Symposium on Industrial Electronics, art. no. 4374972. Р. 2342-2347. 5. ROM-based FSM implementation using input multiplexing in FPGA devices / R. Senhadji-Navarro, I. Garcm-Vargas, G. Jimmez-Moreno , A. Civit-Ballcels // (2004) Electronics Letters, 40 (20). Р. 1249-1251. 6. An application of functional decomposition in ROM-based FSM implementation in FPGA devices / M. Rawski, H. Selvaraj, T. Juba // (2005) Journal of Systems Architecture, 51 (6-7). Р. 424-434. 7. Synthesis and Implementation of RAM-Based Finite State Machines in FPGAs. / V. Sklyarov // 10th International Conference «Field-Programmable Logic and Applications: The Roadmap to Reconfigurable Computing» Proceedings, FPL 2000 Villach, Austria, August 27-30, 2000. Р. 718-727. 8. Saving power by mapping finite-state machines into embedded memory blocks in FPGAs. / A. Tiwari, K.A. Tomko // (2004) Proceedings - Design, Automation and Test in Europe Conference and Exhibition, 2. Р. 916-921. 9. Garcia E. Creating Finite State Machines Using True Dual-Port Fully Synchronous SelectRAM Blocks // Xcell Journal, 2000, Issue 38. Р. 36-38. 10. БаркаловА.А. Микропрограммное устройство управления как композиция автоматов с программируемой и жесткой логикой // Автоматика и вычислительная техника. 1983. №4. С.36-41. 11. Баркалов А.А. Синтез устройств управления на программируемых логических устройствах. Донецк: ДонНТУ, 2002. 262 с. 12. Оптими-

зация устройства управления с разделением кодов / А. А. Баркалов, Л. А. Титаренко, А.Н. Мирошкин / / Управляющие системы и машины. 2010. N 1. С. 45-50. 13. Синтез микропрограммных устройств управления. Баркалов А.А., Палагин А.В. К.: ИК НАН Украины, 1997. 135 с.

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

Баркалов Александр Александрович, д-р техн. наук, проф. кафедры компьютерной инженерии ДонНТУ, проф. университета Зеленогурского (Польша). Научные интересы: цифровые устройства управления. Хобби: научная работа, спорт. Адрес: Campus A, Budynek Dydaktyczny / A-2 prof. Z. Szafrana str. 2, 65-516 Zielona Gora. E-mail: A.Barkalov@iie.uz.zgora.pl.

Титаренко Лариса Александровна, д-р техн. наук, проф. кафедры ТКС ХНУРЭ, проф. университета Зеленогурского (Польша). Научные интересы: системы телекоммуникаций, цифровые устройства управления. Хобби: научная работа, спорт. Campus A, Budynek Dydaktyczny / A-2 prof. Z. Szafrana str. 2, 65-516 Zielona Gora E-mail: L.Titarenko@iie.uz.zgora.pl. Мирошкин Александр Николаевич, аспирант кафедры компьютерной инженерии Дон-НТУ. Научные интересы: цифровая схемотехника. Хобби: научная работа, спорт. Адрес: Украина, Донецкая обл., Макеевка, ул. Курская, д. 15, кв. 45.