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

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

CC BY
117
7
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЛГОРИТМ КОМПРЕССИИ / КОНФИГУРАЦИОННЫЕ ДАННЫЕ ПЛИС / ПРЕФИКСНОЕ КОДИРОВАНИЕ / COMPRESSION AND DECOMPRESSION ALGORITHM / FPGA CONFIGURATION BIT STREAM / PREFIX CODING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кузьминов Игорь Васильевич, Лосев Владимир Вячеславович, Новожилов Иван Сергеевич, Чаплыгин Юрий Александрович

При записи в ПЗУ ряда зашивок ПЛИС возникает необходимость уменьшения объема конфигурационных данных. Это позволяет уменьшить топологический размер блока ПЗУ на кристалле. Существующие алгоритмы компрессии конфигурационных данных базируются на поиске энтропии случайного набора прошивок. В работе предложен механизм компрессии и декомпрессии конфигурационных данных ПЛИС, основанный на особенностях архитектуры. Показано, что поток конфигурационных данных имеет некоторые закономерности, обусловленные большим количеством «запрещенных» состояний в наборе конфигурационных данных, когда образуются недопустимые связи логических элементов. Предложен алгоритм компрессии и декомпрессии потока конфигурационных данных ПЛИС, базирующийся на анализе архитектуры ПЛИС и составлении таблицы перекодировки с помощью команд префиксного кода. Преимуществом алгоритма является поиск наиболее повторяющихся комбинаций на основе анализа архитектуры ПЛИС вместо поиска энтропии случайного набора конфигурационных данных. Алгоритм декодирования характеризуется относительной простотой, что позволяет сэкономить аппаратные ресурсы для реализации механизма декомпрессии.

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

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

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

ALGORITHM FOR COMPRESSION AND DECOMPRESSION OF THE FPGA CONFIGURATION BIT STREAM

It is necessary to reduce the configuration bit stream volume if there is a need to write several FPGA configurations to the ROM. This leads to decrease in the topological size of the ROM block on the chip. The article discusses the development of the mechanism of compression and decompression of the FPGA configuration bit stream. It has been shown that the stream of configuration data has some regularities. This is due to the presence of a large number of «forbidden» states in the configuration data set, when inadmissible connections of logical elements are formed. The algorithm of compression and decompression of the FPGA configuration bit stream has been proposed. The algorithm is based on the analysis of the FPGA architecture and the compilation of the conversion table using the prefix code commands. The advantage of the algorithm is the search for the most repetitive combinations based on the analysis of the FPGA architecture, instead of searching for the entropy of a random set of configuration data. Another advantage is the relative simplicity of the decoding algorithm, which saves hardware resources for the implementation of the decompression mechanism.

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

УДК 621.3.049.771

DOI: 10.24151/1561-5405-2019-24-6-610-618

Алгоритм компрессии и декомпрессии потока конфигурационных данных ПЛИС

12 1 12 1 И.В. Кузьминов ' , В.В. Лосев , И.С. Новожилов ' , Ю.А. Чаплыгин

1 Национальный исследовательский университет «МИЭТ»,

г. Москва, Россия

2

АО «Научно-исследовательский институт молекулярной электроники», г. Москва, Россия

dsd@miee.ru

При записи в ПЗУ ряда зашивок ПЛИС возникает необходимость уменьшения объема конфигурационных данных. Это позволяет уменьшить топологический размер блока ПЗУ на кристалле. Существующие алгоритмы компрессии конфигурационных данных базируются на поиске энтропии случайного набора прошивок. В работе предложен механизм компрессии и декомпрессии конфигурационных данных ПЛИС, основанный на особенностях архитектуры. Показано, что поток конфигурационных данных имеет некоторые закономерности, обусловленные большим количеством «запрещенных» состояний в наборе конфигурационных данных, когда образуются недопустимые связи логических элементов. Предложен алгоритм компрессии и декомпрессии потока конфигурационных данных ПЛИС, базирующийся на анализе архитектуры ПЛИС и составлении таблицы перекодировки с помощью команд префиксного кода. Преимуществом алгоритма является поиск наиболее повторяющихся комбинаций на основе анализа архитектуры ПЛИС вместо поиска энтропии случайного набора конфигурационных данных. Алгоритм декодирования характеризуется относительной простотой, что позволяет сэкономить аппаратные ресурсы для реализации механизма декомпрессии.

