Сравнительный анализ аппаратных архитектур декодера LDPC кодов для систем радиосвязи IEEE 802.11ad А.А. Шевченко1, 2, Р.О. Масленников 2, А.А. Мальцев1, М.В. Пантелеев1, 2, А.Ф. Клюев1, 2, А.Г. Ветчинкин1, 2 1 Нижегородский государственный университет им. Н.И.Лобачевского 2 ООО «Радио Гигабит» Содержание • • • • • Вступление Спецификация рассматриваемого LPDC кода Описание алгоритмов декодирования Обзор аппаратных архитектур декодера Анализ аппаратной эффективности рассматриваемых архитектур декодера • Заключение [2] Вступление • Коды с малой плотностью проверок на четность (Low Density Parity Check - LDPC) широко распространены в современных беспроводных системах связи - IEEE 802.11ad, 2nd Gen. DVB, IEEE 802.3an • Преимущество – высокая корректирующая способность кода и доступность высокопроизводительной аппаратной реализации с пропускной способность несколько Гбит/с • Относительный недостаток – в общем для кода в общем случае ограниченное число доступных вариантов аппаратных архитектур декодера • Решение – структурированные LDPC коды имеющие промежуточные решения аппаратных архитектур декодера [3] Введение в LDPC коды • Определяются проверочной матрицей H размером M×N обладающей свойством разреженности • Структура LDPC кода представляется в виде графа Таннера o Биты кодового слова - кодовые вершины (узлы) (VNm) o Проверочные уравнения – проверочные вершины (узлы) (CNm) o Ненулевые элементы матрицы Н – ребра между вершинами VN0 0 1 H 0 1 [4] 1 0 1 1 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 CN0 VN1 VN2 CN1 VN3 VN4 CN2 VN5 VN6 CN3 VN7 Спецификация LDPC кода стандарта IEEE 802.11ad • • • • • • Слой 1 Слой 3 [5] Квази-циклический LDPC код Макроматрица 8×16 с размером элементарной матрицы 42×42 Результирующий размер матрицы H – 336 × 672 Длина кодового слова - 672 бита Скорость кода - ½ Слоистая структура проверочной матрицы - 4 слоя 40 38 13 34 35 27 5 30 36 31 7 27 18 12 20 35 41 29 0 40 31 23 22 34 31 18 2 34 10 41 15 39 28 22 4 21 20 14 1 Слой 2 6 3 28 28 27 23 12 4 0 13 13 22 24 Слой 4 Алгоритм декодирования Belief Propagation • Наиболее распространенный алгоритм декодирования Belief-Propagation (BP) Использует логарифмические метрик отношения правдоподобия для каждого бита (LLR) кодового слова Каждый узел графа Таннера рассматривается как независимый процессор LLR бит итеративно обновляются каждым Кодовым узлом на основе информации от других Кодовых узлов Возможность раннего завершения декодирования на основе проверки синдромов В этом случае выполнение всех Nmax итераций не требуется [6] Модифицированный алгоритм декодирования • Рассматриваемый код может быть декодирован модификацией BP алгоритма называемой Layered Belief-Propagation (LBP) Требуется свойство слоистости H матрицы Одна итерация BP алгоритма разбивается на несколько подитераций Обновление LLR бит производится каждую подитерацию – в 4 раза чаще Быстрее сходимость алгоритма декодирования Улучшается корректирующая способность и уменьшается среднее число итераций декодирования для заданного кода [7] Полностью параллельная архитектура декодера ... • Доступен для любого LDPC кода • Напрямую реализует BP алгоритм – каждый узел соответствует аппаратному блоку ... • Одна итерация алгоритма ... выполняется за один такт • Преимущества Наибольшая пропускная 672 аппаратных кодовых узла способность и наименьшая задержка на декодирование 336 аппаратных проверочных узлов 4368 соединений • Недостатки Наибольшее количество ресурсов и затруднительность трассировки q1,1 Variable Node 1 r1,1 q2,2 Variable Node 2 Check Node 1 Check Node 2 r1,NZ-1 r2,2 qNZ-1,1 Variable Node NZ-1 qNZ,1 Variable Node NZ [8] qNZ,MZ Check Node MZ rNZ,MZ Слоистая архитектура декодера rZ,2 R-FIFO R-FIFO ... rZ,NZ-1 rZ,NZ R-FIFO R-FIFO Messages Delay Registers [9] Variable Node 1 q1,1 Variable Node 2 q2,2 Check Node 1 ... Variable Node NZ-1 Variable Node NZ qNZ-1,Z-1 Interconnection rZ,1 ... Check Node Z qNZ,1 Variable to Check Node Inverse Interconnection • Реализует LBP алгоритм – требует свойства слоистости • Переиспользует аппаратные проверочные узлы между подитерациями • Упрощается аппаратная архитектура кодовых узлов • Одна подитерация выполняется за один такт – требуется 4 такта для выполнения одной итерации Check to Variable Node 672 упрощенных кодовых узлов 84 битовых узлов 2 переконфигурируемых 672-на-672 коммутатора 672 линии задержки Последовательно-параллельная архитектура rz,m(k-1) R-Message RAM q1,m(k) ... qz,m(k) Variable Node Z (zp1) (1p1) (zp ) Lambda RAM qn,1(k) Permutator Variable Node 1 Variable to Check Node Permutatior Check Node 1 r1,n(k) ... qn,z(k) Check Node Z rz,n(k) Non-Permutator r1,m(k-1) r1,m(k) Check to Variable Node Inverse Permutatior (1p ) 42 кодовых узла 42 проверочных узла 2 переконфигурируемых 42-на-42 коммутатора сообщений [10] rz,m(k) • Использует квазициклическое свойство кода • Разбивает одну итерацию LBP алгоритма на Nne подитераций – 52 такта на выполнение одной итерации • Последовательно одновременно обновляются Z кодовых и проверочных узлов • Сообщения распределяются с помощью Z-на-Z коммутатора, управляемого значением циклического сдвига Сравнительный анализ архитектур декодера 1/2 • Пропускная способность аппаратного LDPC декодера: T f RL N iter S f - частота тактирования блока, L – длина кодового слова в битах, R – скорость кода, Niter – число итераций декодирования S – число тактов выполнения одной итерации • Niter выбирается как среднее число итераций для рабочего значения отношения сигнал-шум • Используемая аппаратная платформа – ПЛИС Xilinx Kintex7 XC7K325T (speed grade -2) • Единицы измерения аппаратных ресурсов - Slice LUTs и Slice registers • Аппаратная эффективность декодера – отношение пропускной способности декодера к числу задействованных Slice LUT (1 Мбит/с к 1000 LUT) [11] Сравнительный анализ архитектур декодера 1/2 Полностью параллельная Наибольшая пропускная способность - 6.5 Гбит/с Лучшая аппаратная эффективность на 1 Мбит/с пропускной способности Слоистая архитектура 2.08 Гбит/с пропускной способности – результат переиспользования проверочных узлов и лучшей сходимости Fully Layered parallel Число тактов одной итерации декодирования, S Число итераций декодирования, Niter SerialParallel 1 4 52 5.1 4.1 4.1 Пропускная способность, Мбит/с 6588 2064 159 LUTs, абсолютное 116779 63424 12814 57.3 31.1 5.7 16412 18975 3394 4 4 0.8 56.4 32.5 12.4 Самая компактная аппаратная реализация 11% используемых ресурсов от полностью параллельного случая LUTs, относительное % Число регистров, абсолютное Число регистров, относительное % Аппаратная эффективность, Mbit/s/1K LUT Результирующая пропускная способность 159 Мбит/с Частота тактирования цифрового блока декодера единая для всех архитектур и равна 100 МГц На 42% ниже аппаратная эффективность Последовательно-параллельная архитектура [12] Заключение • Представлены результаты для трех аппаратных реализаций декодера LDPC кода стандарта IEEE 802.11ad • Полностью параллельная архитектура – рекомендуется для задач требующих максимальную пропускную способность и минимальную задержку на декодирование • Слоистая архитектура – является промежуточным решением между последовательно-параллельным и полностью параллельным вариантами • Последовательно-параллельная архитектура – является платформой LDPC декодера для систем с относительно низкой пропускной способностью, но значительными аппаратными ограничениями • Использование малого числа ресурсов позволяет увеличить пропускную способность за счет параллельного использования нескольких декодеров [13] Спасибо за внимание! [14] Описание алгоритма Belief Propagation1/2 • В рамках одной итерации алгоритма последовательно обновляются проверочные и кодовые узлы o Обновление проверочных узлов VN1 VN2 VN3 (k q 1,1 q (k 3 ,1 VN4 VN5 ) 1 q 4 ,1 ( k Проверочный узел CNm формирует сообщение rm,n(k) каждому смежному с ним n-ому кодовому узлу VNn согласно: ) 1 jN m \ n CN2 signq CN3 j ,m (k 1) jNm \ n qj,m(k-1) – сообщение от кодового узла j к проверочному узлу m на (k-1)-ой итерации, Nm –множество индексов кодовых узлов смежных с проверочным CNm r1,n(k) CN1 rm,n (k ) min q j ,m (k 1) 1) CN4 o Обновление кодовых узлов VN1 VN2 VN3 VN4 VN5 q1,m(k) r3 ,1 ( r 1 ,1 k) (k qm,n (k ) Lpr ( xn ) ) CN1 [15] Кодовый узел VNn обрабатывает входные сообщения от смежных проверочных узлов, вычисляя сообщение для проверочного узла CNm CN2 CN3 CN4 r j ,n jM n \ m Mn – множество индексов проверочных узлов смежных с кодовым VNn (k ) Описание алгоритма Belief Propagation2/2 • Пересчет LLR бит кодового слова производится на каждой итерации на основе сообщений от проверочных узлов n (k ) Lpr ( xn ) r mN m m, n (k ) Λn(k) - LLR of n-th bit of the decoded codeword at k-th iteration • Обновленные метрики бит используются для получения «жесткого» решения для каждого бита кодового слова, используемого для вычисления синдрома ошибок 0, если n 0 cˆn 1, если n 0 s Hcˆ • Алгоритм завершает работу, если значение синдрома ошибки s равно нулевому вектору или при выполнении алгоритмом максимального количества итераций Kmax [16]