Научная статья на тему 'РЕАЛИЗАЦИЯ СТОХАСТИЧЕСКОГО LDPC-ДЕКОДЕРА НА ПЛИС'

РЕАЛИЗАЦИЯ СТОХАСТИЧЕСКОГО LDPC-ДЕКОДЕРА НА ПЛИС Текст научной статьи по специальности «Математика»

CC BY
78
23
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СТОХАСТИЧЕСКИЙ ДЕКОДЕР / LDPC КОД / СТОХАСТИЧЕСКИЕ ВЫЧИСЛЕНИЯ

Аннотация научной статьи по математике, автор научной работы — Башкиров А.В., Свиридова И.В.

Рассматриваются LDPC-коды применительно к следующим стандартам связи: 10GBASE-T, DVB-S2 и IEEE 802.16 (WiMAX). Представлен обзор нового класса стохастических итеративных архитектур декодирования. Предлагаемая в работе архитектура дает возможность организации параллельного декодирования (длинных) современных LDPC-кодов с реализацией декодеров на ПЛИС. Стохастические декодеры работают с вероятностными сообщениями в двоичном представлении, что позволяет создать упрощенную архитектуру факторного графа на ПЛИС. Описана реализация на ПЛИС LDPC-декодера с 8 информационными и 8 закодированными битами. На ПЛИС Altera Cyclone пропускная способность составляет 5 Мбит/с при тактовой частоте 100 МГц и, как ожидается, частота будет увеличиваться почти линейно с длиной кода. Проведенное моделирование декодера на ПЛИС Altera Stratix показало пропускную способность 8 Мбит/с. Описана аппаратная реализация стохастического LDPC-декодера. Рассматриваются основы итеративного декодирования LDPC-кодов. Описывается концепция стохастического декодирования. Представлен обзор аппаратной архитектуры стохастического LDPC-декодера. Результаты реализации на ПЛИС и выводы приведены в заключении данной статьи

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

REALIZATION OF A STOCHASTIC LDPC DECODER ON A FPGA

This article considers LDPC codes for the following communication standards: 10GBASE-T, DVB-S2 and IEEE 802.16 (WiMAX). A review of a new class of stochastic iterative decoding architectures is presented. The proposed architecture makes completely parallel decoding of (long) modern LDPC codes working on FPGAs. Stochastic decoders represent probabilistic messages on the frequency of units in a binary stream. This leads to a simple mapping of the factor graph of the code in silicon. The implementation on the FPGA of the LDPC decoder with 8 information bits and 8 encoded bits is described. On the Altera Cyclone FPGA, the bandwidth is 5 Mbit / s when clocked at 100 MHz and is expected to increase almost linearly with the code length. Modeling of the decoder on the FPGA Altera Stratix at a demanding capacity of 8 Mbit/s was carried out. The article describes the hardware implementation of the stochastic decoder for the LDPC code. Next, we'll look at the basics of iterative decoding of LDPC codes. The concept of stochastic decoding is described below. An overview of the hardware architecture of the stochastic LDPC decoder is presented. The results of the FPGA implementation and summary are given in the conclusion of this article

Текст научной работы на тему «РЕАЛИЗАЦИЯ СТОХАСТИЧЕСКОГО LDPC-ДЕКОДЕРА НА ПЛИС»

УДК 621.396

РЕАЛИЗАЦИЯ СТОХАСТИЧЕСКОГО LDPC-ДЕКОДЕРА НА ПЛИС А.В. Башкиров, И.В. Свиридова Воронежский государственный технический университет, г. Воронеж, Россия

Аннотация: рассматриваются LDPC-коды применительно к следующим стандартам связи: 10GBASE-T, DVB-S2 и IEEE 802.16 (WiMAX). Представлен обзор нового класса стохастических итеративных архитектур декодирования. Предлагаемая в работе архитектура дает возможность организации параллельного декодирования (длинных) современных LDPC-кодов с реализацией декодеров на ПЛИС. Стохастические декодеры работают с вероятностными сообщениями в двоичном представлении, что позволяет создать упрощенную архитектуру факторного графа на ПЛИС. Описана реализация на ПЛИС LDPC-декодера с 8 информационными и 8 закодированными битами. На ПЛИС Altera Cyclone пропускная способность составляет 5 Мбит/с при тактовой частоте 100 МГц и, как ожидается, частота будет увеличиваться почти линейно с длиной кода. Проведенное моделирование декодера на ПЛИС Altera Stratix показало пропускную способность 8 Мбит/с. Описана аппаратная реализация стохастического LDPC-декодера. Рассматриваются основы итеративного декодирования LDPC-кодов. Описывается концепция стохастического декодирования. Представлен обзор аппаратной архитектуры стохастического LDPC-декодера. Результаты реализации на ПЛИС и выводы приведены в заключении данной статьи

