Научная статья на тему 'Анализ подходов к реализации на FPGA операций умножения в поле Галуа'

Анализ подходов к реализации на FPGA операций умножения в поле Галуа Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
432
79
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
УМНОЖЕНИЕ В ПОЛЕ ГАЛУА / СПЕЦИАЛИЗИРОВАННЫЙ ПРОЦЕССОР / FPGA / MULTIPLICATION IN THE GALOIS FIELD / SPECIALIZED PROCESSOR

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Листопад Е.В.

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

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

Analysis of possibilities of FPGA-implementation for multiplication operations in the Galois field

The variants of hardware implementations of multiplication operations in the Galois field are considered for efficient solution of the tasks of constructing specialized processors based on FPGA, meeting strict requirements for speed and nominal value of the working clock frequency. Approaches to the hardware implementation of such operations demonstrating various qualitative indicators are proposed.

Текст научной работы на тему «Анализ подходов к реализации на FPGA операций умножения в поле Галуа»

Доклады БГУИР

Doklady BGUIR

2018, № 3 (113) 2018, No. 3 (113)

УДК 004.75,004.272

АНАЛИЗ ПОДХОДОВ К РЕАЛИЗАЦИИ НА FPGA ОПЕРАЦИЙ УМНОЖЕНИЯ В ПОЛЕ ГАЛУА

Е В. ЛИСТОПАД

Белорусский государственный университет информатики и радиоэлектроники, Республика Беларусь

Поступила в редакцию 5 октября 2017

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

Ключевые слова: умножение в поле Галуа, специализированный процессор, FPGA.

Abstract. The variants of hardware implementations of multiplication operations in the Galois field are considered for efficient solution of the tasks of constructing specialized processors based on FPGA, meeting strict requirements for speed and nominal value of the working clock frequency. Approaches to the hardware implementation of such operations demonstrating various qualitative indicators are proposed.

Keywords: multiplication in the Galois field, specialized processor, FPGA.

Doklady BGUIR. 2018, Vol. 113, ]Чо. 3, pp. 5-12

Analysis of possibilities of FPGA-implementation for multiplication operations in the Galois field E.V. Listopad

Введение

Для решения задачи прототипирования таких классов цифровых устройств, как «встраиваемая система» [1], «система на кристалле» [2], широкое распространение получили IP-ядра - готовые блоки, применяемые для проектирования микросхем и представленные на уровне абстрактного описания [3]. При построении IP-ядер, решающих задачи цифровой обработки сигналов, зачастую возникает необходимость эффективной реализации арифметических операций над элементами поля Галуа. Особый интерес представляет операция умножения в поле, как наиболее требовательная к аппаратным ресурсам FPGA и лежащая в основе более сложных операций в поле. Достоинством любых вычислений в поле Галуа является то, что они допускают параллельную реализацию [8]. Это позволяет рассматривать их как адекватные архитектуре ПЛИС типа FPGA.

Известны различные архитектуры и методы построения универсальных аппаратных умножителей элементов поля, в том числе на базе ПЛИС типа FPGA [4-6]. В данной работе показано, как, применяя известные методы и используя различные варианты аппаратных реализаций операции умножения в поле Галуа, эффективно решать задачи построения цифровых устройств на архитектуре ПЛИС/FPGA.

Исходные данные

Поля Галуа описываются двумя основными параметрами: m и p [7]. Параметр m указывает число двоичных разрядов, использующихся для двоичного представления символа

множества, а также определяет количество элементов множества как 2т . Таким образом, в поле GF(24), где т = 4, содержится всего 16 элементов, и для двоичного представления каждого из них необходимо четыре двоичных разряда. Параметр р (генерирующий полином) указывает порядок, в котором элементы поля Галуа следуют друг за другом. Например,

генерирующий полином р(х) для поля GF(24) может быть следующим: р(х) = 1 + х3 + х4 . Часто используется представление полинома в виде двоичного числа с разрядностью т +1. В данном случае р = 25 в десятичной системе или 11001 в двоичной,

или 1 • 24 +1 • 23 + 0 • 22 + 0 • 21 +1 • 20. Если корень полинома обозначить через а, то а4 = а3 +1. Элементы поля GF (24) приведены в табл. 1 в трех представлениях:

1) степенное представление, в котором нулевой элемент равен 0, первый равен 1, второй равен а и т. д.;

2) полиномиальное представление (в виде многочлена): х = k0 1 + k • а + k2 • а2 + kз • а3, где k0,k k kз ={0,1} (старшие разряды справа);

3) бинарное представление или двоичная форма (старшие разряды справа).

Таблица 1. Представление поля Галуа для т = 4 и р = 25

Степенное Полиномиальное Бинарное

представление представление представление

0 0 0000

1 1 1000

а а 0100

2 а 2 а 0010

3 а 3 а 0001

4 а 3 1 + а 1001

5 а 3 1 + а + а 1101

6 а 23 1 + а + а + а 1111

7 а 2 1 + а + а 1110

8 а 2 3 а + а + а 0111

9 а 2 1 + а 1010

10 а 3 а + а 0101

11 а 23 1 + а + а 1011

12 а 1 + а 1100

13 а 2 а + а 0110

14 а 2 3 а + а 0011

При реализации аппаратных умножителей часто применяется полиномиальное представление элементов поля [5, 6]. Операция умножения элементов поля Галуа выполняется как умножение двух определенных многочленов по модулю третьего многочлена (по которому построены элементы поля).

Реализация аппаратного умножения за 16 шагов

Рассмотрим поле с параметрами т = 16 и р = 126977 , в котором опишем особенности аппаратной реализации операций умножения. Как видно из параметров поля, операнды

для произведения являются 16-битными. Первый подход предусматривает умножение за 16 шагов. При этом на каждом шаге выполняется умножение на 1 бит операнда и осуществляется приведение по модулю полинома. На рис. 1 приведена универсальная структура 1Р-ядра.

MUX

INI OUT1

MUL2 IM2 OUT2

-► IM3

IM4

Блок умножения на пбит с приведением по модулю полинома

Блок аккумулирования

REG

IM OUT

- CLK

MULRES

Рис. 1. Универсальная структура 1Р-ядра, выполняющего умножение за 16 шагов

Были разработаны 3 экспериментальные реализации 1Р-ядер для данного подхода. Реализация 1 выполняет умножение за 16 тактов, при этом за 1 такт выполняется 1 шаг умножения с приведением (на рис. 1 параметр п принять равным 1). Структурная схема 1Р-ядра для реализации 1 показана на рис. 2.

CLK -RESET-MULE N-

COUNTER (Control LK Unit)

RESET MULEN

REG

CLK

RESET OUT

MULCOUNT

MUX1 REG_X MUL_1 ACC

CLK RESET OUT MULEM 16 CLK

MULCOUNT MULI OUT X 16.

