DOI 10.25987/VSTU.2019.15.3.012 УДК 621.396
ПОСЛЕДОВАТЕЛЬНЫЙ LDPC-ДЕКОДЕР, РАБОТАЮЩИЙ ПО АЛГОРИТМУ MIN-SUM, И ЕГО РЕАЛИЗАЦИЯ НА ПЛИС
А.В. Башкиров, И.В. Свиридова, М.В. Хорошайлова Воронежский государственный технический университет, г. Воронеж, Россия
Аннотация: рассматривается схема последовательного LDPC-декодера для уменьшения сложности межсоединений в полностью параллельных кодах с малой плотностью проверок на чётность. Бит-последовательное декодирование также облегчает эффективную реализацию пространственно-программируемого декодирования LDPC. Чтобы упростить реализацию декодирования с битовой последовательностью, предложено новое приближение к функции обновления проверки в min-sum алгоритме декодирования. Предлагаемое правило обновления проверки вычисляет только абсолютный минимум и при необходимости корректирует исходящие сообщения. Также представлен 650 Мбит/c бит-последовательный (480, 355) LDPC-декодер на основе кода Рида-Соломона (RS), реализованный на ПЛИС Altera Stratix EP1S80. Это самый быстрый декодер LDPC на основе ПЛИС, о котором сообщалось в литературе. Описывается внутренняя архитектура для аппаратно-последовательной реализации битовых переменных и проверочных узлов. Также обсуждается, что в модифицированном алгоритме min-sum (MS) должна быть найдена только наименьшая величина среди всех проверочных входов. Кроме того, предложен алгоритм декодирования, который использует линейную аппроксимацию вместо одной нормализации или смещения для модифицированного обновления проверочного узла. Min-sum алгоритмы широко используются в практических приложениях благодаря их легкой аппаратной реализации
Ключевые слова: min-sum декодирование, LDPC-декодер, последовательное декодирование
Введение
Коды с малой плотностью проверок на четность (LDPC) [1] получили широкое распространение в системах передачи данных из-за их высокой производительности и возможности реализации параллельной архитектуры декодера. Коды LDPC допускают параллельное декодирование при передаче сообщений высокого уровня, в котором все проверочные и переменные узлы обновляются одновременно. Этот параллелизм потенциально может быть использован для построения декодера с пропускной способностью в несколько Гбит/с. Основным препятствием для эффективной реализации полностью параллельных LDPC-декодеров является сложность межсоединения, которая становится результатом случайного расположения единиц в матрице проверки четности кода.
В этой статье предложена бит-последовательная схема для полностью параллельных LDPC-декодеров. Бит-последовательное вычисление позволяет переменным и проверочным узлам передавать многобитовые сообщения по одному проводу, что снижает сложность межсоединений. Кроме то-
© Башкиров А.В., Свиридова И.В., Хорошайлова М.В., 2019
го, в статье предлагается новое приближенное значение для функции проверки обновлений при декодировании с минимальной суммой. В этом приближенном значении в каждом проверочном узле для всех входов проверочного узла вычисляется только одна минимальная величина. В зависимости от количества входов, которые имеют одинаковую минимальную величину, корректирующая константа затем добавляется для генерации правильных проверочных выходов. Показано, что при 4-битном квантовании это приближение уменьшает площадь проверочного узла на 48%, в то же время внося потери в производительность BER менее 0,1 дБ [1].
В статье показана возможность построения бит-последовательного LDPC-декодирования путем реализации (480, 355) кода Рида-Соломона LDPC-декодера на ПЛИС Altera Stratix EP1S80 на основе новой предложенной архитектуры проверочных узлов. Декодер работает с максимальной тактовой частотой 61 МГц, выполняет 15 итераций декодирования на кадр и обеспечивает пропускную способность 650 Мбит/с.
LDPC - код и min-sum декодирование
Двоичный (N, N-M) LDPC-код, C, является
пустым пространством разреженной матрицы проверки четности М х N Н. Он также может быть описан двудольным графом или графом Таннера. Граф Таннера ЬБРС-кода состоит из двух наборов узлов. Проверочные узлы {сь с2,.., см} представляют строки Н и переменные узлы (у1, у2,. , , , ук} представляют столбцы. Ребро соединяет проверочный узел ст с переменным узлом ут тогда и только тогда, когда Нтп не равен нулю. Для кода с полноразмерной матрицей проверки четности М х N Н, скорость кода составляет R = 1 - М/Ы. Множество переменных, участвующих в проверке ст, обозначим как N (т) = {п: Нтп = 1}, а множество проверочных, в которых участвует переменная Уп, через М (п) = {т: Нтп = 1}.
Мт-8ит (MS) декодирование можно рассматривать как приближенное значение к широко используемому итеративному алгоритму распространения доверия (SP). Хотя производительность MS, как правило, на несколько десятых дБ ниже, чем у декодирования SP, она более устойчива к ошибкам квантования при реализации с операциями с фиксированной запятой. Более того, для проверки функций узла требуется гораздо более простое аппаратное обеспечение по сравнению с декодированием SP. При декодировании MS, аналогично алгоритму SP, внешние сообщения передаются между проверочным и переменным узлами в форме логарифмического коэффициента правдоподобия (LLR). Пусть представляет значение LLR для бита п, отправляемое из переменного узла уп для проверки узла ст в i-И итерации, и аналогичным образом представляет значение LLR для бита п, отправляемое из проверочного узла ст в переменный узел уп в ь ю итерацию. Предположим, что W = w2, ..., WN) £ С и Y = (уь у2, ..., ук) - переданное кодовое слово и принятая последовательность соответственно. Алгоритм декодирования MS состоит из следующих этапов:
1. Инициализировать счетчик итераций, ь равным 1, и пусть 1м будет максимально допустимым числом итераций.
2. Инициализировать г*^ для апостериорной LLR, Хп = ^(Р(ьп = 0\уп )/Р(ип = 1 \уп)) для 1 <п< N. те М(п).
3. Обновить проверочные узлы, то есть для 1 < т < М, п е N (т), рассчитайте
4. Обновите переменные узлы, то есть для 1 < п < N, т е М (п), рассчитайте:
-(О _
ДО
пгем(т)\п
П 59П(2шп') (1)
тем(т)\п
гтп = ^ ет> п (2)
т'ЕМ(п)\т
5. Применить сложное решение, то есть вычислить = ж2), где элемент ш„ вычисляется как
=
0 если Лп + ^ е^ > О,
тем(п) 1 иначе.
Если У/НТ = 0 или i > 1М, прекратите декодирование и перейдите к шагу 6. В противном случае установите i = i + 1 и перейдите к шагу 3.
6. Вывести Щ (1') в качестве выхода декодера.
Реализация декодера
При декодировании LDPC с передачей сообщений большое количество сообщений необходимо обновлять и передавать между проверочными и переменными узлами в каждой итерации. В аналоговых декодерах экспоненциальная зависимость напряжения от тока транзистора используется для реализации функций обновления передачи сообщений. Хотя аналоговые декодеры имеют преимущество низкого энергопотребления, они становятся непрактичными для декодирования длинных кодов LDPC из-за шума и несоответствия процесса [2].
Более традиционные LDPC-декодеры часто используют многобитовые цифровые сигналы для представления сообщений. В частично-параллельных декодерах сообщения передаются между узлами через память.
Эта архитектура уменьшает область декодера за счет совместного использования блоков обработки, но это происходит за счет снижения пропускной способности. Чтобы достичь более высокой пропускной способности, в полностью параллельном декодере, все проверочные и переменные узлы непосредственно создаются в аппаратном обеспечении. При помощи этой архитектуры сообщается о пропускной способности 1 Гбит/с с 64 итерациями на кадр. Основной проблемой при реализации полностью параллельных LDPC-декодеров является сложное и случайное соединение между переменным и проверочными узлами. Эта проблема усугубляется, когда для реализации ребер в графе кода Таннера используются многобитовые шины.
Бит-последовательное вычисление
Чтобы уменьшить сложность межсоединения в полностью параллельных LDPC-декодерах, в этой статье мы исследуем последовательный битовый подход как для связи, так и для вычисления внешних сообщений. На рис. 1 показана разница между обычной параллельной битовой схемой и последовательной битовой схемой для простого случая передачи п-битного числа, Ьп ... Ъ2Ъь На рис. 1 (а) все п битов отправляются по п параллельным линиям за один такт. Напротив, в последовательной битовой схеме, как на рис. 1 (Ь), сообщение отправляется по одной строке за п тактов.
Рис. 1. Два варианта синхронной передачи п-битного числа: a - параллельного по битам: п битов, отправленных за один такт по п проводам; Ъ - последовательный бит: п битов, отправленных за п тактов по одному проводу
Стохастические вычисления аналогичны бит-последовательным вычислениям в том, что они передают внешние сообщения по одному проводу. Кроме того, стохастическое вычисление использует избыточное представление чисел, которое ограничивает пропускную способность декодера [3].
В дополнение к упрощению межузлового соединения бит-последовательный подход имеет ряд других преимуществ для полностью параллельных LDPC-декодеров. В последовательной битовой схеме длина слова вычислений может быть увеличена просто путем увеличения количества тактовых циклов, выделенных для передачи сообщений. Используя это свойство, точность декодера можно сделать программируемой, просто переназначая передачу сообщений между узлами без необходимости в дополнительных каналах маршрутизации. Программируемость длины слова декодера позволяет эффективно компенсировать сложность для эффективности исправления ошибок.
Это, в свою очередь, позволяет эффективно реализовать декодирование с переключением передач. Декодирование с переключением передач основано на идее изменения правила
обновления декодирования, используемого на разных итерациях, чтобы одновременно оптимизировать аппаратную сложность и производительность по исправлению ошибок. Например, декодирование с переключением передач часто предлагает применять сложное мощное правило обновления в первые несколько итераций, за которым следуют более простые функции обновления в последующих итерациях. Последовательное вычисление битов позволяет эффективно переключаться между правилами обновления, изменяя длину слова вычислений.
Последовательное битовое декодирование, однако, создает некоторые проблемы. Непосредственный эффект заключается в том, что он уменьшает пропускную способность декодера по сравнению с полностью параллельными реализациями, поскольку для передачи одного сообщения требуется несколько тактов. Хотя последовательные битовые полностью параллельные LDPC-декодеры имеют более низкую пропускную способность по сравнению с параллельными битовыми полностью параллельными LDPC-декодерами, в этой статье показано, что их пропускная способность все еще может быть выше, чем у схем аппаратного декодирования с совместным использованием.
Алгоритм декодирования М8, как описано выше, является громоздким, если реализован в последовательном аппаратном декодере битов. В этом разделе мы вводим приближенное значение к алгоритму М8, которое уменьшает аппаратную сложность проверочных узлов при минимальном ухудшении производительности кода. Фактически, это приближенное значение также применимо к бит-параллельным аппаратным декодерам.
Первый шаг - заменить проверочное правило обновления (1) на
(0
= min | z
тп WEN(m)
П 59П(2шп>) . (3)
тж 1 П s9™
n'EN(m)\n
Другими словами, знак выходных данных проверочного узла вычисляется точно так же, как и раньше, но теперь выходная величина является минимумом величин всех входных сообщений. На рис. 2 сравнивается производительность BER исходного алгоритма декодирования MS с модифицированным MS на основе (3) для двух кодов LDPC на основе RS с использованием вычислений с полной точностью. Этот граф показывает, что при вычислениях с полной точностью оба алгоритма работают по-
чти одинаково. Понятно, что проверочное правило обновления, как в (3), значительно уменьшает сложность оборудования. Причина в том, что как только найден минимум среди всех входных величин, он отправляется как ве-
личина всех исходящих сообщений, е
(О
для
всех п е N (т).
Вышеуказанная модификация MS почти не приводит к потере производительности при операциях с полной точностью, она вносит значительные потери при выполнении с конечной точностью. На рис. 3 показан эффект приближения MS применительно к квантованным сообщениям. Знак выходных сообщений в новом правиле проверки обновлений такой же, как в (3). Величина выходного сообщения рассчитывается следующим образом. Во-первых, для проверки узла ст в ьй итерации мы определяем
М.
(О _
min
. (О
weN(m) \^mni
(0<
Мы также определяем 1 < dc как число входов г^у, чтобы проверить узел ст, который удовлетворяет | г^ | = М^.
Величина выходных данных проверочного узла рассчитывается как
-(О I _
м.
И
+ 1 если Т. f = 1 и = М„
И
м.
( )
(4)
иначе
до менее 0,1 дБ при BER 10-6. Что еще более важно, эффект минимального уровня ошибки также избегается. Несмотря на дополнительное оборудование реализация VLSI контрольного узла степени 15 с использованием библиотеки ячеек CMOS - 90nm показывает, что проверочный узел на основе (4) на 48% меньше проверочного узла на основе (1). Это связано с тем, что нет необходимости вычислять второй минимум среди входных данных проверочного узла.
Рис. 3. Сравнение между оригинальным тт-8ит и модифицированным тт-8ит, как в (3) и (4) при операциях с фиксированной запятой для (2048, 1723) кода LDPC
1 ю-=
ю-
и ю-Е
-3
I : ! >
стотю-' min-sum. LDPC (2048. 1723) sramcoxГП|П—LDPC (204а. 1723J ¿йтоПга'п-5ит, LDPC 1992. ВЭЗ) . LDPC (9S2. .
i Н HiiH i i ^ ;; ...........:....... .....
:;;: :И::;;: |::::;;:; \ ............
г::: :: :: :::: :: :: :::::
:: :;:: :: :: К.....^..... i \ ;
; i ;
э.в
4.2 4.4 ЕЬ'ЫО
4.6
4.8
Рис. 2. Сравнение между оригинальным тт-8ит и модифицированным тт-8ит при операциях с полной точностью для кодов (2048, 1723) и (992, 833) LDPC
Результаты моделирования, представленные на рис. 3, показывают, что с новым правилом проверки обновлений с использованием 4-разрядного квантования разрыв производительности ББЯ по сравнению с исходным 4-разрядным алгоритмом MS уменьшен с 0,7 дБ
На рис. 4 показан конвейерный битовый последовательный модуль, который находит минимум проверочных входов. Этот модуль получает dc входы постоянного тока. Каждый вход представляет собой двоичное число n-битной величины знака, которое принимается последовательно (сначала MSB-бит). Выход представляет собой последовательный битовый n-битный номер, который соответствует наименьшей величине на входах. С каждым входом связан триггер, действующий как флаг состояния, который указывает, является ли этот вход кандидатом на то, чтобы быть минимальным. Вначале все флаги состояния сбрасываются на ноль. Когда принимаются биты MSB, некоторые флаги становятся «1», указывая на то, что соответствующий вход вне конкуренции. Схема на рис. 4 обрабатывает только величину входов проверочного узла, тогда как знаковый бит генерируется отдельно с использованием дерева XOR [4].
Рис. 4. Последовательный битовый модуль для определения минимальной величины входов проверочного узла
Рис. 5. Архитектура переменного узла степени 6 для вычислений (2). Каждый ящик сумматора состоит из полного сумматора и триггера для хранения переноса из предыдущего цикла
Чтобы найти эффективную бит- последовательную архитектуру переменного узла, мы исследовали две альтернативы. Первая архитектура, показанная на рис. 5, основана на вычислениях вперед-назад. Основное отличие состоит в том, что здесь все входы и выходы являются последовательными. Основная проблема с прямой и обратной архитектурой на рис. 5 состоит в том, что для переменного узла степени dv критический путь состоит из цепочки ^ -2) сумматоров с двумя входами. Для кодов LDPC с относительно высоким значением dv это может ограничивать временные характеристики декодера. Вторая архитектура переменных узлов, исследованная в этой статье, показана на рис. 6. В этой архитектуре битовые последовательные входы сначала преобразуются в параллельные входы, а затем дополнения выполняются за один цикл с использованием параллельных сумматоров. Параллельные выходы, наконец, преобразуются обратно в бит- последовательный формат перед отправкой на проверку узлов. Табл. 1 суммирует стоимость
оборудования VLSI и производительность синхронизации двух переменных узлов степени 6, соответствующих двум вышеупомянутым альтернативам. Параметры в этой таблице основаны на результатах синтеза с использованием библиотеки ячеек CMOS 90nm и с 3-битным квантованием. Основываясь на табл. 1, мы использовали архитектуру переменного узла, показанную на рис. 6, поскольку она превосходит как по срокам, так и по площади. Как проверочные, так и переменные узлы в этом проекте являются конвейерными. Для n-битных квантованных входных сообщений они генерируют n-битные выходные сообщения в n тактовых циклах. Каждая итерация декодирования передачи сообщений LDPC состоит из одной проверки и одного обновления узла переменной. В результате, используя обычную схему, необходимо 2n тактов для завершения одной итерации. В то время как проверочные узлы обрабатывают один кадр, переменные узлы обрабатывают соседний кадр. Таким образом, для выполнения одной итерации требуется всего n циклов, что удваивает пропускную способность.
Рис. 6. Архитектура переменного узла для вычислений (2) с параллельными сумматорами и параллельно-последовательными преобразователями на входах и выходах
Таблица 1
Сравнение архитектур с переменным узлом
на рис. 5 и на рис. 6 с с lv = 6
Архитектура Скорость Параллельный
записи- сумматор
чтения
Комбинационная зона 2484 2099
(цт2)
Некомбинационная 623 405
площадь (дт2)
Общая площадь (цт2) 3107 2504
Минимальный период 3 2,2
времени (нсек)
Чтобы продемонстрировать возможность бит-последовательного декодирования передачи сообщений, был разработан полностью параллельный (480, 355) декодер LDPC на основе кода Рида-Соломона на ПЛИС Altera Stratix EP1S80, используя настраиваемую макетную плату под названием Transmogrifier-4. Этот декодер обновляет внешние сообщения, используя архитектуру узлов, показанную на рис. 4 и рис. 6. Поскольку обновленные сообщения передаются последовательно по одному проводу, сложность соединений между узлами меньше, чем у традиционных параллельных битовых полностью параллельных декодеров. На рис. 7 показана измеренная производительность BER от аппаратного обеспечения декодера, а также симуляция истинного бита. В табл. 2 приведены результаты реализации на ПЛИС. Декодер работает на тактовой частоте 61 МГц и выполняет 15 итераций на кадр. Используя метод чередования блоков и длину слова в 3 бита, для каждой итерации требуется 3 такта, что приводит к общей пропускной способности 650 Мбит/с.
Таблица 2
(480,355) LDPC-декодер на основе кода Рида-Соломона, реализованный на Altera Stratix EP1S80
Рис. 7. Аппаратные результаты BER для ПЛИС и бит-истинная симуляция программного обеспечения
Заключение
В этой статье была представлена бит-последовательная архитектура для полностью параллельного LDPC-декодирования. Представлен полностью параллельный LDPC-декодер на основе ПЛИС с пропускной способностью 650 Мбит/с, основанный на представленных выше идеях, который является самым быстрым LDPC-декодером из встречающихся на сегодняшний момент в открытой литературе.
Литература
1. Золотарёв В.В., Овечкин Г.В. Помехоустойчивое кодирование. Методы и алгоритмы: учеб. пособие; под ред. Ю.Б. Зубарева. М.: Справочное издание, 2004. 126 с.
2. Свиридова И.В., Башкиров А.В., Андреева Д.С. Эффективная архитектура на основе ПЛИС для полностью параллельного стохастического LDPC-декодера // Вестник Воронежского государственного технического университета. 2018. Т. 14. № 3. С. 101-107.
3. Свиридова И.В., Башкиров А.В. Реализация стохастического LDPC-декодера на ПЛИС // Вестник Воронежского государственного технического университета. 2018. Т. 14. № 6. С. 103-107.
4. Башкиров А.В., Хорошайлова М.В., Белецкая С.Ю. Использование стохастического вычисления для реализации недвоичного LDPC-декодера на ПЛИС // Вестник Воронежского государственного технического университета. 2016. Т. 12. № 5. С. 70-73.
Поступила 02.04.2019; принята к публикации 06.06.2019
Информация об авторах
Башкиров Алексей Викторович - д-р техн. наук, доцент, Воронежский государственный технический университет (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-0001-9167-9538
Логические элементы 66,588 (84%)
Максимальная тактовая 61
частота (МГц)
Длина кода 480
Итераций на кадр 15
Длина слова 3
Пропускная способность 650
декодера (Мбит/с)
SERIAL LDPC DECODER WORKING FOR MIN-SUM ALGORITHM AND ITS IMPLEMENTATION ON FPGA
A.V. Bashkirov, I.V. Sviridova, M.V. Khoroshaylova
Voronezh State Technical University, Voronezh, Russia
Abstract: this article discusses the bit-serial LDPC decoder scheme for reducing the complexity of interconnects in fully parallel codes with a low density of parity checks. Bit-sequential decoding also facilitates the efficient implementation of spatially programmable LDPC decoding, which is necessary for decoding a shift program. To simplify the implementation of decoding with a bit sequence, this article proposes a new approximation to the min-sum update function of the decoding algorithm. The new check update rule calculates only the absolute minimum and, if necessary, corrects outgoing messages. Also the 650 Mbps bit-serial (480, 355) LDPC decoder is presented based on the Reed-Solomon code, implemented on the Altera Stratix EP1S80 FPGA. This is the fastest FPGA-based LDPC decoder reported in the literature. The article describes the internal architecture for the hardware-sequential implementation of bit variables and test nodes. It is also discussed that in the modified MS algorithm only the smallest value among all the test inputs should be found
Key words: min-sum decoding, LDPC decoder, bit-serial computation
References
1. Zolotaryev V.V., Ovechkin G.V., ed. Yu.B. Zubarev "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., Andreeva D.S. "Effective FPGA-based architecture for a fully parallel stochastic LDPC decoder", The Bulletin of Voronezh State Technical University (Vestnik Voronezhskogo gosudarstvennogo tekhnicheskogo universiteta), 2018, vol. 14, no. 3, pp. 101-107.
3. Sviridova I.V., Bashkirov A.V. "Implementation of a stochastic LDPC decoder on FPGA", The Bulletin of Voronezh State Technical University (Vestnik Voronezhskogo gosudarstvennogo tekhnicheskogo universiteta), 2018, vol. 14, no. 6, pp. 103-107.
4. Bashkirov A.V., Khoroshaylova M.V., Beletskaya S.Yu. "Use of stochastic computation for realization of non-binary LDPC-decoder on FPGA", The Bulletin of Voronezh State Technical University (Vestnik Voronezhskogo gosudarstvennogo tekhnicheskogo universiteta), 2016, vol. 12, no 5, pp. 70-73.
Submitted 02.04.2019; revised 06.06.2019
Information about the authors
Aleksey V. Bashkirov, Dr. 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 Professor, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh, 394026, Russia), e-mail: [email protected], ORCID: https://orcid.org/ 0000-0001-5279-0807
Marina V. Khoroshaylova, Assistant, Voronezh State Technical University, (14 Moskovskiy prospekt, Voronezh, 394026, Russia), e-mail: [email protected], tel. 8-910-732-66-13, ORCID: http://orcid.org/0000-0001-9167-9538