Ключевые слова: стохастический декодер, LDPC код, стохастические вычисления Введение

LDPC-коды представляют собой семейство корректирующих кодов,

первоначально предложенных Галлагером в начале 1960-х годов. Коды LDPC нашли применение в различных современных стандартах связи, таких как 10GBASE-T, DVB-S2 и IEEE 802.16 (WiMAX), LTE, и поэтому исследование архитектур аппаратного декодирования этих кодов в последнее время является очень актуальным [1].

В попытке разработать новые, более эффективные архитектуры исследователи переоценили фундаментальные

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

Стохастическое декодирование основано на простых цифровых «стохастических» вычислительных схемах, впервые описанных в 1960-х годах, а затем используемых при реализации искусственных нейронных сетей.

© Башкиров А.В., Свиридова И.В., 2018

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

Декодирование кодов LDPC

LDPC-коды - это класс кодов с исправлением ошибок, которые могут приближаться к пределу Шеннона.

Рис. 1.Факторный граф LDPC-кода длиной блока 16

Графическую модель декодирования кодов LDPC можно представить в виде факторного графа. Факторный граф - это двудольный граф, который представляет кодовые ограничения и состоит из двух типов узлов: переменных и проверочных. Пример факторного графа LDPC-кода для скорости декодирования '/г и длины кодового слова 16 показан на рис. 1. Декодирование выполняется с использованием алгоритма распространения доверия. Для каждой итерации сообщения передаются от переменных узлов к проверочным вдоль сети межсоединений, а возвращаемые сообщения

передаются от проверочных назад к переменным [2].

Проверочные узлы обеспечивают равномерность распределения кодовых сообщений между тремя битами вдоль ребер графа. Учитывая вероятности двух входных битов Pa и Pb, вероятность выходного бита Pc вычисляют при помощи функции «2-input soft XOR»:

Pc = Pa(-Pb) + (-PaXPb)

(1)

Аналогично можно записать функцию «2-input soft equality» для переменных узлов

р РдРь

С (-Ра)(-Рь) + РаРь

(2)

Декодирование продолжается до тех пор, пока не будет найдено кодовое слово или пока не будет достигнуто заданное число итераций.

Стохастическое декодирование

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

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

Когда блок проверочного узла выполняет операцию сложения, вентиль «soft XOR» является вероятностным и сводится к стандартному вентилю «hard XOR», а входные сообщения представляют собой

последовательность Бернулли. Блок

проверочного узла показан на рис. 2 с добавлением D-триггера для временной синхронизации.

Рис. 2. Блок проверочного узла

Операция умножения требуется в блоке переменного узла. Операция умножения реализована с AND вентилем и JK-триггером, как показано на рис. 3.

Рис. 3. Блок переменного узла

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

Архитектура декодера

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

стохастический декодер факторного графа и стохастическое преобразование в цифровое.

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

Преобразование уровня сигнала в вероятность выполняется с помощью базовых логических элементов ПЛИС (LUT). Преобразование цифровых данных в стохастический поток является довольно простым процессом, но требует большого количества независимых случайных битов. Используя мультиплексоры и эти случайные биты, стохастический поток может быть сгенерирован с помощью простой комбинационной логической структуры, как показано на рис. 5, где вектор D является двоичным входным значением, а N=(m +1) -битным случайным вектором шума, где m-

ширина кодового слова D [4].

Рис. 5 показывает реализацию преобразования цифрового потока в стохастический для т = 4. Эта схема использует М бит шума при N4 = 0. Однако использование нулевого входа смещает стохастический поток.

Рис. 4. Структурная схема декодера

