Научная статья на тему 'ДИНАМИЧЕСКАЯ РЕКОНФИГУРАЦИЯ ПЛИС С ИСПОЛЬЗОВАНИЕМ СЖАТЫХ БИТОВЫХ ПОТОКОВ'

ДИНАМИЧЕСКАЯ РЕКОНФИГУРАЦИЯ ПЛИС С ИСПОЛЬЗОВАНИЕМ СЖАТЫХ БИТОВЫХ ПОТОКОВ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
66
11
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СНК (СИСТЕМА-НА-КРИСТАЛЛЕ) / ДИНАМИЧЕСКАЯ РЕКОНФИГУРАЦИЯ / КОНФИГУРАЦИОННЫЙ БИТОВЫЙ ПОТОК / ИЕРАРХИЧЕСКОЕ СЖАТИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шалтырев Владимир Алексеевич, Шалтырев Константин Алексеевич, Шагурин Игорь Иванович

Предложен алгоритм компрессии-декомпрессии конфигурационных битовых потоков ПЛИС, обеспечивающий при относительно несложной аппаратной реализации степени компрессии, сравнимые с современными программными архиваторами. Использование данного алгоритма позволяет хранить конфигурационные битовые потоки в блочной памяти ПЛИС и сокращает время их выборки в 2-10 раз. В результате обеспечивается возможность динамической реконфигурации ПЛИС, что позволяет реализовать на ее основе системы, выполняющие различные алгоритмы обработки данных.The compression-decompression algorithm for FPGA bitstreams, providing with the relatively easy hardware the compression level compared to the up-to-date software archivators, has been described. This algorithm application allows storing the compressed bitstreams in the FPGA block memory and provides the 2 - 10x speedup for the bitstream loading. As a result, the possibility of the FPGA dynamic reconfiguration is provided, which enables to implement on its basis the systems executing various data processing algorithms.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Шалтырев Владимир Алексеевич, Шалтырев Константин Алексеевич, Шагурин Игорь Иванович

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

Текст научной работы на тему «ДИНАМИЧЕСКАЯ РЕКОНФИГУРАЦИЯ ПЛИС С ИСПОЛЬЗОВАНИЕМ СЖАТЫХ БИТОВЫХ ПОТОКОВ»

СХЕМОТЕХНИКА И ПРОЕКТИРОВАНИЕ

УДК 004.021

Динамическая реконфигурация ПЛИС с использованием

сжатых битовых потоков

В.А.Шалтырев, К.А.Шалтырев, И.И.Шагурин

Московский инженерно-физический институт (государственный университет)

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

Современные сложнофункциональные ПЛИС типа FPGA часто используются в качестве элементной базы для реализации систем-на-кристалле (СнК). Такие системы-на-кристалле обычно содержат процессорное ядро, представляющее собой синтезируемый (soft) или аппаратный (hard) IP-блок, реализованный на кристалле ПЛИС, специализированные блоки обработки данных, разработанные пользователем, и набор периферийных модулей (таймеры, АЦП, интерфейсные блоки и другие), которые могут формироваться как на основе готовых IP-блоков, так и проектироваться специально для конкретного приложения [1]. В ряде случаев специализированные блоки, включаемые пользователем в СнК, выполняют достаточно сложные алгоритмы обработки данных, выполняя функции сопроцессоров (рис.1,а). Например, СнК, предназначенные для передачи голоса по цифровым каналам, должны обеспечивать возможность использования различных аудиокодеков. Для реализации протоколов семейства 802.11 (беспроводная цифровая связь по технологии WiFi) СнК должна поддерживать альтернативные стандарты шифрования WEP, WPA, WPA2 и ряд других при наличии в системе нескольких специализированных блоков-сопроцессоров. Такой вариант реализации требует использования ПЛИС значительного объема, что приводит к повышению стоимости и снижению производительности СнК.

