Научная статья на тему 'Программно-аппаратная библиотека математических функций для систем на ПЛИС'

Программно-аппаратная библиотека математических функций для систем на ПЛИС Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
285
55
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПЛИС / СИСТЕМА НА ПЛИС / ПРОЦЕССОР / ПЕРИФЕРИЙНЫЙ МОДУЛЬ / БИБЛИОТЕКА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Зинченко Ю. Е., Гриценко А. А., Зеленева И. Я., Войтов Г. В.

В статье предлагается метод создания библиотеки математических функций для систем на ПЛИС (SoPC) и набора необходимых для работы с ней аппаратно-программных средств. Предлагаемая библиотека дает возможность варьировать структуру системы на ПЛИС в соответствии с требованиями пользователя и доступными аппаратными ресурсами.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Программно-аппаратная библиотека математических функций для систем на ПЛИС»

Evlanov M. V, Terecshenko I. V, Shtangey S. V. DEVELOPMENT OF INFORMATION TECHNOLOGY OF ENTERPRISE BUSINESS PROCESSES MONITORING The paper describes the information technology of enterprise business processes monitoring enabling automatic formation of given business process representations. The block diagram

of this technology is developed and the function of its basic elements is considered. The technique of information technology adjustment is presented taking into account the features of the specified business process.

Key words: monitoring, automation, component, adjustment, ontological model, synthesis.

УДК 681.324 Зинченко Ю. Е.1, Гриценко А. А.1, Зеленева И. Я.1, Войтов Г. В.2

1Канд. техн. наук, доцент Донецкого национального технического университета 2Ассистент Донецкого национального технического университета

ПРОГРАММНО-АППАРАТНАЯ БИБЛИОТЕКА МАТЕМАТИЧЕСКИХ ФУНКЦИЙ ДЛЯ СИСТЕМ НА ПЛИС

В статье предлагается метод создания библиотеки математических функций для систем на ПЛИС (SoPC) и набора необходимых для работы с ней аппаратно-программных средств. Предлагаемая библиотека дает возможность варьировать структуру системы на ПЛИС в соответствии с требованиями пользователя и доступными аппаратными ресурсами.

Ключевые слова: ПЛИС, система на ПЛИС, процессор, периферийный модуль, библиотека.

ВВЕДЕНИЕ

В настоящее время производители ПЛИС предоставляют широкие возможности по созданию систем на ПЛИС с использованием различных микропроцессорных архитектур. В частности, речь идет об архитектурах Xilinx MicroBlaze [1] и Altera Nios II [2], которые подразумевают наличие центрального микропроцессора и набора периферийных модулей, взаимодействующих посредством предоставляемого процессором шинного интерфейса.

Программное обеспечение рассматриваемых систем создается с использованием современных высокоуровневых языков программирования, в частности C и C++ [3, 4]. Оба эти языка предоставляют доступ

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

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

Рассматриваемые в данной работе системы на ПЛИС характеризуются наличием специфичных модулей, которые обеспечивают решение узкоспециализированных задач, позволяя центральному процессору переложить на них обязанности в области трудоемких вычислений (рис. 1), в частности в области вычисления математических функций.

Рис. 1. Архитектура микропроцессорной системы на ПЛИС, включающей сопроцессор © Зинченко Ю. Е., Гриценко А. А., Зеленева И. Я., Войтов Г. В., 2011

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

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

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

Первым этапом является предварительный анализ, который представлен на рис. 2 с использованием нотации иМЬ [6]. На этом этапе выполняется получение результатов профилирования программной части. Эти результаты генерируются предоставляемым, специфичным для конкретной архитектуры, вариантом математической библиотеки.

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

Вторым этапом является получение экспертных знаний о том, каким образом должны или могут выполняться вычисления математических функций, ко -торые были отобраны на первом этапе. Точность и полнота экспертных знаний влияет на результаты оптимизации системы. В качестве таких знаний могут выступать, например:

- Способ представления чисел. Если необходимо использовать представление с плавающей запятой, то, скорее всего, нужно будет использовать сторонние ядра для выполнения арифметических операций; если можно использовать представление с фик-

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

Согласно [5], в процессе разработки программноаппаратной системы пользователь не должен самостоятельно определять способ реализации отдельных компонент. Для обеспечения работы пользователя требуется, во-первых, иметь некоторую формальную методику разработки систем на ПЛИС, обеспечивающую автоматизированный анализ ее структуры и поиск путей ее оптимизации. Во-вторых, обеспечить пользователя набором средств, необходимых для того, чтобы, с одной стороны, позволить ему управлять процессами формирования структуры системы, с другой - обеспечить качественную его изоляцию от деталей выполнения этих процессов.

Исходными данными будем считать некоторую систему на ПЛИС, использующую функции математической библиотеки. Здесь следует отметить необходимость того, чтобы разработчик использовал не

Рис. 2. Методика разработки системы на ПЛИС, использующей программно-аппаратную реализацию математической библиотеки

Рис. 3. Архитектура для подключения математического сопроцессора

сированной запятой, то понадобятся соответствующие функции преобразования.

- Необходимая точность результатов. Допустим известно то, что требуемая точность не превышает некоторое количество разрядов после запятой. В этом случае можно сократить количество ресурсов, которые необходимы для размещения сопроцессора.

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

Увеличение объема информации дает возможность создавать более специфичные и, как следствие, более производительные и менее затратные по ресурсам сопроцессоры.

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

Например, если известно, что будет использоваться ПЛИС FPGA Altera Cyclone II, то можно выбрать реализацию модуля, оптимизированную для архитектуры этой ПЛИС [7]. С другой стороны, подключение модуля к микропроцессору будет осуществляться через шину Avalon [8], что позволяет выбрать необходимый модуль сопряжения с шиной. Кроме того, можно однозначно определить способ взаимодействия с модулем со стороны программного обеспечения [3].

Предлагается использовать архитектуру подключения сопроцессоров, приведенную на рис. 3.

В предлагаемой архитектуре выделен модуль подключения. Этот модуль позволяет использовать один

неоптимизированный вариант сопроцессора для нескольких платформ. Он должен обеспечивать корректный протокол работы с сопроцессором. Например, в случае использования интерфейса отображения в памяти шины Avalon [8] модуль обеспечивает запись и чтение данных по соответствующим адресам.

Следующим этапом разработки является разбиение математической библиотеки на программную и аппаратную части. На этом этапе возникает необходимость в получении от пользователя информации о том, сколько и каких ресурсов ПЛИС можно использовать. К этому моменту точно известно, сколько ресурсов необходимо для размещения того или иного сопроцессора, поэтому, в зависимости от имеющихся ресурсов, можно определить все допустимые конфигурации системы.

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

СТРУКТУРА ПРОГРАММНО-АППАРАТНОЙ БИБЛИОТЕКИ

Следует отметить, что с точки зрения системы на ПЛИС, структура библиотеки в процессе разработки изменяется. При использовании языков C и C++ библиотека будет состоять изначально из двух, а позже из трех файлов. Заголовочный файл обеспечивает возможность взаимодействия с библиотекой, а два файла исходных кодов (или два объектных файла) содержат реализацию программной составляющей и модулей доступа к сопроцессорам (рис. 3). Аппаратная часть библиотеки зависит от того, какие функции и в какой конфигурации погружены в аппаратуру.

Рис. 4. Первоначальная структура библиотеки

Рис. 5. Окончательный вариант структуры библиотеки

В процессе разработки начальной версии системы и на этапе предварительного анализа программно-аппаратная библиотека является оберткой стандартной библиотеки и имеет полностью программную реализацию. Ее основным отличием является то, что она позволяет осуществить получение результатов профилирования (рис. 4).