N,

Щ

Do

Di

N2

Nx

D2

^out

D3

Рис. 5. Преобразование цифрового потока данных в стохастический

Для эффективного выполнения

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

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

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

Стохастические потоки вероятности являются входными данными в граф декодера. В данной статье рассматривается реализация LDPC-кода длиной блока 16, как показано на рис. 1. Между узлами графа декодера были добавлены «суперузлы» для уменьшения корреляций.

Заключительный этап декодирования предполагает обработку данных с выходов графа стохастического декодера в конечный декодер. Преобразование стохастического потока в цифровой выполняется счетчиком up/down, который принимает поток в качестве входных данных. Каждый раз, когда в потоке находится 1, показания счетчика увеличиваются. Каждый раз, когда в потоке находится 0, показания счетчика уменьшаются.

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

Преобразование цифрового значения в стохастический поток требует нескольких случайных битов. Для этого первоначального преобразования требуются не только случайные биты, но и «суперузлы», которые регенерируют стохастические потоки. Стандартный регистр сдвига с линейной обратной связью (LFSR) обеспечивает недостаточный уровень случайности для стохастического вычисления. В регулярной структуре LFSR существует сильная корреляция между соседними битами. Это ухудшает качество вычислений, которое может быть выполнено вычислительными элементами. Однако линейные гибридные сотовые автоматы (LHCA) обеспечивают векторы с более высокой

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

Реализация декодера на ПЛИС

Окончательная конструкция декодера синтезирована на ПЛИС Altera Cyclone EP1C12F324C8 с 12060 логическими элементами. Задействование ресурсов ПЛИС, максимальная тактовая частота, частота ошибок в битах и измерения пропускной способности были записаны для (16,8) LDPC-декодера, показанного на рис. 1. Декодер занял 1491 логический элемент или 12% ПЛИС. При синтезе на ПЛИС Cyclone была достигнута максимальная тактовая частота чуть более 100 МГц. При синтезе на семействе ПЛИС Stratix максимальная тактовая частота выросла до 165 МГц. Фактическая скорость передачи данных, однако, зависит от конфигурации декодера.

На рис. 6 показана скорость возникновения битовых ошибок реализации на ПЛИС декодера, в сравнении с программным моделированием стохастического

декодирования, для BER 10-4 наблюдается примерно 0,4 дБ, что объясняется грубым 4-битным квантованием входных вероятностей. Очень мало различий в частотах ошибок в битах наблюдалось при изменении параметров

tinit и tcheck.

Рис. 6. Скорость возникновения битовых ошибок при реализации декодера на ПЛИС, в сравнении с программным моделированием стохастического декодирования

На рис. 7 показано время декодирования для разных (Tinit, Tcheck) вариаций. Время, показанное на графике, представляет собой среднее число тактовых циклов, необходимых для декодирования одного кодового слова. Таким образом, для высоких значений SNR декодер способен работать со средним периодом приблизительно 19,5 тактовых циклов на некодированный информационный бит. На ПЛИС Cyclone, работающем на частоте 100 МГц, декодер способен декодировать со скоростью 5,1 Мбит/с. На устройстве Stratix, работающем на частоте 165 МГц, средняя скорость передачи данных увеличивается до 8,4 Мбит/с.

A sw

Рис. 7. Время компиляции одного кодового слова для LDPC-декодера длиной 16

Заключение

В этой статье был рассмотрен алгоритм итеративного декодирования на основе стохастических вычислений, применительно к кодам LDPC, и представлена реализация этого алгоритма на ПЛИС для кода малой длины 16, скорость 1/2. Пропускная способность составляет около 5 Мбит/с на небольшой ПЛИС. Пропускная способность полностью

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

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

размера кода

генерируемых

относительно

декодирования.

стохастического

Литература

1. Золотарёв В.В., Овечкин Г.В. Помехоустойчивое кодирование. Методы и алгоритмы: учеб. пособие / под ред. Ю.Б. Зубарева. М.: Справочное издание, 2004. 126 с.

2. Свиридова И.В., Башкиров А.В., Муратов А.В. Эффективное многопороговое декодирование недвоичных кодов с предварительной оценкой ошибочности проверок // Вестник Воронежского государственного технического университета. 2015. Т. 11. № 3. С. 99-101.