Поскольку в реальных условиях эксплуатации СнК обычно используется один из сопроцессоров, альтернативным является вариант использования сопроцессора, который в процессе эксплуатации системы оперативно конфигурируется для выполнения требуемого алгоритма (рис.1,б). Такой метод носит название динамической реконфигурации ПЛИС. Семейства ПЛИС Spartan-3A(N), Virtex-IIPro, Virtex-4, Virtex-5 фирмы Xilinx допускают частичную реконфигурацию кристаллов без использования внешних средств. Характерной особенностью этих кристаллов является наличие интерфейса Se-lectMAP/ICAP, позволяющего проводить конфигурацию части ПЛИС без воздействия на остальные логические ресурсы [2]. Пропускная способность этого параллельного

© В.А.Шалтырев, К.А.Шалтырев, И.И.Шагурин, 2009

интерфейса для кристаллов семейств БраЛап-ЗА или У1г1ех-П достигает 66 Мбайт/с, в то время как аналогичный параметр для 1ТАО составляет около 2 Мбит/с [3]. Поскольку объем конфигурационной памяти для современных ПЛИС составляет от 500 кбит до 83 Мбит, время реконфигурации для самых сложных кристаллов не превышает 200 мс. При реконфигурации части кристалла требуемое время соответственно сокращается.

Генерация конфигурационных битовых потоков (КБП) обычно проводится с использованием стандартной утилиты BITGEN из состава САПР Xilinx ISE. Размещение на кристалле IP-блоков и планирование реконфигурации производится с помощью САПР Xilinx Plan Ahead, которая позволяет выделить на кристалле области, где планируется размещение взаимозаменяемых IP-ядер и создать необходимые КБП [4].

Для выполнения реконфигурации требуется ряд дополнительных блоков: память конфигурационных битовых потоков, интерфейс реконфигурации ПЛИС (см. рис.1,б). Поэтому экономия ресурсов ПЛИС достигается только в том случае, если их сложность оказывается меньше, чем сложность формируемых с их помощью сопроцессоров. Для динамической реконфигурации все альтернативные КБП необходимо хранить во внутренней памяти. Возникает задача уменьшения объема конфигурационных данных, так как внутрикристальная блочная память ПЛИС (BRAM) является одним из наиболее дефицитных ресурсов кристалла. В настоящей статье рассматриваются возможности компрессии КБП, позволяющие эффективно решить данную проблему.

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

Словарные алгоритмы Лемпела-Зива (LZx) являются асимметричными по скорости, причем декомпрессия выполняется на порядок быстрее компрессии. Алгоритмы LZ78 и LZW дают большую степень компрессии по сравнению с LZ77, используемым в контроллерах System ACE фирмы Xilinx, но имеют серьезный недостаток: использование статического словаря приводит к существенному усложнению аппаратной части декомпрессора [5]. В работе показано, что алгоритм LZSS, использующий разделение данных на сжимаемые и несжимаемые, является особенно эффективным. Существен-

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

Методики, основанные на схожести альтернативных КБП [6, 7], с выделением нулевых последовательностей оказываются наиболее эффективными: в отдельных случаях они позволяют получить десятикратное уменьшение объема КБП [7]. Недостатком этих методов является достаточно сложная реализация соответствующих аппаратных декомпрессоров. Обычно задача декомпрессии КБП в этом случае возлагается на процессорное ядро системы, которое при данной операции должно прерывать выполнение других процедур. Декомпрессия КБП производится средствами СнК, поэтому актуальной задачей является аппаратная реализация декомпрессии с минимальным использованием внутренних ресурсов ПЛИС.

Структура и энтропия конфигурационных битовых потоков. Для дальнейшего исследования выбран набор тестовых IP-блоков из библиотеки OpenCores [8], для которых проведено размещение на кристалле ПЛИС Virtex-4 (XC4VLX25-SF363-10) с минимизацией занимаемой площади. Номенклатура IP-блоков этого тестового набора приведена в табл.1. Доля использования ресурсов кристалла целевой ПЛИС оценивается как среднее арифметическое между долями использования LUT и триггеров (блоки памяти BRAM и цифровой обработки сигналов DSP не учитываются).

Таблица 1

Набор тестовых IP-блоков и результаты анализа их КБП

Номер теста IP-ядро Использование ресурсов кристалла, % Размер КБП, бит Отношение количества нулей/единиц Максимальная длина нулевой последовательности, бит

1 ssi_pcm 0,30 316608 62,82 5252

2 mini uart 0,39 256800 47,53 6562