Ключевые слова: алгоритм компрессии; конфигурационные данные ПЛИС; префиксное кодирование

Финансирование работы: работа выполнена при финансовой поддержке РФФИ (договор № 19-07-00541/19).

Для цитирования: Кузьминов И.В., Лосев В.В., Новожилов И.С., Чаплыгин Ю.А. Алгоритм компрессии и декомпрессии потока конфигурационных данных ПЛИС // Изв. вузов. Электроника. - 2019. - Т. 24. - № 6. - С. 610-618. Б01: 10.24151/1561-5405-2019-24-6-610-618

© И.В. Кузьминов, В.В. Лосев, И.С. Новожилов, Ю.А. Чаплыгин, 2019

Algorithm for Compression and Decompression of the FPGA Configuration Bit Stream

* 12 1 * 12 * 1 I. V. Kuzminov ' , V.V. Losev , I.S. Novozhilov ' , Yu.A. Chaplygin

1National Research University of Electronic Technology,

Moscow, Russia

2

JSC «Molecular Electronics Research Institute», Moscow, Russia dsd@miee.ru

Abstract: It is necessary to reduce the configuration bit stream volume if there is a need to write several FPGA configurations to the ROM. This leads to decrease in the topological size of the ROM block on the chip. The article discusses the development of the mechanism of compression and decompression of the FPGA configuration bit stream. It has been shown that the stream of configuration data has some regularities. This is due to the presence of a large number of «forbidden» states in the configuration data set, when inadmissible connections of logical elements are formed. The algorithm of compression and decompression of the FPGA configuration bit stream has been proposed. The algorithm is based on the analysis of the FPGA architecture and the compilation of the conversion table using the prefix code commands. The advantage of the algorithm is the search for the most repetitive combinations based on the analysis of the FPGA architecture, instead of searching for the entropy of a random set of configuration data. Another advantage is the relative simplicity of the decoding algorithm, which saves hardware resources for the implementation of the decompression mechanism.

Keywords: compression and decompression algorithm; FPGA configuration bit stream; prefix coding

Funding: the work has been supported by the Russian Foundation for Basic Research (contract № 19-07-00541/19).

For citation: Kuzminov I.V., Losev V.V., Novozhilov I.S., Chaplygin Yu.A. Algorithm for compression and decompression of the FPGA configuration bit stream. Proc. Univ. Electronics, 2019, vol. 24, no. 6, pp. 610-618. DOI: 10.24151/1561-5405-2019-24-6610-618

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

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

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

Рис. 1. Функциональная диаграмма работы механизма компрессии и декомпрессии

конфигурационных данных Fig. 1. Functional diagram of the compression and decompression algorithm of the configuration bit stream

Блок взаимодействия с ПЛИС представляет собой синхронный последовательно-параллельный интерфейс. Максимальное быстродействие при этом достигается при условии, что длина закодированных последовательностей не превышает разрядности внутренней шины памяти. Файл конфигурации в рассматриваемом случае представляет собой набор двоичной информации. При уменьшении количества битов программирования уменьшается конфигурационный файл. Поскольку устройство разархивирования должно быть реализовано аппаратно и расходует ресурсы логической емкости микросхемы, задача состоит в том, чтобы максимально упростить механизм разархивации [1]. Необходимо, чтобы алгоритм реализовывал сжатие без потерь.

Алгоритм компрессии характеризуется коэффициентом сжатия - отношением сжатого конфигурационного файла к оригинальному конфигурационному файлу [2-4]. В случае применения алгоритма компрессии и декомпрессии имеет значение также скорость декодирования КД: чем больше компрессия данных, тем дольше процесс раско-дировки, и наоборот. Таким образом, второй количественной оценкой алгоритма является скорость раскодировки [5].

