Радиотехника и связь
УДК 621.396
ЭФФЕКТИВНАЯ АРХИТЕКТУРА НА ОСНОВЕ ПЛИС ДЛЯ ПОЛНОСТЬЮ ПАРАЛЛЕЛЬНОГО СТОХАСТИЧЕСКОГО LDPC-ДЕКОДЕРА
© 2018 А.В. Башкиров, И.В. Свиридова, Д.С. Андреева
Воронежский государственный технический университет, г. Воронеж, Россия
Аннотация: стохастическое декодирование - новый альтернативный метод низкой сложности расшифровки кодов с исправлением ошибок. Представлен вариант аппаратной архитектуры для стохастического декодирования низкоплотностных кодов. Данная архитектура позволяет производить полностью параллельное декодирование с помощью новейших технологий при работе с алгоритмами с малой плотностью проверок на четность (LDPC), со специализированной возможностью реализации такого декодера на программируемой логической интегральной схеме (ПЛИС). Архитектура параллельного стохастического декодера в данной работе реализуется на ПЛИС Xilinx Virtex 4 (XC4VLX200) с пропускной способностью 706 Мбит/с, при скорости битовой ошибки около 10-6, с потерей производительности около 0,1 дБ. Представлен обзор стохастических вычислений и метода стохастического декодирования. Описаны проблемы аппаратной реализации и архитектура стохастических декодеров. Приведены результаты синтеза и декодирования для (1024,512) LDPC-кодов с малой плотностью проверок на чётность декодера. Показано, что архитектурные особенности, имеющиеся во многих программируемых логических интегральных схемах, могут быть использованы для зонально-эффективной реализации стохастических декодеров LDPC
Ключевые слова: итерационное декодирование, коды с низкой плотностью проверок на четность, стохастическое декодирование, ПЛИС, внешняя память
Введение
Коды с низкой плотностью проверок на четность (LDPC) представляют собой класс линейных блочных кодов, который включает в себя некоторые из самых мощных кодов коррекции ошибок с производительностью, близкой к пределу Шеннона. Эти коды рассматриваются в данной статье применительно к следующим стандартам связи: спутниковое телевидение и связь, IEEE 802.16 (Wireless MAN). LDPC-коды итеративно декодируются с использованием алгоритма распространения доверия. Алгоритм распространения доверия декодирует сообщения, проходящие по ребрам двудольного факторного графа. Узлы в факторном графе разделены на две различные группы, а именно, переменные узлы и узлы проверки четности.
Сложность декодирования LDPC-кодов, побудило исследователей использовать максимально возможное количество
параллелизма в LDPC-декодерах для повышения пропускной способности и производительности. Однако из-за проблемы перегрузки маршрутизации и межсоединения (в основном связанной с перемежением в
декодере с малой плотностью проверок на чётность) реализация полностью параллельных декодеров с малой плотностью проверок на чётность по-прежнему является сложной задачей для кодов большой длины. Маршрутизация для перемежения кода LDPC может занимать большую часть архитектуры декодера. Поэтому методы, которые облегчают проблему маршрутизации и/или уменьшают сложность узлов, являются предпочтительными при построении LDPC-декодеров. Известный алгоритм min-sum является приближенной вариацией алгоритма распространения доверия, который предлагает менее сложные узлы, но связан с потерей декодирования около 0,5-1 дБ. Реализовать такой декодер можно как с использованием ПЛИС, так и на базе специализированной интегральной схемы (ASIC). Реализация на основе ПЛИС позволяет создать один из самых «быстрых» декодеров на основе полностью параллельного кода с малой плотностью проверок на чётность. Этот декодер занимает около 84% ПЛИС Altera Stratix EP1S80 с пропускной способностью 650 Мбит/с с максимальной тактовой частотой 61 МГц.
Стохастическое декодирование - это относительно новый подход к декодированию
низкоплотностных кодов. Он позволяет создавать вычислительные узлы низкой сложности в графе факторов, а также облегчает проблему перегрузки маршрутизации. Стохастическое декодирование вдохновлено стохастическими вычислениями, введенными в 1960-х годах для проектирования схем низкой точности. В стохастических вычислениях вероятности представлены потоками стохастических битов. Это представление приводит к снижению сложности вычислительных узлов для выполнения таких операций, как умножение и деление на вероятности в битовой последовательной форме. Стохастические вычисления
рассматривались для таких приложений, как нейронные сети и контроллеры двигателей. Впервые рассмотрено применение
стохастических вычислений для декодирования кодов с исправлением ошибок, для декодирования (16,8) LDPC и (7,4) кодов Хэмминга. Было также рассмотрена возможность их применения для решетчатого декодирования ациклического (16,11) кода Хэмминга и (256,121) кода Турбо-кода на основе (16,11) ациклических декодеров Хэмминга. Единственная аппаратная реализация стохастических декодеров декодирует специально сконструированный (16,8) хвостовой код с малой плотностью проверок на чётность. Вышеупомянутые ранее стохастические методы могли декодировать только специальные короткие / ациклические коды и не применялись для декодирования современных кодов с малой плотностью проверок на чётность на факторных графах. Стохастические декодеры чувствительны к уровню коммутационной активности внутри факторного графа, а также к проблеме фиксации (блокировки) стохастических узлов. Эти проблемы могут серьезно ухудшить производительность декодера с битовой частотой ошибок (BER), особенно для практических (длинных) кодов с малой плотностью проверок на чётность. Недавно в зарубежной литературе был предложен новый метод, который рассматривается как первый успешный стохастический метод
декодирования практических кодов с малой плотностью проверок на чётность на факторных графах. Этот метод способен обеспечить почти оптимальную
производительность показателей алгоритма суммирования с плавающей точкой.
Стохастические вычисления и LDPC-декодирование
При стохастических вычислениях вероятности преобразуются в потоки стохастических битов с использованием последовательностей Бернулли. Каждый бит в потоке равен 1 с вероятностью трансформации. Например, кадр из 10 бит с 7 битами, равными 1, представляет вероятность 0,7. Следует подчеркнуть, что стохастические
последовательности не обязательно являются фреймами битов и могут использоваться как стохастические потоки, в которых не требуется кадрирование/пакетизация. Преобразование из вероятностного в стохастический поток не является универсальным, следовательно, для одной и той же вероятности возможны разные потоки. Например, на рис. 1 показаны некоторые возможные потоки для вероятности 7/13 или 0.5385.
__Р~7/13____
... 0110011101100 ...
_ Р_=7/1_3_____
... 1101000101110...
____р=тз____
... 0101101011001 ...
Рис. 1. Некоторые возможные стохастические потоки для вероятности 7/13 или 0.5385
Сложные вероятностные операции, такие как умножение и деление, выполняются с использованием простых схем с помощью стохастического представления. Например, шумовой гейт, показанный на рис. 2, может использоваться для умножения двух стохастических потоков. Стохастическое представление и вычисление также может быть применено к вероятностным операциям в факторных графах. Простота стохастических структур привлекательна для декодирования кодов с исправлением ошибок, таких как коды с малой плотностью проверок на чётность.
Р=0.5
... 0110001011 ..
... 1000000111 ..
•--.". 4
Р=0.2
... ,0000000011)...
Рис. 2. Пример умножения двух стохастических потоков
При стохастическом декодировании вероятности, полученные из канала, преобразуются в стохастические потоки, а декодирование осуществляется стохасти-
ческими переменными узлами и узлами проверки четности, обменивающимися битами. Пусть Ра = Рг(а! = 1) и Ра = Рг(Ь = 1) - входные вероятности, представленные стохастическими потоками {а!} и Операция с переменным узлом выглядит следующим образом: РаРь
Рг = —
с РаРь+(1-Ра)(1-Рь)
(1)
Для операций проверки четности в узле проверки четности & = 3 для входов Ра и Рь применяется формула (2).
Рс = Ра(1-Рь)-Рь(1-Ра) (2)
Стохастические структуры для узла переменной ^ = 3 и узла проверки четности ^ = 3 показаны на рис. 3. Структура узла стохастической переменной использует свой предыдущий выходной бит (т. е. С; = С[_1), если входные биты а! и Ь не равны. Это называется состоянием удержания для узла переменной.
С использованием стохастических структур, операция декодирования
продолжается через переменные узлы и узлы проверки четности, обменивающимися битами вдоль каждого ребра в графе факторов. Цикл декодирования не соответствует итерации в алгоритме распространения доверия. В конце такого цикла выходные данные узла переменной передаются
реверсивному счётчику. Этот счетчик увеличивается на 1 бит и уменьшается на 0 бит. После фиксированного числа циклов декодирования (или когда все проверки четности выполнены) для определения декодированного кодового слова к содержимому счетчиков применяется усложненное решение с помощью реверсивного счетчика, где 1 знаковый бит определяет положительное содержимое (или символ +1), а знаковый бит 0 определяет отрицательное содержимое (или символ -1) в передаче двоичной фазовой манипуляции. В дополнение к простым структурам для переменных и узлов проверки четности стохастическое декодирование значительно уменьшает проблему перегрузки
маршрутизации.
Стохастические структуры на рис. 3 не могут быть непосредственно применены для декодирования практических кодов LDPC. Как упоминалось ранее, стохастические декодеры чувствительны к уровню коммутационной активности (битовому переходу). Эта проблема
может быть обострена при высоких соотношениях сигнал / шум, в которых вероятностные сообщения близки к 0 (или 1) и, следовательно, соответствующие стохастические биты в основном равные 0 (или 1). Кроме того, стохастическое декодирование также подвержено проблеме фиксации (блокировки). Проблема фиксации относится к случаю, когда существование циклов в факторном графе коррелирует стохастические потоки (сообщения) таким образом, что стохастические узлы «прилипают» к фиксированному состоянию для нескольких циклов декодирования (т. е. для итерации стохастического декодирования).
Рис. 3. Структура (А) узла переменной степени 3 и (В) узла проверки четности степени 3
Внешняя память - это память, назначенная исходящим ребрам на графике. Внешняя память использует механизм, который рерандомизирует и декоррелирует стохастические сообщения и значительно снижает вероятность застревания узлов стохастических переменных в фиксированных состояниях. Принципы этих механизмов заключаются в том, что внешняя память в них обновляется только с исходящих битов, которые не создаются в состоянии удержания. Также, когда состояние удержания происходит для ребра, переменный узел обращается к соответствующей внешней памяти, чтобы произвести/генерировать исходящий бит. Третий принцип трактуется так: генерация бита из внешней памяти в состоянии удержания должна быть произведена случайным/стохастическим способом, чтобы перезаписать стохастические потоки и разорвать связь. Этот механизм может быть реализован по-разному. Например, можно подсчитать регенеративные биты с помощью реверсивных счетчиков (т. е. преобразовать регенеративные биты в вероятности), а затем создать новый (рерандомизированный) стохастический бит на
основе измеренных вероятностей. Другой путь реализации внешней памяти происходит путем использования регистра переноса с одиночными дискретными битами. Эта реализация не требует преобразования регенеративных битов в вероятности и работает на потоках битов; она также подходит для реализации ПЛИС. С помощью этой реализации внешняя память обновляется только регенеративными битами, а в случае состояния удержания бит случайным образом выбирается из сдвигового регистра.
После получения блока символов из канала аддитивного белого Гауссовского шума масштабирование, зависящее от шума, применяется согласно уравнению (3). Хорошую стохастическую производительность декодирования вероятности битовых ошибок можно получить для кода (1024,512) LDPC, используя а = 3 и Y = 6, (т. е. 4а/У = 2). Поэтому вероятности могут быть легко сгенерированы на основе 1-битных сдвинутых полученных значений.
Для реализации декодера (1024,512) LDPC мы использовали 8-битное представление для полученных вероятностей канала. Эти вероятности преобразуются в стохастические потоки с помощью структуры, показанной на рис. 4. Эта структура состоит из компаратора, который сравнивает вероятность канала Р с (псевдо) случайным числом R на каждом цикле декодирования. Р фиксируется во время декодирования блока. Однако R - случайное число (с равномерным распределением), которое обновляется в каждом контроллере домена. Выходной бит компаратора равен 1, если Р > И, и равен 0 в противном случае. Выходной бит компаратора подается на переменный узел, и поскольку И имеет равномерное распределение и может принимать значения от 0 до 28-1, то каждый бит в выходном стохастическом потоке равен 1 с вероятностью Р/28. Декодеру нужен один компаратор для каждого узла переменной.
Вероятностный § канал _
Поток случайных о чисел
Рис. 4. Преобразование вероятностей каналов в стохастические потоки
Внешняя память работает как регистры сдвига М-бита, однако (одиночный) бит во внешней памяти выбирается по адресным строкам в каждом цикле декодирования. Каждый из них инициализируется, чтобы содержать нули. Рис. 5 показывает архитектуру узла переменной dv = 3 (показаны только 2 входа и соответствующий выход). Когда входные биты переменного узла равны, сигнал и на рис. 5 равен 1, и переменный узел применяет уравнение равенства и вычисляет исходящий бит для ребра. В этом случае узел переменной обновляет внешнюю память способом "первый в первый". В случае состояния удержания (т. е. когда входные биты не равны) и равно 0 и соответствующая внешняя память не обновляется. Вместо этого мы случайным образом выбираем бит из внешней памяти ребра и используем его в качестве исходящего бита. В аппаратных средствах случайный выбор бита из внешней памяти сделан, генерируя (псевдо) случайный адрес для каждой внешней памяти в каждом цикле декодирования.
входной бит
случайный адрес
Рис. 5. Структура узла переменной с!у = 3
Для аппаратной реализации декодера (1024,512) LDPC мы использовали внешнюю память с М = 64. Декодер использует одну внешнюю память на каждое ребро. Много архитектур ПЛИС позволяют осуществлять эффективную вставку внешней памяти. Они позволяют использовать как базовый логический элемент ПЛИС, так и базовый логический элемент ПЛИС сдвигового регистра соотношения сигнал/шум и получать доступ к одиночному биту в регистре. Также возможно каскадировать любое количество соотношений сигнал/шум для формирования регистров сдвига произвольного размера. В качестве примера в нашем целевом ПЛИС - устройстве ХШпх "У11!ех-4 64-битный внешняя память может быть эффективно реализована каскадом
из четырех входных базовых логических элементов ПЛИС. Каждый из четырех входных базовых логических элементов ПЛИС формирует 16-битный регистр сдвига с одним выходом, к которому обращается его адресная строка. Созданная таким образом 64-битная внешняя память занимает всего 2 часть ПЛИС ХШпх "У11!ех-4.
Выход узла стохастической переменной передается реверсивному счетчику в конце каждого цикла декодирования. Поэтому для каждого узла переменной требуется один реверсивный счетчик. В этой реализации мы использовали 6-разрядное насыщение счетчика, которое считает от -31 до 31. Насыщая реверсивный счетчик, его значение увеличивается в случае получения 1 и уменьшается в случае получения 0. Он прекращает уменьшение/приращение, если достигает своих минимальных/максимальных пределов.
Реализация проверки четности проста. Рис. 6 показывает структуру проверки четности dс = 6, используемой в декодере.
разрядных линейных регистров сдвига обратной связи, в которых каждый такой регистр связан с простым многочленом. Механизм рандомизации производит 32 восьмиразрядных случайных числа в каждом цикле декодирования для всего дешифратора.
Рис. 7 показывает вероятность битовых ошибок стохастического декодера для декодирования с максимальным циклом декодирования 6К.
(1024,512) LDPC-код при ^=3 и ас=б
Выход
Рис. 6. Структура узла проверки четности с1с = 6
Механизм рандомизации отвечает за генерацию случайных вероятностей для компараторов, а также за генерацию случайных адресов для внешней памяти. Хотя необходимое количество случайных чисел может показаться слишком большим. Случайные числа могут быть распределены на двух уровнях без значительных потерь эффективности в вероятности битовой ошибки: биты в случайных (вероятностных) числах, генерируемых для компараторов, тоже могут использоваться для адресов внешней памяти, а также разные группы внешней памяти могут совместно использовать один и тот же случайный адрес.
Механизм рандомизации для декодера (1024, 512) LDPC состоит из десяти 16-
Рис. 7. Декодирование результатов производительности
Как показано, стохастический декодер обеспечивает производительность декодирования, близкую к алгоритму распространения доверия с плавающей точкой, с 32 итерациями. Потеря расшифровки около 0.1 дБ на вероятность битовой ошибки около 10-6 (для расшифровки с максимальным циклом декодирования 6К). Стохастический декодер прекращает декодирование, как только все проверки четности выполнены или достигнуто максимальное число 6К циклов декодирования. Однако наблюдаемый средний постоянный ток был значительно ниже максимального постоянного тока, особенно для низких вероятностей битовых ошибок. На самом деле, в таких низких вероятностях битовых ошибок есть только несколько блоков, которым нужно большое количество циклов для декодирования. Например, наблюдаемый средний цикл декодирования в соотношении сигнал/шум = 3 дБ (вероятность битовой ошибки 10-6) был приблизительно 300 вероятностей битовых ошибок, приводящий к пропускной способности приблизительно 706 Мбит/с в этой вероятности.
Необходимо заметить, что вышеупомянутая скорость (средний и максимальный цикл декодирования) и требования к площади
предназначены для обеспечения
производительности, близкой к алгоритму распространения доверия с плавающей запятой. Стохастический декодер способен
обмениваться областью, скоростью и задержкой с производительностью вероятности битовых ошибок. Например, для производительности, аналогичной алгоритму с min sum (т. е. обычно около 0,5-1 дБ потери, по сравнению с алгоритмом распространения доверия), может использоваться более короткая внешняя память и/или меньшее количество циклов декодирования. Кроме того, для программ, в которых строгое требование максимальной задержки, можно уменьшить максимальный цикл декодирования с некоторой потерей производительности.
Заключение
В данной статье была представлена архитектура на основе ПЛИС для полностью параллельного (1024,512) стохастического декодера LDPC. Предлагаемый декодер является самым «быстрым» полностью параллельным декодером LDPC на ПЛИС.
В работе рассмотрена архитектура стохастического декодера LDPC. Результаты синтеза и производительности, представленные в статье, подтверждают потенциал методов стохастического декодирования для
декодирования с низкой сложностью и высокой
пропускной способностью современных кодов LDPC с производительностью, близкой к алгоритму распространения доверия с плавающей точкой.
Литература
1. Белоголовый А.В., Крук Е.А. Многопороговое декодирование кодов с низкой плотностью проверок на четкость // Информационно-управляющие системы. 2006. С. 35-37, 46-50, 73-81.
2. Берлекэмп Э.Р. Техника кодирования с исправлением ошибок // ТИИЭР. 1980. Т. 68. №5. С. 24-58
3. Золотарев В.В., Овечкин Г.В. Помехоустойчивое кодирование. Методы и алгоритмы: учеб. пособие / под ред. Ю.Б. Зубарева. М.: Справочное издание, 2004. С. 125-132.
4. Овечкин Г.В., Овечкин П.В., Денисова М.А. Применение многопорогового декодера в системах передачи данных с многопозиционными системами модуляции// Проблемы передачи и обработки информации в сетях и системах телекоммуникаций: 13-я междунар. науч.-техн. конф. Рязань: РГРТА, 2004. С.58-59.
5. Золотарёв В.В. Использование многопорогового декодера вместо алгоритма Витерби // Вестник Рязанской государственной радиотехнической академии. 2002. Вып. 10. С.117-119.
6. Свиридова И.В., Башкиров А.В., Коротков Л.Н. Использование LDPC-кодов // Вестник Воронежского государственного технического университета. 2013. Т. 9. № 6.3. С. 41-44.
7. Башкиров А.В., Хорошайлова М.В., Белецкая С.Ю. Использование стохастического вычисления для реализации недвоичного LDPC-декодера на ПЛИС // Вестник Воронежского государственного технического университета. 2016. Т. 12. № 5. С. 70-73.
Поступила 03.04.2018; принята к публикации 11.05.2018
Информация об авторах
Башкиров Алексей Викторович - канд. техн. наук, доцент, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), e-mail: [email protected], ORCID: http://orcid.org/0000-0003-0939-722X Свиридова Ирина Владимировна - ассистент, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), e-mail: [email protected], ORCID: https://orcid.org/0000-0001-5279-0807 Андреева Дарья Сергеевна - студент, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), e-mail: [email protected], ORCID: https://orcid.org/0000-0003-4946-5426
AN AREA-EFFICIENT FPGA-BASED ARCHITECTURE FOR FULLY-PARALLEL
STOCHASTIC LDPC DECODING
A.V. Bashkirov, I.V. Sviridova, D.S. Andreeva Voronezh State Technical University, Voronezh, Russia
Abstract: stochastic decoding is a new alternative method of low complexity decoding of error correcting codes. This paper presents a variant of the hardware architecture for stochastic decoding low band codes. This architecture allows for full parallel decoding using the latest technologies when working with algorithms with LDPC, working on a field-programmable
gate array (FPGA). The architecture of the parallel stochastic decoder is implemented on LDPC in device Xilinx Virtex - 4 XC4VLX200 with a bandwidth of 706 Mbit / s, at a bit error rate of about 10-6, with a loss of performance of about 0.1 dB. A survey of stochastic computing and stochastic decoding methods is also presented. The problem of hardware implementation and architecture of stochastic decoders are described. The results of the synthesis and decoding for the (1024,512) LDPC-codes with low density parity check decoder are presented. It is shown that the architectural features present in many programmable logic integrated circuits, can be used for area-efficient implementation of stochastic LDPC decoders
Key words: iterative decoding, low-density parity-check (LDPC) codes, stochastic decoding, FPGA, external memory
References
1. Belogolovyy A.B., Kruk E.A. "Multithreshold decoding of codes with low-density checks for definition", Information control systems (Informatsionno-upravlyayushchie sistemy), 2006, pp. 35-37, 46-50, 73-81
2. Berlekamp E.R. "Coding technique with error correction", Proc. of the Institute of Engineers in Electronics and Radio Engineering (Trudy instituta inzhenerovpo elektronike i radiotekhnike), 1980, vol. 68, no. 5, pp. 24-58.
3. Zolotarev V.V., Ovechkin G.V. "Antinoise coding. Methods and algorithms. Manual", Reference book, Moscow, pp. 125132.
4. Denisova M.A., Ovechkin G.V., Ovechkin P.V. "The use of multithreshold decoder in the data transmission system with multi-position modulation systems", Problems of transmission and processing of information in telecommunications networks and systems: 13th Intern. Scientific-Techn. Conf. (Problemy peredachi i obrabotki informatsii v setyakh i sistemakh telekommunikatsiy: 13-ya mezhdunar. nauch.-tekhn. konf.), Ryazan', RSRTA, 2004, pp. 58-59.
5. Zolotarev V.V. "The use of multithreshold decoder instead of a Viterbi algorithm", Bulletin of the Ryazan State Radio Engineering Academy (Vestnik Ryazanskoy gosudarstvennoy radiotekhnicheskoy akademii), 2002, iss. 10, pp. 117-119.
6. Sviridova I.V., Bashkirov A.V., Korotkov L.N. "The use of LDPC codes", Ihe Bulletin of Voronezh State Technical University (Vestnik Voronezhskogo gosudarstvennogo tekhnicheskogo universiteta), 2013, vol. 9, no. 6-3, pp. 41-44.
7. Bashkirov A.V., Khoroshaylova M.V., Beletskaya S.Yu. "Using stochastic computing to implement 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 03.04.2018; revised 11.05.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: [email protected], ORCID: http://orcid.org/0000-0003-0939-722X
Irina V. Sviridova, Assistant, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh 394026, Russia), e-mail: [email protected], ORCID: https://orcid.org/ 0000-0001-5279-0807
Dar'ya S. Andreeva, Student, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh 394026, Russia), e-mail: [email protected], ORCID: https://orcid.org/0000-0003-4946-5426