3 bin2bcd 0,40 251808 47,33 6562

4 gpio8_wb 0,57 241472 29,60 5252

5 i2c 0,84 235040 26,36 5252

6 ps2 1,42 472064 27,16 5252

7 dct8 2,30 491008 23,70 5892

8 spi 2,48 507296 16,19 2627

9 uart16550 2,98 647552 19,10 2217

10 basic_rsa 3,16 779744 19,34 1973

11 bt_correlator 3,57 693024 15,54 7208

12 cfft1024x12 4,67 654784 15,64 5252

13 cordic16 6,89 996096 17,99 3286

14 sha256 10,11 1317408 10,52 3293

15 dct 15,85 1956928 10,73 6562

16 jpeg_encoder 17,25 2034400 9,91 5892

17 mini_aes 18,29 2386816 9,30 5252

18 sha512 19,95 2572416 9,69 1973

19 fpu 26,05 2912224 9,45 2627

20 jpeg_decoder 45,58 4390144 7,08 5253

0,25

§ 0,2

! w в и

Й и 0,15

I» *

Я 2 5 g 0,1

к

к

о «

0,05

10 15 20 25 30 35 Длина последовательности к, бит

40

Рис.2. Распределение вероятностей появления символов выбранного алфавита (на примере теста № 20)

Анализ КБП, полученных при синтезе этих IP-блоков, показывает, что в них присутствуют последовательности нулевых битов достаточно большой длины (до 7000 бит), а количество единичных битов очень мало по сравнению с количеством нулевых. При этом размер полученных КБП практически линейно зависит от сложности синтезируемого IP-блока.

Для оценки энтропии в соответствии с теорией Шэннона использовали информационный алфавит, состоящий из последовательностей нулей различной длины, заканчивающихся единицей, т. е. представляющий собой набор последовательностей вида {1,01,001,0001,...}. Такой алфавит позволяет учесть наличие в КБП нулевых последовательностей большой длины. Анализ тестовых КБП показывает, что доля нулевых последовательностей длины к убывает с ростом к по закону, близкому к экспоненциальному (рис.2).

На основании проведенного анализа КБП было вычислено значение энтропии [9], что позволило оценить информационную емкость одного символа:

N

H = logm p(ai) • p(ai), где p(ai) - вероятности появления соответствующих симво-

i=1

лов алфавита в сообщении; m - основание системы счисления; N - полное количество символов алфавита. Тогда объем информации, содержащийся в данном КБП, может быть вычислен как Кгеор = H • M , где M - количество символов алфавита в КБП. При

этом соотношение Стеор =

Уи

Ут

(где Уисх - размер исходного файла КБП) позволяет оце-

теор

нить возможную степень компрессии (табл.2). Для сравнения в табл.2 приведены степени компрессии исходных файлов, полученные с использованием современных архиваторов: RAR - с максимальной степенью компрессии, 7Z - в режиме PPMd/ULTRA с минимальной длиной слова. Проведенная оценка и степени компрессии стандартных архиваторов достаточно близки: расхождение между тремя величинами на всем объеме данных не превышает 7%.

Таблица 2

Энтропия и степень компрессии для КБП тестового набора IP-ядер

Номер теста Энтропия, бит С Степень компрессии (RAR) Степень компрессии (7Z) C в, бит L

1 4,83 13,33 12,82 12,25 10,685 4 4

2 4,55 10,74 10,22 9,93 8,78 4 4

3 4,56 10,678 10,62 10,17 8,62 4 4

4 4,67 6,579 6,60 6,53 5,4 4 4

5 4,459 6,16 6,03 6,08 5,079 4 4

6 4,409 6,41 6,55 6,50 5,34 4 4

7 4,389 5,64 5,82 5,83 4,757 4 4

Окончание табл.2

Номер теста Энтропия, бит С Степень компрессии (RAR) Степень компрессии (72) C ^эксп в, бит L

8 4,36 3,94 3,89 4,09 3,26 4 4

9 4,397 4,585 4,63 4,63 3,79 4 4

10 4,43 4,6 4,86 4,85 3,807 4 4

11 4,35 3,81 3,92 3,90 3,166 4 4

12 4,24 3,928 4,40 4,41 3,34 4 4

