Факультет: Компьютерных наук и технологий
Кафедра: Компьютерной инженерии
На сегодняшний день просматривается мощная тенденция в сторону развития web-технологий. Одной из главных задач этого направления является перенос функциональных блоков обработки на сервер, а также максимальное упрощение интерфейса пользователя [20, 21]. В результате пользователю предоставляется система, в которой простые команды становятся следствием выполнения сложных алгоритмов, требующих затраты большего количества ресурсов. Эти затраты полностью переносятся на сервер, что практически не сказывается на ресурсах ПК. Java-Applet используются для предоставления интерактивных возможностей веб-приложений, которые не могут быть предоставлены HTML [22, 23]. Так как байт-код Java платформонезависим, то Java-Applet могут выполняться с помощью плагинов браузерами многих платформ, включая Microsoft Windows, UNIX, Apple Mac OS и GNU/Linux. Такие программы с открытым исходным кодом, как applet2app, могут быть использованы для преобразования апплета в самостоятельные программы на Java или исполняемые файлы Linux и Windows [22, 23].
В связи с наличием большого количества операционных систем, возникает проблема создать приложение, работающее на любой из них. Следовательно, в решении задачи необходимо добиться кроссплатформенности.
В качестве предметной области в данной работе рассматриваются структуры устройств управления.
Одним из методов реализации устройства управления цифровой системы является использование модели композиционного микропрограммного устройства управления (КМУУ) [24, 25].
Важнейшей частью любого цифрового устройства является управляющий автомат. Он может быть реализован в виде автомата с программируемой логикой или автомата с жесткой логикой. В последнее время все чаще для реализации управляющих автоматов с жесткой логикой применяются программируемые логические интегральные схемы (ПЛИС).
Наиболее распространенным языком этого класса, специфицированным международными стандартами, является язык VHDL. Возникает необходимость в проектировке системы автоматизированного проектирования, которая бы учитывала все методы оптимизации структуры управляющего автомата для ПЛИС, с учетом имеющихся методов оптимизации.
Active-HDL в своей программной реализации имеет средства для создания и редактирования FSM-структур (finite state machine, конечный автомат). Основная идея автоматной реализации – это описание процесса в виде граф-схемы с генерацией программного кода на языке VHDL или Verilog, с последующей возможностью синтеза полученного кода на заданной серии ПЛИС.
В настоящее время рост использования ПЛИС для реализации автоматов приостанавливается дороговизной микросхем. Поэтому конструкторам-программистам приходится решать задачу уменьшения аппаратных затрат (в данном случае – площадь кристалла ПЛИС или число вентилей) с большими затратами времени разработки.
Существует множество методов уменьшить аппаратные затраты путем использования дополнительных элементов (например мультиплексоров, ППЗУ), которые придают алгоритму гибкость автомата с программируемой логикой (АПЛ) и скорость автомата с жесткой логикой (АЖЛ). Сравнительные результаты параметров синтезированных устройств при одинаковых исходных граф-схемах, реализованные средствами FSM A-HDL(finite state machine) и посредством структурного описания результирующей схемы, показывают определенное уменьшение числа используемых элементов FPGA при реализации вторым способом.
Недостаток FSM-редактора A-HDL–генерация программного кода в поведенческом стиле, что делает невозможным предсказать результат синтеза. Структурное же описание схемы, полученной в результате тривиальной реализации, дает возможность предсказания результатов еще до синтеза – на этапе генерации программного кода, что дает возможность генерировать код для кристалла или числа вентилей FPGA заданной размерности.[26]
Научная значимость исследования для нашего проекта заключается в определении наиболее оптимального управляющего автомата для реализации заданного алгоритма. Алгоритм задается в виде граф-схемы (ГСА). Интерфейс пользователя содержит в себе все графические компоненты, из которых в процессе обработки строится ГСА. Параллельно с этим процессом генерируется XML-файл, содержащий информацию об алгоритме(количество операторных и условных вершин, структура ГСА), который в итоге пересылается на сервер. На сервере в соответствии со статистикой в базе данных выполняется анализ XML-файла и подбирается управляющий автомат наиболее подходящий для реализации предложенного пользователем алгоритма. В ответ с сервера пользователю приходит ссылка на VHDL-файл, являющийся моделью выбранного типа УА.
Для интерпретации ГСА Г можно использовать модель КМУУ с общей памятью [29]. (Рис.1).
Рисунок 1 — Структурная схема КМУУ с общей памятью.
Это устройство функционирует следующим образом. По сигналу Start в счётчик СТ загружается нулевой адрес первой микрокоманды микропрограммы, соответствующей ГСА Г. Одновременно триггер выборки TF устанавливается в единичные состояния (Fetch=1). Очередная микрокоманда (МК) выбирается из управляющей памяти СМ. Если эта МК соответствует вершине bq Og, то одновременно с набором микроопераций Y(bq) формируется переменная y0=1. Если y0=1, то содержимое СТ увеличивается на 1 по сигналу Clock это соответствует режиму (3), то есть переход происходит внутри некоторой операторной линейной цепи (ОЛЦ) g С. Если bq=Og, то переменная y0=0. В этом случае комбинационная схема СС формирует функции возбуждения СТ.
Ф=Ф(Т,Х) необходимые для загрузки в СТ адреса входа некоторой ОЛЦ. Адрес устанавливается в СТ по сигналу Clock. Если
Очевидно, данное КМУУ является автоматом мура, т.к. выходные сигналы y0, yE и Y зависят только от содержимого СТ. При этом адрес микрокоманды может рассматриваться, как код состояния автомата. Однако в отличии от классического автомата Мура, память КМУУ реализуется на счётчике.
В ходе магистерской работы планируется разработка система автоматизированного проектирования, которая учитывает некоторые методы оптимизации для ПЛИС. Выходными данными программы являются файлы, содержащие VHDL-код, описывающий работу устройства.
Система автоматизированного проектирования структуры управляющего автомата (САПР СУА) делится на две части: клиентская и серверная. Такой подход наиболее оправдан с экономической точки зрения и сточки зрения вычислительных затрат. Сервер, который берет на себя функцию преобразования пространственного представления граф-схемы алгоритма в автоматное представление и, в конечном счете, в результирующий VHDL-код. Клиент, имея графический интерфейс, позволяет ввести граф-схему алгоритма в графической форме и преобразовать ее в пространственную.
Сервер имеет возможность динамического обновления или добавления методов генерации VHDL-кода.
В результате планируется получить web-приложение, которое будет реализовано с использованием технологии Java-Applet. Эта технология позволяет использовать приложение без необходимости его установки, а просто набрав определенный URL в строке адреса браузера. Технология Java-Applet является кросплатформенной. Таким образом пользователь получает возможность работы непосредственно в окне браузера в любой операционной системе.
Реализованный Java-Applet будет иметь рабочую область, в которой пользователь сможет проектировать необходимый ему управляющий автомат, путем построения граф-схемы алгоритма. Система построения граф-схемы будет иметь прозрачный интерфейс и позволять разработчику наиболее гибко использовать ее компоненты, т.е. перемещать, удалять, переименовывать, менять содержимое компонентов. При этом учитываются их взаимосвязи друг с другом.
Информация о граф-схеме содержится в виде XML-файла. В качестве информации представлены сведения о содержимом операторных, условных, начальных и конечных вершинах, а также их размере и координаты расположения.
Этот XML-файл будет отправляться на сервер, на котором будет выполнятся его анализ. На следующем шаге в соответствии со статистикой в базе данных будет выбираться наиболее оптимальный управляющий автомат для реализации заданного разработчиком алгоритма и формируется VHDL-файл . В ответ реализованный Java-Applet предоставляет ссылку на полученный VHDL-файл.
В результате тестирования работы программы были получены следующие данные. В качестве входного параметра были взятии три граф-схемы: граф-схема на 5 состояний, 3 входных сигнала, 6 выходных сигналов, проверки условия не повторяются; граф-схема на 15 состояний, 3 входных сигнала, 6 выходных сигналов, проверки условия не повторяются; граф-схема на 35 состояний, 3 входных сигнала, 6 выходных сигналов, проверки условия не повторяются.
Синтез устройств на интегральной схеме Xilinx CoolRunner XPLA3:
Таблица 1 — Результат синтеза
Рисунок 2 — Диаграмма сравнения
Из графика, изображенного на рисунке 2, можно увидеть следующую тенденцию: благодаря наполнению FPGA схемы различными многофункциональными вентилями — тривиальный метод и метод поведенческий практически совпадают по аппаратным затратам, метод элементаризации существенно сокращает число вентилей, но нужно учитывать, что структура такого автомата сложнее и более медленная.[27]
Результаты, полученные с помощью САПР СУА, показывают, что средства синтеза имеют достаточно развитые алгоритмы поиска во входном VHDL-коде структур конечных автоматов. А некоторые типы ПЛИС имеют вентили, позволяющие упростить аппаратную структуру генерируемого кода. Благодаря чему поведенческий метод не уступает тривиальному. Но это верно не для всех типов ПЛИС.
Об актуальности темы конечных автоматов (УА) свидетельствует наличие редакторов FSM (finite state machine) в таких продуктах как AHDL и Riviera. Наиболее распространенными среди языков описания аппаратуры являются языки VHDL и Verilog. Однако непосредственная реализация управляющих автоматов на этих языках является трудоемким процессом. Поэтому в состав многих зарубежных САПР были включены специальные инструменты, позволяющие упростить разработку управляющих автоматов. Так в состав САПР Active-HDL фирмы Aldec включен модуль FSM. Этот модуль обладает многофункциональным графическим интерфейсом, для описания управляющих автоматов. Однако модуль FSM обладает рядом недостатков. В частности, форма записи управляющего автомата требует знания языка HDL. Подобным образом организованы системы проектирования управляющих автоматов и в других САПР.
Также FSM моделей при генерации кода не учитывают аппаратурные затраты при генерации результирующего кода, так как полагается что это будет сделано средствами синтеза, но сгенерированный код не учитывает многих особенностей реализации структуры автомата, поэтому средства синтеза часто выдают не самую оптимальную конфигурацию результирующего устройства.
Недостаток FSM-редактора A-HDL–генерация программного кода в поведенческом стиле, что делает невозможным предсказать результат синтеза. Структурное же описание схемы, полученной в результате тривиальной реализации, дает возможность предсказания результатов еще до синтеза — на этапе генерации программного кода, что дает возможность генерировать код для кристалла или числа вентилей FPGA заданной размерности.
В ходе проведения исследования было установлено, что генерируемое модулем FSM поведенческое описание управляющего автомата реализуется средствами синтеза ( Synplify ) как автомат Мура с унарным кодированием состояний. Достоинством такой реализации является повышенное быстродействие, недостатком большие аппаратные затраты.
При унарном кодировании состояний автомата уменьшается количество необходимых для реализации схемы инверторов. Это происходит за счет отсутствия необходимости инвертирования разрядов кода состояний.
Таким образом, достоинствами этого метода, является меньшая сложность функций возбуждения (особенно проявляется при уменьшении разветленности автомата) и соответсвенно более высокое быстродействие автомата. Недостатками являются значительно большое количество используемых триггерных схем (особенно проявляется при увеличении состояний графа : R ~ M , при унарном кодировании; R ~ log 2 M , при бинарном кодировании ); и большая аппаратная затратность схем формирования выходных сигналов (при отсутствии в ПЛИС элементов XOR ).
Известны, однако, и другие методы оптимизации структуры автоматов на ПЛИС. Классификация этих методов приведена на рисунке 3.
Рисунок 3 — Классификация методов оптимизации автоматов
Однако в последнее время становится все более очевидным, что подобный подход к проектированию близок к исчерпанию своих возможностей. Появление новых, все более быстродействующих и содержащих большее количество логических ячеек на кристалле микросхем FPGA смещает приоритет при разработке устройств с минимизации аппаратных затрат в полученном устройстве или максимизации быстродействия полученного устройства – на обеспечение надежности и безупречной работы полученного устройства при максимально коротком цикле разработке.
Одним из наиболее перспективных способов разрешения этой проблемы является использование для проектирования аппаратных систем, средств основанных на ранее разработанных средствах проектирования сложных систем для программного обеспечения, таких как использование управляемой моделями архитектуры (MDA–Model-Driven Architecture) и унифицированный язык моделирование ( UML–Unified Modeling Language ).
MDA была предложена группой OMG (Object Management Group) в 2000 году. Главной идеей MDA является описание сложных систем в виде набора моделей, стоящих на различных уровнях абстракции, относительно друг друга, и возможность преобразования моделей одного уровня в модели другого уровня абстракции. Результатом таких преобразований является получение реализаций независимой от платформы модели, для различных платформ.
В настоящее время существует множество сред проектирования, поддерживающих управляемую моделями архитектуру и язык UML для описания моделей, которые ориентированы на разработку программного обеспечения (Eclipse, NetBeans, JBuilder_X, Poseidon, ArgoUML и т.д.). Многие из этих сред являются расширяемыми продуктами (т.е. к ним можно подключать дополнительные модули сторонних разработчиков), поэтому было принято решение построить САПР для управляющих автоматов на базе одной из имеющихся сред проектирования. В качестве базовой среды был выбран JBuilder 2006.
К подобным разработкам можно отнести работы следующих Магистров ДонНТУ:
Войтенко Сергея Аркадьевича. Его тема "Применение UML при проектировании управляющих автоматов"
В качестве инструмента для своей работы он выбрал среду разработки Eclipse. Одной из главных задач его разработки являлось выработка новых методов автоматизированного проектирования управляющих автоматов и разработка программного обеспечения, поддерживающего эти методы.
Результатом его работы стало программное обеспечение, построенное на платформе Eclipse с открытым кодом и реализующая генерацию кода на языке HDL. Программный код генерируется с учетом существующих алгоритмов оптимизации управляющих автоматов и специфицирован под конкретную ПЛИС. Входными параметрами для ПО является UML схема реализации управляющего автомата.
Бережка А.Ю.. Его тема «Исследование структур управляющих автоматов с элементаризацией линейных последовательностей состояний». Свою разработку он вел совместно с Войтенко Сергеем Аркадьевичем, поэтому и цели их исследования в значителной степени совподают
Мирошкина Александра Николаевича. Его тема «Подсистема генератора VHDL-схем в САПР композионных микропрограммных устройств управления»
Эта стаья из материал доклада на конференцию «КОМПЬЮТЕРНЫЙ МОНИТОРИНГ И ИНФОРМАЦИОНЫЕ ТЕХНОЛОГИИ — 2007»
Ссылки на их работы представлены в этом разделе в перечне источников в подразделе работ магистров прошлых лет
Рассмотри пример синтеза КМУУ по ГСА Г1 (рис.4.)
Рисунок 4 — Исходная ГСА Г1
Используя методы из [4], можно получить множество С={a1, a2, a3}, где d1={b1,b2} I =b1, I =O1=b2; a2={b3, b4, b5}, I =b3, I =b4, O2 = b5; a3=={b6, b7, b8}, I =b6, O3=b8. Итак, G=3, M=8, R=3, T={T1, T2, T3}, ={D1, D2, D3}, X={x1, x2}, L=2, Y={y1, y2, y3, y4, y5, y6}, N=6, I( )={b1, b2, b3, b4, b6}, O( )={b2, b5, b8}, C1={a1, a2}.
Естественная адресация микрокоманд [3] позволяет получить следующие адреса: A(b1)=000, A(b2)=001, …, A(b8)=111. Формулы перехода строятся для выходов ОЛЦ , то есть для О1 и О3. Эта система имеет следующий вид: O1 > x1 b3 x2 b4 b6.
Система имеет H=4 терма, следовательно, таблица переходов КМУУ имеет H=4 строки (Табл.1).
Таблица 1 — Таблица переходов КМУУ
Из таблицы 2 формируется система формул переходов, имеющая следующий вид для U1 (Г1):
Содержимое управляющей памяти КМУУ показано в Табл.2, имеющей М=8 строк.
Таблица 2 — Содержимое управляющей памяти КММУ
На следующем шаге решения данной задачи выполняется формирование XML-файла, который содержит информацию по исходной ГСА. Содержимое XML-файла приведено на рисунке 5.
Рисунок 5 — Содержимое XML-файла
На следующем шаге выполняется выполняется посылка этого файла на сервер. На сервере в соответствии со статистикой в базе данных выполняется анализ XML-файла и подбирается управляющий автомат, наиболее подходящий для реализации предложенного пользователем алгоритма. В ответ с сервера пользователю приходит ссылка на VHDL-файл, являющийся моделью наиболее подходящего УА.
Процесс разработки УА на ПЛИС изображен на рисунке 6
Рисунок 6 — Процесс разработки УА на ПЛИС
Анимация: 8 кадров, вес — 47492 байта, размер — 760х241
В результате выполнения задачи получается VHDL–файл и статистика, по которой можно наглядно определить наиболее оптимальные архитектуры УА для реализации алгоритмов управления, заданных пользователем. Так как приложения реализовывается на Java с использованием технологии Java-Applet, в итоге получается кросплатформенное приложение, т.е. приложение, работающее в любой операционной системе.