Прошивка ПЛИС представляет собой набор данных из единиц и нулей, последовательность которых, как правило, имеет некоторые закономерности, зависящие от архитектуры ПЛИС. Это обусловлено большим количеством «запрещенных» состояний в зашивке, когда образуются недопустимые связи логических элементов. Анализ спроектированных прошивок ПЛИС показал, что количество единиц в потоке конфигурационных данных составляет не более 30 %. Исходя из этих данных, предложен механизм архивации, основанный на принципе записывания «единиц в окружении нулей». Основой алгоритма служит набор из 256 восьмибитных команд, которые кодируют следующие последовательности входных бит: набор нулей в количестве 500, 1 000 и 2 000 бит; одну, две и три единицы; комбинации 01, 001, 0001 и т.д. в количестве 250. После архивации набор команд подается непосредственно в ПЛИС на устройство разархивирова-ния, где данные преобразуются обратно в конфигурационные.

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

прошивку и длинные комбинации нулей. Однако при дальнейшем усложнении устройств, реализуемых в ПЛИС, и, соответственно, росте количества единиц в потоке конфигурационных данных выявлено увеличение объема информации после архивации. Это обусловлено большим количеством команд, кодирующих последовательности данных короче 8 бит. В предельном случае большое количество команд приводит к тому, что объем заархивированных данных будет равен исходным данным. Другим недостатком является скорость аппаратной декомпрессии. При длине максимального закодированного слова 2 000 бит и разрядности внутренней шины памяти 32 бит разница равна 63, т.е. при номинальном быстродействии интерфейса, равном 100 Мбит/с, скорость декомпрессии составит 1,5 Мбит/с.

Для увеличения количества зашивок, которые можно сжать, принято решение использовать в качестве механизма архивации префиксное кодирование. Префиксный код представляет собой команды различной длины, которые можно однозначно декодировать из потока данных без использования разделительных знаков. Таким образом, выполняется условие Фано: если в код входит слово a, то для любой непустой строки Ь слова ab в коде не существует [6, 7] и возникает возможность записи коротких комбинаций конфигурационных данных командами соизмеримой или меньшей длины. Для оценки структуры возможных конфигурационных данных использовалась псевдорандомизация всех способов программирования логических блоков ПЛИС, состоящая из следующих шагов.

Шаг 1. Определение всех разрешенных состояний секторов памяти, программирующих логический блок.

Шаг 2. Описание правил, по которым секторы памяти могут находиться в том или ином состоянии относительно друг друга.

Шаг 3. Проведение рандомизации возможных состояний секторов памяти и проверка на соответствие правилам.

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

В алгоритме компрессии используется известный подход, при котором из битовой последовательности удаляются нулевые последовательности [1, 8]. Сначала из битового потока выбираются наиболее длинные последовательности, которые соответствуют наиболее длинным командам, составленным в префиксном коде. Например, максимальная длина одной из девяти команд в префиксном коде будет равна восьми. Далее необходимо индексировать места, из которых удалены эти длинные последовательности. Затем повторно запускается проход по файлу для следующей более короткой команды с пропуском индексированных данных. Описанный многопроходный цикл с каждой новой итерацией сокращает количество обрабатываемых данных. В результате выполненных проходов формируется ассоциативный список, куда загружаются команды с соответствующим порядковым номером.

Поскольку алгоритм предусматривает удаление из битового потока последовательности нулей, необходимо предусмотреть команду единичной длины для записи «1». Кроме того, необходимо провести выборку последовательности нулей разного количества. Путем экспериментального тестирования разного набора последовательностей составлена таблица перекодировки (таблица).

Таблица перекодировки Conversion table

Номер Код

кодируемой последовательности Кодируемая последовательность

последовательности (префиксный код)

1 «0» 1

2 «11» 0

3 «101» 100

4 «1001» 0000 0

5 «1000 1» 0000 00

6 «1000 01» 0000 000

7 «1000 001» 0000 0000 0000 0000

8 «1000 0001» 0000 0000 0000 0000 0000 0000

9 «1000 0000» 0000 0000 0000 0000 0000 0000 0000 0000

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

Аппаратный блок декомпрессии представляет собой сдвиговый регистр с переполнением. Информация для каждой команды префиксного кода записана в регистры, на каждую команду существует свой декодер. Поиск команд происходит с помощью сдвига «скользящего окна», реализованного на сдвиговом регистре. Путем побитного увеличения размера окна на каждой итерации происходит сравнение с набором команд. При нахождении команды данные, соответствующие этой команде, фиксируются в промежуточный регистр. Размер «скользящего окна» при этом обнуляется для последующего побитного увеличения и поиска новой команды. При заполнении промежуточного регистра данные поступают в выходной регистр. Блок-схема алгоритма декомпрессии представлена на рис.3.