13 4,375 4,34 5,03 5,00 3,72 4 4

14 4,37 2,63 2,75 2,78 2,199 4 2

15 4,22 2,779 2,84 3,02 2,34 4 3

16 4,23 2,578 2,62 2,79 2,17 4 2

17 4,216 2,44 2,50 2,60 2,06 4 2

18 4,3 2,486 2,50 2,62 2,07 4 2

19 4,329 2,41 2,35 2,47 2,037 3 2

20 4,019 2,01 2,00 2,12 1,68 3 2

Алгоритм компрессии КБП. Алгоритм компрессии должен удовлетворять следующим требованиям:

1) используется блочная обработка (обеспечивается обработка небольших массивов данных, так как объем доступной оперативной памяти минимален);

2) производится компрессия-декомпрессия без потери данных;

3) обеспечивается достаточно простая процедура декомпрессии, которая должна реализовываться аппаратными средствами внутренней структуры ПЛИС.

Для компрессии битовых последовательностей подобной структуры (содержащих малое количество ненулевых битов) предлагается алгоритм, использующий метод иерархического сжатия битовых векторов [10]. Блок-схема реализации предлагаемого алгоритма компрессии приведена на рис.3.

Рис.3. Блок-схема алгоритма компрессии

Параметрами алгоритма являются максимальное количество уровней компрессии Ьmax и размер блока В. Исходная последовательность битов разбивается на блоки /] длиной В бит. Если все биты блока с номером г равны 0, то бит с номером г в выходной последовательности битов + 1] равен 0 (в противном случае он равен 1). Процедура повторяется рекурсивно до достижения заданного значения £шах. Результатом компрессии является конкатенация всех = 0,...,£шах] с выброшенными «нулевыми» блоками (последовательность нулей длиной В в £[£] описывается одним нулевым битом в + 1]).

Результаты, полученные с применением данного алгоритма компрессии с фиксированной длиной блока В (постоянной для всех уровней компрессии), приведены в табл.2 и на рис.4. Их анализ позволяет сделать следующие выводы:

1) степень компрессии возрастает при увеличении количества уровней компрессии Ь и имеет максимум в области Ь = 2,...,4;

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

2) степень компрессии для Ь = 2,...,5 имеет максимум в области В = 3,...,4;

3) в среднем по набору тестов достигаемая степень компрессии Сэксп (см.табл.2) составляет 83% от расчетного значения.

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

Сравнение степеней компрессии КБП для 1Р-ядер из тестового набора показывает, что использованный алгоритм блочного сжатия позволяет добиться степени компрессии, которая всего на 20% меньше степеней компрессии современных архиваторов (рис.5).

4,5

3,5

3 . 5 6 7

Длина блока В, бит Рис.4. Зависимость степени компрессии от длины блока и количества уровней компрессии (на примере теста № 7)

5

4

3

2

'теор нИЛИ

И 77

■ Сэксп

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Тесты

Рис.5. Степень компрессии КБП 1Р-ядер из тестового набора и ее теоретическая оценка

Алгоритм декомпрессии и его аппаратная реализация. Алгоритм декомпрессии, блок-схема которого приведена на рис.6, предполагает простой синтаксический разбор полученной строки £ с выделением битов или блоков для всех уровней от Ь = 0 до Ьтах и формирование выходной строки 8*. Алгоритм выполняет блочную обработку: одновременно обрабатывается только одно входное слово, выбранное из памяти. В зависимости от организации памяти, которая используется для хранения битовых потоков, конфигурирующих ПЛИС, входное слово может иметь различную разрядность (обычно 8, 16 или 32 бит). Для аппаратной реализации декомпрессии в соответствии с данным алгоритмом требуются относительно небольшие ресурсы ПЛИС (табл.3). Максимальная тактовая частота декомпрессора определяется сложностью комбинационной схемы, которая в случае 8-битного входного слова значительно упрощается.

Таблица 3

Параметры аппаратных декомпрессоров для ПЛИС У1г1ех-4

Размер входного слова, бит Количество шт Количество триггеров Максимальная тактовая частота блока, МГц

8 179 36 92

32 247 67 62