По завершении сбора экспертной информации и данных об используемой платформе выполняется генерация специализированной версии библиотеки, ко -торая все же позволяет осуществить профилирование (рис. 5).

Это нужно для выполнения сравнительного анализа исходной и оптимизированной версий, а также, в

случае необходимости, нескольких разных оптимизированных версий.

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

ПРИМЕР РЕАЛИЗАЦИИ

ЭКСПОНЕНЦИАЛЬНОЙ ФУНКЦИИ

Допустим, что согласно результатам профилирования программного обеспечения для системы на ПЛИС значительная часть вычислительных ресурсов расходуется на вычисление экспоненциальной функции [9]. Согласно ранее предложенной методике, следующим этапом является получение ограниче-

double hs_math_exp (double х) {

assert (0.0 <= х && х <= 2.0);

Xuint32 x_fixed = to_fixed (x);

XIo_Out32 (HS_MATH_EXP_NPU, x_fixed);

Xuint32 y_fixed = XIo_In32 (HS_MATH_EXP_NPU)

}

Л

Шаг 1. Контроль и подготовка исходных данных

Шаг 2. Расчет с использованием сопроцессора

double у = from_fixed (y_fixed); assert (1.0 <= у && у <= 7.38906); assert (are_equal (у, exp (x), 5)); return y;

Шаг 3. Контроль, подготовка и выдача результатов

Рис. 6. Пример реализации специализированного модуля доступа к сопроцессору, вычисляющему экспоненциальную функцию (для архитектуры ХШпх МгсгоВ^е [1])

Рис. 7. Прирост производительности при использовании аппаратного модуля

ний пользователя. Пусть пользователем задан диапазон для входных значений от нуля до двух включительно, точность в пять знаков после запятой и выбран формат с фиксированной запятой. В качестве платформы была выбрана ПЛИС БРвЛ ХШпх 8раг-!аи3ЛК.

На основе приведенной экспертной информации можно предложить следующий вариант реализации модуля доступа (рис. 6).

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

РЕЗУЛЬТАТЫ РЕАЛИЗАЦИИ

ЭКСПОНЕНЦИАЛЬНОЙ ФУНКЦИИ

Даже в случае использования неоптимизирован-ной реализации сопроцессора время работы варианта из стандартной библиотеки превышает время работы аппаратного модуля в 90 раз в лучшем случае (рис. 7), что доказывает эффективность предложенного подхода.

В качестве примера, который иллюстрирует важность качественной обработки экспертных данных, на диаграмме (рис. 8) показан прирост для точности в семь знаков. Следует отметить, что прирост аппаратных затрат в этом случае составил порядка 25 % относительно модуля с точностью в пять знаков.

ЗАКЛЮЧЕНИЕ

В данной статье предложен метод создания библиотеки математических функций для систем на ПЛИС.

Данный метод позволяет выполнять качественную оптимизацию систем на ПЛИС, которая основывается на двух важных факторах - экспертных знаниях о предметной области приложения и информации об используемой платформе.

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

Разработка библиотеки, обеспечивающей поддержку перечисленных платформ, сейчас ведется на базе лаборатории «БРвЛ-технологий и диагностики КС» ДонНТУ

СПИСОК ЛИТЕРАТУРЫ

1. MicroBlaze Processor Reference Guide [Электронный ресурс] / XILINX. - Электрон. дан. - Режим доступа: ht-tp://www.xilinx.com/support/documentation/sw_manuals/ edk63i_mb_ref_guide.pdf, свободный. - Загл. с экрана. -Англ.

2. Nios II Processor Reference Handbook [Электронный ресурс] / Altera Corporation. - Электрон. дан. - Режим доступа: http://www.altera.com/literature/hb/nios2/n2cpu_ nii5v1 .pdf, свободный. - Загл. с экрана. - Англ.

