Слоистая архитектура декодера

реклама
Сравнительный анализ аппаратных
архитектур декодера 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
(zp1)
(1p1)
 (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 RL
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
jN m \ n
CN2
  signq
CN3
j ,m
(k  1)

jNm \ 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
jM n \ m
Mn – множество индексов проверочных узлов
смежных с кодовым VNn
(k )
Описание алгоритма Belief Propagation2/2
• Пересчет LLR бит кодового слова производится на каждой итерации на
основе сообщений от проверочных узлов
 n (k )  Lpr ( xn ) 
r
mN 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]
Скачать