Выходные данные генерируются декомпрессором с частотой, которая в случае нулевых последовательностей равна тактовой частоте системы, а в случае ненулевых блоков в восемь раз меньше тактовой частоты. В результате для входного слова длиной 32 бита результаты декомпрессии поступают со скоростью от 7,8 до 62 Мбайт/с. Для 8-битных слов эта скорость составляет от 11,5 до 92 Мбайт/с. В данном случае требуется

ввести ограничение тактовой частоты системы, так как это значение не должно превышать максимальной пропускной способности интерфейса ICAP, равной 66 Мбайт/с.

Отметим следующие преимущества предложенного алгоритма. Обеспечивается степень компрессии КБП, которая в среднем по набору тестовых IP-ядер всего на 20% ниже степеней компрессии, полученных при использовании стандартных программных архиваторов 7Z и RAR. При его использовании размер КБП уменьшается в 2-10 раз, что позволяет использовать для их хранения блочную память ПЛИС и сократить время выборки КБП из памяти. Например, для ПЛИС семейства Virtex4, где объем BRAM составляет 1,26 Мбит, в блочной памяти можно разместить любой КБП тестовых IP-ядер с номерами от 1 по 14 (см. табл.1). Использование компрессии позволяет расширить этот диапазон (в BRAM можно разместить любой КБП для тестовых IP-ядер до номера 18 включительно). Без использования компрессии объем блочной памяти позволяет хранить в ней КБП только для пяти первых IP-блоков, а при использовании число конфигурируемых IP-блоков возрастает до 12.

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

Литература

1. Шагурин И., Шалтырев В., Волов А. «Большие» FPGA как элементная база для реализации систем на кристалле // Электронные компоненты. - 2006. - № 5. - С. 83-88.

2. Eto E. Difference-based partial reconfiguration // Xilinx XAPP290, Edition 2.0. - 3 Dec. 2007. - P. 1-8.

3. Paulsson K., Hubner M., Auer G. et al. Implementation of a virtual internal configuration access port (JCAP) for enabling partial self-reconfiguration on Xilinx Spartan-III FPGAs // Proc. of International Conf. on Field Programmable Logic and Applications (27-29 Aug. 2007). - 2007. - P. 351-356.

4. Doraidraj N., Shiflet E., Goosman M. Plan ahead software as a platform for partial reconfiguration // XCell J. - Fourth Quarter 2005. - P. 68-71.

5. Li Z., Hauck S. Configuration compression for Virtex FPGAs // Proc. of IEEE Symposium on Field-Programmable Custom Computing Machines. - 2001. - P. 147-159.

6. Kennedy I. Exploiting redundancy to speedup reconfiguration of an FPGA // Proc. of International Conf. on Field-Programmable Logic and Applications. - 2003. - P. 262-271.

7. Pan J., Mitra T., Wong W. Configuration bitstream compression for dynamically reconfigurable FPGAs // Proc. of International Conf. on Computer Aided Design. - 2004. - P. 766-733.

8. OpenCores Project. - Режим доступа: www.opencores.org.

9. Шеннон К. Предсказание и энтропия печатного английского текста: Пер. с англ. // Работы по теории информации и кибернетике. - М.: ИЛ, 1963. - С. 669-686.

10. Choueka Y., Fraenkel A., Klein S., Segal E. Improved hierarchical bit-vector compression in document retrieval systems // Proc. of ACM Conf. on Research and Development in Information Retrieval. - 1986. - P. 88-96.

Статья поступила после доработки 7 октября 2008 г.

Шалтырев Владимир Алексеевич - аспирант кафедры микро- и наноэлектроники МИФИ. Область научных интересов: реализация СнК на основе ПЛИС, микропроцессорные системы и их архитектура, HDL-моделирование цифровых устройств, САПР для проектирования устройств на базе ПЛИС, синтезируемые процессорные ядра.

Шалтырев Константин Алексеевич - студент кафедры микро- и наноэлектроники МИФИ. Область научных интересов: HDL-моделирование цифровых устройств, САПР для проектирования устройств на базе ПЛИС.

Шагурин Игорь Иванович - доктор технических наук, профессор кафедры микро-и наноэлектроники МИФИ. Область научных интересов: проектирование цифровых СБИС, микропроцессорная техника, системы-на-кристалле.

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