Приведем результаты компрессии КД:

Номер теста Коэффициент сжатия

1 ................................................... 1,0007

2.....................................................3,96

3.....................................................2,24

4.....................................................4,01

5.....................................................4,01

6.....................................................4,02

7.....................................................4,03

8.....................................................4,02

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

Рис. 2. Блок-схема алгоритма компрессии Fig.2. Block diagram of compression algorithm

Алгоритм компрессии конфигурационных данных ПЛИС заключается в следующем:

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

- генерация случайных зашивок с учетом выявленных ограничений и наибольшей энтропии данных;

- составление набора команд с использованием префиксного кодирования;

- составление таблицы кодирования;

- проверка таблицы кодирования путем архивации данных с максимально допустимым количеством единиц на строку.

Нет

Рис.3. Блок-схема алгоритма декомпрессии Fig.3. Block diagram of decompression algorithm

Заключение. Предложенный алгоритм компрессии и декомпрессии позволяет получить средний коэффициент сжатия, равный 3,41. Алгоритм кодирования реализован на языке Skill, время кодировки составляет примерно 20 с. Поскольку максимальная длина битовой последовательности не превышает разрядности шины, скорость раско-дировки составляет 100 Мбит/с.

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

Литература

1. Шалтырев В.А., Шалтырев К.А., Шагурин И.И. Динамическая реконфигурация ПЛИС с использованием сжатых битовых потоков // Изв. вузов. Электроника. - 2009. - №2(76). - С. 43-50.

2. Hemnath P., Prabhu V. Compression of FPGA bitstreams using improved RLE algorithm // 2013 Intern. Conf. on Information Communication and Embedded Systems (ICICES). IEEE. - 2013. - P. 834-839.

3. Hauck S., Wilson W.D. Runlength compression techniques for FPGA configurations // In Proc. IEEE Symp. Field Program. Custom Comput. Mach. IEEE. - 1999. - P. 286-287.

4. Dandalis A., Prasanna V.K. Configuration compression for FPGA-based embedded systems // IEEE Trans. Very Large Scale Integr. (VLSI) Syst. - 2005. - Vol. 13. - Iss. 12. - P. 1394-1398.

5. Rui Yu, Yibin Li. Compression of FPGA bitstreams using a novel bitmask and RLE algorithm // International Journal of Advanced Computational Engineering and Networking. - 2015. - Vol. 3. - Iss. 4. - P. 17-22.

6. Марков А.А. Введение в теорию кодирования. - М.: Наука, 1982. - 192 с.

7. Левитин А.В. Жадные методы: алгоритм Хаффмана // Алгоритмы. Введение в разработку и анализ. - М.: Вильямс, 2006. - Гл. 9. - С. 392-398.

8. 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.

Поступила в редакцию 17.06.2019 г.; после доработки 27.06.2019 г.; принята к публикации 24.09.2019 г.

Кузьминов Игорь Васильевич - аспирант кафедры интегральной электроники и микросистем Национального исследовательского университета «МИЭТ» (Россия, 124498, г. Москва, г. Зеленоград, пл. Шокина, 1), инженер-конструктор АО «Научно-исследовательский институт молекулярной электроники» (Россия, 124460, г. Москва, г. Зеленоград, 1-й Западный пр., 12/1), ikuzminov@niime.ru

Лосев Владимир Вячеславович - доктор технических наук, профессор кафедры интегральной электроники и микросистем Национального исследовательского университета «МИЭТ» (Россия, 124498, г. Москва, г. Зеленоград, пл. Шокина, 1), dsd@miee.ru

Новожилов Иван Сергеевич - магистр кафедры интегральной электроники и микросистем Национального исследовательского университета «МИЭТ» (Россия, 124498, г. Москва, г. Зеленоград, пл. Шокина, 1), инженер-конструктор АО «Научно-исследовательский институт молекулярной электроники» (Россия, 124460, г. Москва, г. Зеленоград, 1-й Западный пр., 12/1), inovozhilov@niime.ru