3. Programming languages - C: ISO/IeC 9899:1999(E) -ISO/IEC 9899/1999(E). - [Чинний від 01.12.1999]. -ISO/IEC, 1999. - 538 p. - (Міжнародний стандарт).

4. Programming languages - C++ : ISO/IEC 14882:20o3 -ISO/IEC 14882:2003. - [Чинний від 01.12.2003]. - ISO/ IEC, 2003. - 650 p. - (Міжнародний стандарт).

5. Jerraya,A.A. Hardware/Software Interface Codesign for Embedded Systems / A. A. Jerraya, W. Wolf // Computer.

- 2005. - № 38. - P. 63-69.

6. Объектно-ориентированный анализ и проектирование с примерами приложений / [Г Буч, Р. Максимчук,

М. Энгл и др.]. - [3-е изд.]. - М. : Вильямс», 2008. -720 с. : ил.

7. Cyclone II Device Handbook Volume 1 [Электронный

ресурс] / Altera Corporation. - Электрон. дан. - Режим доступа: http://www.altera.com/literature/hb/cyc2/cyc2_

cii5v1.pdf, свободный. - Загл. с экрана. - Англ.

8. Avalon Interface Specifications [Электронный ресурс] / Altera Corporation. - Электрон. дан. - Режим доступа: http://www. altera.com/literature/manual/mnl_avalon_spec. pdf, свободный. - Загл. с экрана. - Англ.

9. Ильин, В. А. Математический анализ. Начальный курс / Ильин В. А., Садовничий В. А., СендовичБ. Ч. - [2-е изд., перераб.]. - М. : Изд-ва МГУ, 1985. - 662 с.

Надійшла 10.11.2010

ЗінченкоЮ. Є., Гриценко А. О., ЗеленьоваІ. Я., Войтов Г. В.

ПРОГРАМНО-АПАРАТНА БІБЛІОТЕКА МАТЕМАТИЧНИХ ФУНКЦІЙ ДЛЯ СИСТЕМ НА ПЛІС

У статті пропонується метод створення бібліотеки математичних функцій для систем на ПЛІС (SoPC) і набору необхідних для роботи з нею апаратно-програмних засобів. Запропонована бібліотека надає можливість варіювати структурою системи на ПЛІС відповідно до вимог користувача та доступних апаратних ресурсів.

Ключові слова: ПЛІС, системи на ПЛІС, процесор, периферійний модуль, бібліотека.

Zinchenko Y. E., GrytsenkoA. A., Zelenyoval. J., Voytov G. V.

HARDWARE-SOFTWARE MATH LIBRARY FOR SOPC

The authors propose a method of creation of a math library for SoPC and a set of the required tools. Using this library, it is possible to vary the SoPC structure according to the user’s requirements and available hardware resources.

Key words: FPGA, SOPC, CPU, peripheral module, library.

УДК 004.416.03 Поздняков А. А.1, Пархоменко А. В.2, Тамрас Н. И.3, Чижик Е. В.4

1 Директор по консалтингу ООО «Бриг-Ритейл» 2Канд. техн. наук, доцент Запорожского национального технического университета

3Инженер-технолог ОАО «Мотор Сич» 4Инженер-программист ОАО «Мотор Сич»

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

В статье приведены результаты интеграции современных программных продуктов с целью эффективного управления проектом внедрения системы SAP ERP.

Ключевые слова: методология внедрения ERF-системы, система управления проектом, интеллект-карта, иерархическая структура работ, интеграция программного обеспечения.

ВВЕДЕНИЕ ce Planning - это методология эффективного плани-

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

формационной системы предприятия на современ- которые необходимы для осуществления продаж, про-

ном этапе являются ERP-системы. Enterprise Resour- изводства, закупок и учета при исполнении заказов

© Поздняков А. А., Пархоменко А. В., Тамрас Н. И., Чижик Е. В., 2011

i Надоели баннеры? Вы всегда можете отключить рекламу.