3. Свиридова И.В., Коротков Л.Н. Алгоритмы декодирования двоичных кодов с малой плотностью проверок на четность с жестким входом // Вестник Воронежского государственного технического университета. 2015. Т. 11. № 6. С. 108-111.

4. Башкиров А.В., Хорошайлова М.В., Белецкая С.Ю. Использование стохастического вычисления для реализации недвоичного LDPC-декодера на ПЛИС // Вестник Воронежского государственного технического университета. 2016. Т. 12. № 5. С. 70-73.

Поступила 18.09.2018; принята к публикации 13.11.2018 Информация об авторах

Башкиров Алексей Викторович - канд. техн. наук, доцент, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), e-mail: fabi7@mail.ru, ORCID: http://orcid.org/0000-0003-0939-722X Свиридова Ирина Владимировна - старший преподаватель, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), e-mail: ri-ss-ka@mail.ru, ORCID: https://orcid.org/0000-0001-5279-0807

REALIZATION OF A STOCHASTIC LDPC DECODER ON A FPGA

A.V. Bashkirov, I.V. Sviridova

Voronezh State Technical University, Voronezh, Russia

Abstract: this article considers LDPC codes for the following communication standards: 10GBASE-T, DVB-S2 and IEEE 802.16 (WiMAX). A review of a new class of stochastic iterative decoding architectures is presented. The proposed architecture makes completely parallel decoding of (long) modern LDPC codes working on FPGAs. Stochastic decoders represent probabilistic messages on the frequency of units in a binary stream. This leads to a simple mapping of the factor graph of the code in silicon. The implementation on the FPGA of the LDPC decoder with 8 information bits and 8 encoded bits is described. On the Altera Cyclone FPGA, the bandwidth is 5 Mbit / s when clocked at 100 MHz and is expected to increase almost linearly with the code length. Modeling of the decoder on the FPGA Altera Stratix at a demanding capacity of 8 Mbit/s was carried out. The article describes the hardware implementation of the stochastic decoder for the LDPC code. Next, we'll look at the basics of iterative decoding of LDPC codes. The concept of stochastic decoding is described below. An overview of the hardware architecture of the stochastic LDPC decoder is presented. The results of the FPGA implementation and summary are given in the conclusion of this article

Key words: stochastic decoder, LDPC code, stochastic calculations

References

1. Zolotarev V.V., Ovechkin G.V., ed. Zubarev Yu.B. "Interference-free coding. Methods and algorithms: manual" ("Pomek-houstoychivoe kodirovanie. Metody i algoritmy: ucheb. posobie"), Moscow, Spravochnoe izdanie, 2004, 126 p.

2. Sviridova I.V., Bashkirov A.V., Muratov A.V. "Effective multithreshold decoding of non-binary codes with a preliminary estimate of the failure of checks", Yhe Bulletin of Voronezh State Technical University (Vestnik Voronezhskogo gosudarstvennogo tekhnicheskogo universiteta), 2015, vol. 11, no. 3, pp. 99-101.

3. Sviridova I.V., Korotkov L.N. "Algorithms for decoding binary codes with a low density of parity checks with a hard input", ^e Bulletin of Voronezh State Technical University (Vestnik Voronezhskogo gosudarstvennogo tekhnicheskogo universiteta), 2015, vol. 11, no. 6, pp. 108-111.

4. Bashkirov A.V., Khoroshaylova M.V., Beletskaya S.Yu. "Use of stochastic computation for realization of non-binary LDPC-decoder on FPGA", Yhe Bulletin of Voronezh State Technical University (Vestnik Voronezhskogo gosudarstvennogo tekhnicheskogo universiteta), 2016, vol. 12, no 5, pp. 70-73.

Submitted 18.09.2018; revised 13.11.2018

Information about the authors

Aleksey V. Bashkirov, Cand. Sc. (Technical), Associate Professor, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh, 394026, Russia), e-mail: fabi7@mail.ru, ORCID: 0000-0003-0939-722X

Irina V. Sviridova, Assistant Professor, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh, 394026, Russia), e-mail: ri-ss-ka@mail.ru, ORCID: 0000-0001-5279-0807

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