Чаплыгин Юрий Александрович - академик РАН, доктор технических наук, профессор, президент, заведующий кафедрой интегральной электроники и микросистем Национального исследовательского университета «МИЭТ» (Россия, 124498, г. Москва, г. Зеленоград, пл. Шокина, 1), ar@miee.ru

References

1. Shaltyrev V.A.,Shaltyrev K.A.,Shagurin I.I. Dynamic reconfiguration of FPGA using compressed bitstreams. Izvestiya vuzov. Elektronika = Proceedings of Universities. Electronics, 2009, no. 2(76), pp. 43-50. (in Russian).

2. Hemnath P., Prabhu V. Compression of FPGA bitstreams using improved RLE algorithm. 2013 International Conference on Information Communication and Embedded Systems (ICICES). IEEE, 2013, pp. 834-839.

3. Hauck S., Wilson W.D. Runlength compression techniques for FPGA configurations. In Proc. IEEE Symp. Field Program. Custom Comput. Mach. IEEE, 1999, pp. 286-287.

4. Dandalis A., Prasanna V.K. Configuration compression for FPGA-based embedded systems. IEEE Trans. Very Large Scale Integr. (VLSI) Syst., 2005, vol.13, iss. 12, pp. 1394-1398.

5. Rui Yu, Yibin Li. Compression Of FPGA Bitstreams Using A Novel Bitmask And RLE Algorithm. International Journal of Advanced Computational Engineering and Networking, 2015, vol.3, iss.4, pp. 17-22.

6. Markov A.A. Introduction to coding theory. Мoscow, Nauka Publ., 1982. 192 p. (in Russian).

7. Levitin A.V. Huffman Coding. Greedy Method. Algorithms. Introduction to development and analysis. Мoscow, Vil'yams Publ., 2006, pp. 392-398. (in Russian).

8. 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, pp. 88-96.

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

Received 17.06.2019; Revised 27.06.2019; Accepted 24.09.2019.

Information about of authors:

Igor V. Kuzminov - PhD Student of the Integrated Electronics and Microsystems Department, National Research University of Electronic Technology (Russia, 124498, Moscow, Zelenograd, Shokin sq. 1), Engineer of JSC Molecular Electronics Research Institute (Russia, 124460, Moscow, Zelenograd, 1-st Western Passage, 12/1), ikuzminov@niime.ru

Vladimir V. Losev - Dr. Sci. (Eng.), Prof. of the Integrated Electronics and Microsystems Department, National Research University of Electronic Technology (Russia, 124498, Moscow, Zelenograd, Shokin sq., 1), dsd@miee.ru.

Ivan S. Novozhilov - Master's Degree Student of the Integrated Electronics and Microsystems Department, National Research University of Electronic Technology (Russia, 124498, Moscow, Zelenograd, Shokin sq., 1), Engineer of JSC Molecular Electronics Research Institute (Russia, 124460, Moscow, Zelenograd, 1-st Western Passage, 12/1), inovozhilov@niime.ru

Yury A. Chaplygin - Academician of RAS, Dr. Sci. (Eng.), Prof., President, Head of the Integrated Electronics and Microsystems Department, National Research University of Electronic Technology (Russia, 124498, Moscow, Zelenograd, Shokin sq., 1) ar@miee.ru

/-\

Вниманию читателей журнала

«Известия высших учебных заведений. Электроника» Подписку на печатную версию журнала можно оформить:

• по каталогу «Газеты, журналы» АО Агентство «Роспечать» в любом почтовом отделении. Подписной индекс 47570

• по прямой подписке в АО Агентство «Роспечать»: www.press.rosp.ru

• по объединенному каталогу «Пресса России» ООО «Агентство «Книга-Сервис» в любом почтовом отделении. Подписной индекс 38934

• через редакцию - с любого номера и до конца года

Подписку на электронную версию журнала можно оформить на сайтах:

• Научной электронной библиотеки: www.elibrary.ru

• ООО «Агентство «Книга-Сервис»: www.rucont.ru;www.akc.ru;

www.pressa-rf.ru

• ООО «УП Урал-Пресс»: www.delpress.ru

• ООО «ИВИС»: www.ivis.ru

\_)

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