БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления / Под ред. В.В. Воеводина.
- СПб.: БХВ-Петербург, 2002. - 599 с.
2. Зотов В.Ю. Проектирование цифровых устройств на основе ПЛИС фирмы XILINX в САПР WebPACK ISE. - М.: Горячая линия-Телеком, 2003. - 624 с.
3. Сорокин ДА., Дордопуло AM., Бовкун А.В. Аппаратная реализация докинга лигандов на
// , -ка и инженерное образование. - 2011. - Вып. 4(6). - С. 30-46. - Эл. № ФС77-39729 от «29» апреля 2010 г. http://digital-mag.tti.sfedu.ru.
4. Сор окин ДА., Левин И.И., Дордопуло AM., Мельников АЖ. Решение задач с существенно-переменной интенсивностью потоков данных на реконфигурируемых вычислитель// . - .: -
строение, 2012. - № 2. - С. 24.
5. . . -
числительных систем на основе ПЛИС // Известия ТРТУ. - 2006. - № 16 (71). - С. 11-16.
6. . .
// .
- М.: Машиностроение, 2011. - № 6. - С. 3-11.
Статью рекомендовал к опубликованию д.т.н., профессор Я.Е. Ромм.
Бовкун Александр Викторович - Научно-исследовательский институт многопроцессорных вычислительных систем им. А.В. Каляева Южного федерального университета; e-mail: simans2002@mail.ru; 347928, г. Таганрог, ул. Чехова, 2; тел.: 88634315491; младший науч.
Bovkun Alexandr Viktorovich - Scientific-Research Institute Multiprocessing Computing Systems after Kalyaev of South Federal University; e-mail: simans2002@mail.ru; 2, Chekhov street, Taganrog, 347928, Russia; phone: +78634315491; research assistant.
УДК 004.421.6
АХ. Коваленко
МАКРОКОНВЕЙЕРНАЯ РЕАЛИЗАЦИЯ АЛГОРИТМОВ АУТЕНТИФИКАЦИИ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ COLAMO*
Рассматривается макроконвейерная реализация алгоритмов аутентификации для подсистем безопасности сложных информационных комплексов на реконфигурируемых вычислительных системах с динамически перестраиваемой архитектурой. Для обобщенной схемы макроконвейерных задач сформулированы условия их эффективной реализации на реконфигурируемых вычислительных системах. Рассмотрена реализация типового алгоритма аутентификации SSL на языке программирования высокого уровня СОЬАЫО. Приведены достигнутые характеристики производительности реконфигурируемой вычислительной системы при решении описанной макроконвейерной задачи.
Макроконвейерные вычисления; реконфигурируемая вычислительная система; алгоритмы аутентификации; язык высокого уровня СО1АМО.
*
Исследования выполнены при финансовой поддержке Министерства образования и науки РФ, госконтракт № 14.527.12.0004 от 03 октября 2011 г.
A.G. Kovalenko
MACROPIPELINE IMPLEMENTATION OF AUTHENTICATION ALGORITHMS ON HIGH-LEVEL LANGUAGE COLAMO
Macropipeline implementation on reconfigurable computer systems with a dynamic reconfigurable architecture of authentication algorithms for security subsystems of complex informational systems is considered in this paper. Conditions of the effective realization for reconfigurable computer systems are given for a general scheme of macropipeline tasks. Realization of a typical authentication algorithm SSL on a high-level language COLAMO is considered. Author gives a description of achieved performance of a described macropipeline task for a reconfigurable computer system.
Macropipeline computing; reconfigurable computer system; authentication algorithms; high-level language COLAMO.
Обеспечение безопасности сложных информационных комплексов требует оперативной обработки больших объемов данных по вычислительно-трудоемким алгоритмам. Это обуславливает высокие требования к производительным системам, которые реализуют методы аутентификации (а в случае необходимости -
). -
числительные средства не позволяют решать такие задачи в режиме реального , . реконфигурируемых вычислительных систем (РВС) позволит обеспечить высокую скорость обработки данных в системах безопасности сложных технических ком.
Для РВС характерна структурная реализация задач [1], подразумевающая аппаратное исполнение всех задействованных вычислительных узлов. Однако суще, -
,
конвейера. Такие задачи, как правило, содержат большое число условных перехо-, -кращает удельную производительность РВС.
В таких задачах необходима процедурная реализация всего вычислительного графа или его фрагментов. Данный подход особенно характерен для задач аутентификации в больших системах безопасности, где применяются криптопреобразования различных видов. Одним из наиболее эффективных методов решения такого , -, . принципа состоит в распределении вычислительных заданий между процессорными элементами таким образом, чтобы каждому процессорному элементу на очередном шаге вычислений выдавались данные, которые будут обрабатываться определенное время независимо от других процессорных элементов.
До настоящего времени макроконвейерные задачи разрабатывались специа-- . -рируемых вычислительных систем, построенных на основе ПЛИС, представляет собой достаточно трудоемкий процесс, требующий от пользователя специальных знаний и навыков. Все это неуклонно приводит к увеличению времени создания и отладки задачи до нескольких месяцев.
Для эффективной реализации вычислительных алгоритмов на РВС был разработан язык высокого уровня COLAMO, позволяющий программисту максимально просто описывать различные виды параллелизма в достаточно сжатом виде и содержащий мощные конструкции, как в традиционных языках программирования [2]. В связи с недавними расширениями языка COLAMO [3], в которых появился инструментарий для описания макроконвейерных вычислений, предлагается
использовать его для сокращения времени создания задач, содержащих разнотипные организации вычислений (конвейерные и процедурные).
Рассмотрим более подробно методы описания макроконвейерных задач на языке программирования высокого уровня для РВС. На рис. 1 представлена типовая структурная схема макроконвейерной реализации задачи.
Рис. 1. Структурная схема макроконвейерной реализации задачи
Исходные данные каждого такта поступают с генератора G, управляемого интерфейсом I, на конвейерную схему обработки С, а далее в том же темпе - на блок Р, который реализован как макроконвейер, состоящий из множества распараллеленных процедурных блоков, структура которого представлена на рис. 2. Степень распараллеливания процедур определяется временем обработки одного набора данных одной процедурой.
Рис. 2. Структура макроконвейера P
Все секции процедуры объединены общей шиной: входная последовательность подается на вход первой секции и, если она не занята, далее поступает на обработку. Если секция уже обрабатывает порцию данных, входная последовательность без изменений подается на выход, который, в свою очередь, заведен на вход другой секции, где также проверяется занятость текущей секции, и так далее.
Согласованная работа разнородных вычислительных блоков в едином вычислительном контуре обеспечивается использованием на языке высокого уровня COLAMO специальных интерфейсов типа «конвейер-конвейер», «конвейер-процедура» и «процедура-процедура» [4].
Для поддержки процедурных реализаций фрагментов задач в языке COLAMO используется конструкция LocalProc, имеющая следующий формат:
LocalProc <Имя_процедуры>(ш: <Список_входных_параметров>; out:
<Список_выходных_параметров>) >> <Имя_процессора/блока>;
EndLocalProc;
«Имя_процессора/блока» представляет собой имя, на котором выполняется процедура. В качестве процессора могут выступать встроенные в ПЛИС процессорные ядра (например, MicroBlaze), внешние процессорные элементы или реализованные схемотехниками специализированные библиотечные элементы. При этом библиотечный элемент должен удовлетворять следующим требованиям:
♦ достаточная гибкость программирования, то есть возможность выполнения при помощи элемента определенного набора операций проблемной области;
♦ минимальное время обработки одного данного в процедуре;
♦ масштаб ируемость, позволяющая построить эффективный макроконвейер;
♦ рабочая частота, обеспечивающая максимальную производительность
.
IP- . -
манд и могут программироваться средствами языка COLAMO.
Для организации плотного потока данных с генератора (каждый такт) при согласовании конвейерных и процедурных фрагментов необходимо обеспечить ко-
( ),
одной локальной процедурой.
Рассмотрим реализацию макроконвейера средствами языка COLAMO на примере типового алгоритма аутентификации, содержащего последовательно соединенные хэш-функции и симметричный блочный шифр RC4 [5]. При реализации на РВС такой задачи последовательно подключенные хэш-функции реализуются конвейерно, алгоритм RC4 - процедурно. Время работы процедурной реали-RC4 :
Trc 4 = К + tn + *ш +Л,
где 4 - время работы цикла инициализации массива S, tn - время работы цикла начальной перестановки элементов массива S, t,„ - время работы цикла обработки дан, - , . Время работы цикла инициализации определялось по формуле
к = m • п •t,
m - S, n - ,
t - время выполнения одной операции в машинных тактах. При m = 256, пи = 1, tu = 1, получим, что t„ = 256 тактов. Однако использование двухпортовой памяти позволило вдвое сократить время инициализации. Поэтому tu = 128 тактов.
Время работы цикла начальной перестановки элементов массива S определялось по формуле
tn = m • Щ • t,
где nn - количество операций при начальной перестановке элементов массива S. При m = 256, nn = 3, t = 1, получим, что tn = 768 тактов.
Время обработки данных определялось по формуле
L k • пш • t,
n - , k - .
пш = 4, t = 1, получим что tn = 4к тактов.
, : Tc4 = 128 + 768 + 4 • к +Л.
При к = 14 и X = 10 было получено TRC4 = 962 такта машинного времени. Сле-, , конвейера C (см. рис. 1), в макроконвейере P потребовалось установить 962 секции RC4.
COLAMO , -
саны схема генерации входных последовательностей, алгоритм их обработки, ана-, , описание соответствующего криптопреобразования (хэш-функции и процедура RC4). Модули, выполняющие хеширование входной последовательности, естест-
COLAMO. -
LocalProc. -
зов локальных процедур осуществляется внутри кадра в теле цикла, параметры которого определяются количеством необходимых процедурных блоков для обработки входного потока данных без пауз:
Cadr Main;
var data : array uinteger [8:vector,963:vector,4:vector,N:stream] com;
for iv:=0 to 7 do
for s:=0 to N-l do
for j:=0 to 961 do
LocalProc_RC4( data[ iv,j,0,s ], data[ iv,j,1,s ], data[ iv,j,2,s ], data[ iv,j,3,s ], data[ iv,j+1,0,s],data[ iv,j+1,1,s],data[ iv,j+1,2,s],data[ iv,j+1,3,s] );
EndCadr.
В силу того, что второй параметр j коммутационной переменной data являет,
, . 2, транслятором языка COLAMO. Отметим, что на входы первого процедурного блока заводятся выходы конвейерной части вычислительного графа задачи.
Описываемый типовой алгоритм аутентификации был реализован на вычис-« », 4 8
Virtex-6 на каждом, на частоте 220 МГц (рис. 3). На вычислительном блоке удалось разместить 8 макроконвейеров, производительность вычислительного блока при решении задачи составила 1,76х109 наборов данных/с.
Рис. 3. Вычислительный блок «Ригель»
Достигнутое значение производительности позволяет сделать вывод о перспективности использования языка программирования высокого уровня для РВС СОЬЛМО, существенно повышающем скорость разработки макроконвейерных реализаций алгоритмов аутентификации подсистем безопасности сложных ин-
.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Каляев AM, Левин ИМ. Модульно-наращиваемые многопроцессорные системы со структурно-процедурной организацией вычислений. - М.: ООО «Изд-во Янус-К», 2003.
2. . ., . ., . ., . . -
. - 2- . . . / . . . . . - - : - , 2009. - 344 .
3. Гудков В.А., Левин ИМ. Расширение языка высокого уровня COLAMO для программирования реконфигурируемых вычислительных систем на уровне логических ячеек
// . - .: -ние, 2010. - № 12. - С. 10-17.
4. . .
вычислительных систем на основе ПЛИС // Материалы 9-й Международной конференции-семинара «Высокопроизводительные параллельные вычисления на кластерных системах». - Владимир: Изд-во ВГУ, 2009. - С. 329-331.
5. . . , , -
ке Си. - М.: ТРИУМФ, 2003 - 816 с.
Статью рекомендовал к опубликованию д.т.н., профессор Я.Е. Ромм.
Коваленко Алексей Геннадьевич - Научно-исследовательский институт многопроцессорных вычислительных систем им. А.В. Каляева Южного федерального университета; e-mail: k.a.g@bk.ru; 347928, г. Таганрог, ул. Чехова, 2, тел.: 88634315491; младший научный со.
Kovalenko Alexey Genad’evich - Scientific-Research Institute Multiprocessing Computing Systems after Kalyaev of South Federal University; e-mail: k.a.g@bk.ru; 2, Chekhov street, Taganrog, 347928, Russia; phone: +78634315491; research assistant.
УДК 004.421.6
E.E. Семерникова
РАЗРАБОТКА МАСШТАБИРУЕМЫХ РЕАЛИЗАЦИЙ АЛГОРИТМОВ СИМВОЛЬНОЙ ОБРАБОТКИ ДЛЯ РЕКОНФИГУРИРУЕМЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ*
Рассмотрена масштабируемая реализация алгоритма на реконфигурируемой вычислительной системе с динамически перестраиваемой архитектурой типовых, для задач аутен-, . -фического хеширования SHA1 на языке высокого уровня с неявным описанием параллелизма COLAMO. Полученная параллельная программа обладает свойством переносимости с одной реконфигурируемой вычислительной системы на другую, рассмотрены способы ее масшта-, .
; ; - ; COLAMO;
распараллеливание по конвейерам.
E.E. Semernikova
DEVELOPMENT OF SCALABLE REALISATIONS SYMBOLIC PROCESSING ALGORITHMS FOR RECONFIGURABLE COMPUTER SYSTEMS
The paper describes scalable realization of typical symbolic processing algorithms from authentication tasks for reconfigurable computer system with dynamically reconfigurable architecture. The author suggests description of cryptographic hashing algorithm SHA1 realization with
*
Исследования выполнены при финансовой поддержке Министерства образования и науки РФ, госконтракт № 14.527.12.0004 от 03 октября 2011 г.