16L ^ Y(0> -MULRES

r*

MUX2 -► - REG_Y CLK RESET OUT 16. ^ SH_1 Y

1S- fe MULCOUNT 16 MULEN OUT -

Г* Y

16

16

IP-Core

- MULREADY

Рис. 2. Структура IP-ядра, выполняющего умножение за 16 тактов

В приведенной реализации в качестве устройства управления выступает четырехразрядный счетчик (COUNTER), по сигналам которого выполняется мультиплексирование входных и внутренних значений множителей MUL1 и MUL2, начальная инициализация регистров X и Y, а также формирование сигнала MULREADY, свидетельствующего о готовности результата. Сам процесс умножения выполняется следующим образом.

Вначале происходит загрузка входных значений MUL1 и MUL2 в регистры X и Y соответственно. Далее в блоке MUL_1 выполняется умножение значения регистра X на очередной бит (арифметический сдвиг) за такт с одновременным приведением по модулю полинома (наложение маски). Результат этой операции суммируется с накоплением в блоке ACC, если соответствующий бит регистра Y равен 1, либо игнорируется, если указанный бит равен 0. Далее выполняется арифметический сдвиг значения в регистре Y, чтобы следующий

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

Данное IP-ядро было синтезировано средствами Xilinx ISE на FPGA Spartan 6 (XC6SL75). В результате чего было задействовано 17 слайсов на кристалле и достигнута тактовая частота 390 МГц. Производительность данной реализации составила 371,9 Мбит/с.

Реализация 2 выполняет умножение за 8 тактов, при этом за 1 такт выполняется 2 шага умножения с приведением и анализируется 2 бита операнда (на рис. 1 параметр n принять равным 2). IP-ядро реализации 2 также было синтезировано средствами Xilinx ISE на FPGA Spartan 6 (XC6SL75). В результате чего было задействовано 24 слайса на кристалле и достигнута тактовая частота 291 МГц. Производительность данной реализации составила 555,0 Мбит/с. Несмотря на меньшую тактовую частоту, производительность реализации оказалась выше за счет уменьшения требуемых тактов процессорного времени с 16 до 8. Количество требуемых аппаратных ресурсов кристалла возросло до 24 слайсов в связи с использованием в реализации дополнительного блока умножения и более сложной структуры блока накопления ACC.

Реализация 3 выполняет умножение за 4 такта, при этом за 1 такт выполняется 4 шага умножения с приведением и анализируется 4 бита операнда (на рис. 1 параметр n принять равным 4). В результате синтеза IP-ядра реализации 3 было задействовано 55 слайсов на кристалле и достигнута тактовая частота 204 МГц. Производительность данной реализации составила 778,2 Мбит/с. Несмотря на меньшую тактовую частоту, производительность реализации оказалась выше чем у предыдущих за счет уменьшения требуемых тактов процессорного времени до 4. Количество требуемых аппаратных ресурсов кристалла возросло до 55 слайсов в связи с использованием в реализации дополнительных блоков умножения и более сложной структуры блока накопления ACC.

Реализация аппаратного умножения за 2 шага

Если главной особенностью первого подхода являлась реализация операции приведения по модулю полинома после каждой операции умножения на очередной бит, то во втором подходе операция приведения по модулю полинома выполняется после всех операций умножения на бит (т. е. после 16 операций). Таким образом, второй подход предусматривает умножение за 2 шага (рис. 3): непосредственно умножение 16-битных операндов с получением 32-битного промежуточного результата и приведение его по модулю полинома к 16-битному результату.

MUL1

MUL2

Рис. 3. Универсальная структура IP-ядра, выполняющего умножение за 2 шага

Реализация 4 выполняет полное умножение за 1 такт, при этом под полным умножением будем понимать умножение арифметическое с приведением по модулю полинома. Структурная схема IP-ядра для реализации 4 показана на рис. 4. В приведенной реализации вычисления осуществляются двумя асинхронными блоками (умножения и приведения по модулю полинома). Известно, что при 16-разрядных операндах арифметическое умножение является 32-разрядным. При этом для обеспечения данной разрядности в блоке умножения присутствуют 2 блока, идентичные по структуре: один для вычисления младших 16 бит умножения, другой - для старших. Каждый из таких блоков представляет собой 16 логических функций, каждая из которых вычисляет один бит произведения. Следует отметить, что указанные логические функции выполняют элементарные логические операции (AND, XOR), однако имеют различное число входов (от 2 до 32).

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

В результате синтеза данного 1Р-ядра было задействовано 50 слайсов на кристалле и достигнута тактовая частота 184 МГц. Производительность данной реализации составила 2807,6 Мбит/с. Несмотря на меньшую тактовую частоту, производительность реализации оказалась выше чем у предыдущих за счет выполнения всех вычислений за 1 такт процессорного времени.

Реализация 5 выполняет полное умножение за 2 такта. При этом на первом такте выполняется арифметическое 32-разрядное умножение, на втором - приведение по модулю полинома. Структурная схема 1Р-ядра для реализации 5 показана на рис. 5.

Блок приведения по модулю оит полинома

N

RESET REG OUT CLK

■ MULRES

Рис. 4. Структура IP-ядра, выполняющего умножение за 1 такт

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

Рис. 5. Структура 1Р-ядра, выполняющего умножение за 2 такта

В приведенной реализации вычисления осуществляются теми же блоками, что и в реализации 4. Структура 1Р-ядра данной реализации предусматривает наличие дополнительных регистров между основными вычислительными блоками. Такая структура обеспечивает получение произведения в поле Галуа за 2 такта процессорного времени и снижение сложности логических структур в данной схеме за счет сокращения критического пути схемы при ее разделении регистрами.

В результате синтеза 1Р-ядра реализации 5 было задействовано 46 слайсов на кристалле и достигнута тактовая частота 221 МГц. Производительность данной реализации составила 1686,1 Мбит/с. Несмотря на большую тактовую частоту, производительность реализации оказалась ниже чем у предыдущей за счет выполнения вычислений за 2 такта процессорного времени.

Реализация аппаратного умножения с оптимизацией под кристалл

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

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

мин ■

MUL2 ■

1-й 2-й

уровень REG уровень

логики логики

Блок умножения младшей части

IN1 1-Й 2-й

IN2 уровень REG уровень

логики логики

Блок умножения

Блок умножения старшей части

Блок

приведения

по модулю

полинома

OUT

IN

RESET REG OUT

-MULRES

Рис. 6. Структура усовершенствованного IP-ядра, выполняющего умножение за 2 такта

Таким образом, было выполнено усовершенствование предыдущей реализации, учитывающее природу строения кристалла ПЛИС (6-входовые элементы LUT кристалла Xilinx Spartan 6). В реализации была применена двухступенчатая схема умножения. На первой ступени логические операции были описаны в виде 6-входовых логических элементов, которым при синтезе были поставлены в соответствие 6-входовые элементы LUT на кристалле. На второй ступени описаны логические операции над результатами первой ступени вычислений и реализовано приведение по модулю полинома. В результате синтеза IP-ядра реализации 6 было задействовано 48 слайсов на кристалле и достигнута тактовая частота 279 МГц. Производительность данной реализации составила 2128,6 Мбит/с. Следует отметить, что данная реализация обеспечила более высокую тактовую частоту и производительность, чем реализация 5, что свидетельствует об эффективности предложенного решения. При этом увеличение данных показателей практически не повлияло на количественные характеристики используемых ресурсов кристалла (слайсов).

Результаты исследований

В ходе исследований были выполнены аппаратные реализации операций умножения в поле Галуа с параметрами m = 16 и p = 126977 с применением одного из двух подходов. Первый подход предусматривает реализацию операции приведения по модулю полинома после каждой операции умножения на очередной бит. С применением данного подхода были выполнены 3 реализации, характеристики которых приведены в табл. 2.

Таблица 2. Характеристики реализаций, построенных с применением умножения за 16 шагов

Вариант Количество тактов Ресурсы FPGA, Slices Частота, МГц Производительность, Мбит/с

Реализация 1 16 17 390 371,9

Реализация 2 8 24 291 555,0

Реализация 3 4 55 204 778,2

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

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

Bариант Количество тактов Ресурсы FPGA, Slices Частота, ЫГц Производительность, Mбит/c

Реализация 4 1 50 1S4 2S07,6

Реализация 5 2 46 221 16S6,1

Реализация 6 2 4S 279 212S,6

B реализациях, построенных с применением второго подхода, используется 32-разрядная арифметика для выполнения арифметического умножения 16-разрядных операндов. Данная группа реализаций демонстрирует относительно низкую требовательность к ресурсам кристалла (сопоставимую с реализациями первой группы) и довольно высокую производительность, достигаемую, в том числе, за счет выполнения вычислительных операций за малое количество (1-2) тактов процессорного времени.

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

Заключение

Рассмотрены особенности аппаратной реализации операций умножения элементов поля Галуа. Предложены подходы к эффективной реализации данных операций на FPGA. С применением каждого из подходов было выполнено по три экспериментальные аппаратные реализации операций умножения в поле Галуа с целью оптимизации скорости их вычисления. Описаны принципы построения каждой из реализаций. Основные усилия при оптимизации были сконцентрированы на уменьшении количества тактов процессорного времени, требуемых для получения результата, и повышении рабочей тактовой частоты аппаратных реализаций за счет уменьшения критического пути схемы различными способами. Дана оценка результатов тестирования как для каждой отдельной реализации, так и для основных предложенных подходов. Описаны достоинства и недостатки отдельных реализаций.

Список литературы

1. Зотов BÄ. Проектирование встраиваемых микропроцессорных систем на основе ПЛИС фирмы Xilinx. M.: Горячая линия - Телеком, 2006. 520 с.

2. Немудров B., Mартин Г. Система на кристалле. Проектирование и развитие. M.: Техносфера, 2004. 2016 с.

3. Петровский Ал.А., Станкевич A.B., Петровский A.A. Быстрое проектирование систем мультимедиа от прототипа. Mинск: Бестпринт, 2011. 410 с.

4. Захаров B.M., Нурутдинов Ш.Р., Шалагин CB. Аппаратная реализация умножения элементов поля Галуа на программируемых микросхемах архитектуры FPGA // Bест. КГТУ им. А.Н. Туполева. 2001. № 1. С. 36-41.

5. Reyhani M.A., Hasan M.A. Low Complexity Bit Parallel Architectures for Polynomial Basis Multiplication over GF(2m) // IEEE Transaction on Computers. 2004. Vol. 63. № S.

6. José L.I. Low Latency GF(2m) Polynomial Basis Multiplier // IEEE Transaction on Circuits and Systems. 2011. Vol. 5S. № 5.

7. Поляков A., Mехди Т., Незхат Т. Библиотека VERILOG описаний арифметических операций в поле Галуа //Современная электроника. 2007. № 5. С. 46-49.

S. Шалагин CB. Реализация цифровых устройств в архитектуре ПЛИС/FPGA при использовании распределенных вычислений в полях Галуа: моногр. Казань: Изд-во КНИТУ-КАИ, 2016. 22S с.

References

1. Zotov V.Ju. Proektirovanie vstraivaemyh mikroprocessornyh sistem na osnove PLIS firmy Xilinx. M.: Gorjachaja linija - Telekom, 2006. 520 s. (in Russ.)

2. Nemudrov V., Martin G. Sistema na kristalle. Proektirovanie i razvitie. M.: Tehnosfera, 2004. 2016 s. (in Russ.)

3. Petrovskij Al.A., Stankevich A.V., Petrovskij A.A. Bystroe proektirovanie sistem multimedia ot prototipa. Minsk: Bestprint, 2011. 410 s. (in Russ.)

4. Zaharov V.M., Nurutdinov Sh.R., Shalagin S.V. Apparatnaja realizacija umnozhenija jelementov polja Galua na programmiruemyh mikroshemah arhitektury FPGA // Vest. KGTU im. A.N. Tupoleva. 2001. № 1. S. 36-41. (in Russ.)

5. Reyhani M.A., Hasan M.A. Low Complexity Bit Parallel Architectures for Polynomial Basis Multiplication over GF(2m) // IEEE Transaction on Computers. 2004. Vol. 63. № 8.

6. José L.I. Low Latency GF(2m) Polynomial Basis Multiplier // IEEE Transaction on Circuits and Systems. 2011. Vol. 58. № 5.

7. Poljakov A., Mehdi T., Nezhat T. Biblioteka VERILOG opisanij arifmeticheskih operacij v pole Galua // Sovremennaja jelektronika. 2007. № 5. S. 46-49. (in Russ.)

8. Shalagin S.V. Realizacija cifrovyh ustrojstv v arhitekture PLIS/FPGA pri ispol'zovanii raspredelennyh vychislenij v poljah Galua: monogr. Kazan': Izd-vo KNITU-KAI, 2016. 228 s. (in Russ.)

Сведения об авторе

Листопад Е.В., аспирант кафедры электронных вычислительных средств Белорусского государственного университета информатики и радиоэлектроники.

Information about the author

Listopad E.V., PG student of the computer engineering department of Belarusian state university of informatics and radioelectronics.

Адрес для корреспонденции

220013, Республика Беларусь,

г. Минск, ул. П. Бровки, 6,

Белорусский государственный

университет информатики и радиоэлектроники

тел. +375-17-293-89-46;

e-mail: listopadev@bsuir.by

Листопад Евгений Валерьевич

Address for correspondence

220013, Republic of Belarus, Minsk, P. Brovka st., 6, Belarusian state university of informatics and radioelectronics tel. +375-17-293-89-46; e-mail: listopadev@bsuir.by Listopad Evgeni Valerievich

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