УДК 621.3.049.77
МОДЕЛЬ МАСШТАБИРУЕМОГО LDPC-ДЕКОДЕРА НИЗКОЙ МОЩНОСТИ С ИСПОЛЬЗОВАНИЕМ АЛГОРИТМИЧЕСКОГО СИНТЕЗА ВЫСОКОГО УРОВНЯ
А.В. Башкиров, Л.Н. Коротков, М.В. Хорошайлова
В данной статье представлено описание и моделирование масштабируемого LDPC-декодера следующего поколения беспроводной сети системы на кристалле (SoC). Методика основана на синтезе высокого уровня: PICO (program-in chip-out) был использован для получения эффективного RTL непосредственно из последовательного алгоритма C. Предложено две параллельных архитектуры LDPC-декодера: 1) декодирование архитектуры послойно с масштабируемым параллелизмом, и 2) многослойная конвейерная архитектура декодирования для достижения более высокой пропускной способности
Ключевые слова: кодирование, RTL-код, LDPC-декодер, алгоритм декодирования, матрица проверки на четность
Введение. Для обеспечения повсеместной мобильной связи, беспроводная связь переживает быстрый рост. Непрерывно меняющиеся и развивающиеся беспроводные спецификации представляют собой серьезную проблему для разработчиков, чтобы как можно быстрее реализовать эти весьма сложных алгоритмы на аппаратной платформе, сохраняя при этом площадь кристалла и эффективность питания. В качестве конкурентоспособной схемы кодирования для беспроводных систем следующего поколения, рассматриваются коды с низкой плотностью проверок на четность (LDPC) для многих систем 4G, потому что обладают отличной производительностью коррекции ошибок и высоко параллельной схемой декодирования. Удовлетворение скорости передачи данных и ограничения потребляемой мощности в беспроводных телефонах - является сложной задачей разработать LDPC декодер высокой производительности при низкой стоимости площади кристалла с уменьшенным временем реализации.
Поскольку разные стандарты используют различные коды LDPC, очень важно, чтобы модель LDPC декодера была гибкой, которая могла бы быть адаптирована к различным условиям использования. Для решения этой проблемы, некоторые эффективные архитектуры ASIC были предложены в различной литературе для достижения гибкости декодирования нескольких LDPC кодов. Тем не менее, одно ограничение этих частично-параллельных архитектур, что уровень параллелизма должен быть на суб-циркулянтном уровне. В этой статье рассмотрим модель параллельных реализаций LDPC декодеров с использованием методологии синтеза высокого уровня (HLS). Здесь предлагается два параллельных LDPC алгоритма декодирования, которые могут быть использованы
Башкиров Алексей Викторович - ВГТУ, канд. техн. наук, доцент, тел. 8-952-543-99-88, e-mail: [email protected] Коротков Леонид Николаевич - ВГТУ, д-р физ.-мат. наук, профессор, тел. 8(473) 243-77-06, e-mail: [email protected]
Хорошайлова Марина Владимировна - ВГТУ, аспирант, тел. 8-920-415-15-65, e-mail: [email protected]
в HLS для получения площади и энергоэффективного оборудования.
Платформа PICO. Разработчики PICO ("Program In, Chip Out") назвали такой подход архитектурным синтезом, чтобы отделить его от поведенческого и логического синтеза.
Для приложения, написанного на C, автоматически строится множество проектов и выбирается оптимальный в смысле Парето, а также строится структурное описание VHDL-компонент и скомпилированный код для программного обеспечения.
Пользователь предоставляет описание на языке C их алгоритма наряду с требованиями к производительности и функциональных входных испытаний. Система PICO автоматически генерирует синтезируемый RTL, модели SystemC на разных уровнях точности, а также сценарии в синтезе и моделировании. PICO основан на передовом распараллеливающем компиляторе, который находит и использует параллелизм на всех уровнях в коде C.
PICO обеспечивает иерархическую возможность проектирования многоуровневых сложных конструкций, таких как LDPC декодеров и блочного клокового стробирования, чтобы минимизировать мощность на уровне архитектуры. Качество генерируемого RTL является конкурентоспособным с ручным дизайном, и RTL гарантированно будет функционально эквивалентно алгоритмическому входному описанию С. Сформированный RTL потом может быть принят через стандартные моделирования, синтеза, размещения и инструменты трассировки и интегрирован в SoC через автоматически конфигурируемые скрипты.
Алгоритм декодирования Двоичный LDPC код-это линейный блоковый код с разреженой матрицей проверки на четность M*N: H ■ xT = 0, где х - это кодовое слово, а Н можно рассматривать как двудольный граф, где каждый столбец и строка в H представляют собой переменный узел и узел проверки, соответственно. В этой статье мы остановимся на специальном классе кодов, так называемых блок-структурированные коды LDPC, которые принимаются многими новыми беспроводными стандартами. Как показано на рис. 1, блок-структурированную матрицу проверки на четность
можно рассматривать как двумерный массив квадратных подматрицы. Каждая субматрица либо нулевая матрица, либо циркулянт z по z веса 1. Размер матрицы Н различается для разных стандартов: например максимальная длина блока 2304 для IEEE 802.16e и 1944 для IEEE 802.11n Для описания алгоритма декодирования , определим Nm как набор переменных узлов, соединенных с проверочным узлам т, и Л„, п как набор Л m с исключенным уз-
н
□E0D0D □B00D0 □□□Ш00
Переменный узел
Размер кластер а ¿=4-
лом п. Ятп и Qmn проверочное и переменное сообщения, соответственно. Рп -апостериорная вероятность логарифмического отношения правдоподобия переменного узла п. Н - 1-й уровень Н. уп - полученные данные канала. с2 - это дисперсия шума. Слоистый масштабируемый алгоритм декодирования тт^ит является обобщенным в алгоритме 1.
Уровень 1 Уровень 2 Уровень 3
Проверочный узел
Рис. 1. Пример 3x6 блоков структурированной матрицы проверки на четность.
Алгоритм 1. Многослойный масштабируемый алгоритм min-sum_
Инициализация: V(m, n) с H(m,n)=1, заданы
P =
2 Уп
R =0 ° Итерация:
for iteration i = 1 to I do for layer l = 1 to L do
Этап 1) Чтение и предварительная
обработка:
: V(m, n) c Hl (m, n) = 1:
Расчет
Q = p - R
^ mn n m
Этап 2) Декодирование и запись обратно: V(m, n) с Hl (m, n) = 1: f \ min Q .
V JeNm '<n
R = 0.75хП sign(Q .)X
mn HjeN, \n 0 mJ '
p'= Q + R
n mn mn
Запись Pn и Rmn обратно в память end for end for
Принятие решения: xn = sign(Pn)
Разработка архитектуры.
А. Первый слой архитектуры декодирования
В алгоритме 1, одна полная итерация делится на L суб-итераций, где каждая суб-итерация соответствует обработке данных одного слоя. В традиционной частично параллельной архитектуре деко-
дера каждая z х z подматрица рассматривается как блок, в пределах которого все вовлеченные проверки на четность обрабатываются параллельно с помощью z числа декодирования ядра. Каждое ядро не зависит от всех остальных, так как нет зависимости данных между соседними рядами проверки. Параллелизм только на суб-циркулянтном уровне, потому что легче рассматривать каждую цирку-лянтную суб-матрицу в виде целого блока обработки. Тем не менее, различные системы требуют различных уровней параллелизма. Модель СБИС LDPC декодеров с масштабируемым параллелизмом в основном отсутствует в литературе. Поскольку проверочные матрицы, определенные в различных беспроводных стандартах, могут быть очень разными, это создает проблемы для ручного кодирования RTL дизайнеров.
В качестве примера рассмотрим WiMax LDPC декодер, где z находится между 24 и 96. Структура на рис. 2а) соответствует традиционной архитектуре WiMax LDPC декодера, где z = 96 генерируемых ядер для обеспечения максимальной параллельности. Директива "#pragma unroll" используется в программе C, чтобы сообщить компилятору PICO развернуть этот цикл. Рис. 2б) показывает способ частично развернутого цикла: внутренний цикл разворачивается на 48, во внешним контуре 2 итерации, что соответствует конвейерным данным более 48 ядер, последовательно, по 2 раза. Таким образом, несколько уровней параллелизма может быть реализовано, чтобы приспособить производительность согласно требованию приложений.
Чтение Pn и Rmn из памяти
«pragma unroll for (*=0: A<96; k++)\ decoder core ();
Compile
tor(/'=0; /<2; /'++){ »¿pragma unroll for (<r=0: A<48 decodercore ()
1 rt-n
Compile
Core x48
а) Параллелизм = 96
Рис. 2. Масштабируемый Для реализации алгоритма 1 в аппаратуре, предложим двухэтапный послойный алгоритм планирования, который показан на рис. 3. Это последовательный блок алгоритма планирования: данные в каждом слое обрабатываются блок-столбец за блок-колонка. Ядро 1 первым считывает вектор (размер от 1 до z) Pn и Rmn сообщений из памяти, вычисляет Qmn, а затем находит минимальное и второе минимальное значения среди массива Qmn для каждой строки m в течении всей колонки п. Ядро 2 рассчитывает новые значения Pn' и Rmn' на основе двух минимальных значений, полученных ядром 1, и записывает новые Pn' и Rmn' значения обратно в память. Значения Qmn, рассчитанные в ядре 1, хранятся в массиве, чтобы они могли быть повторно использованы ядром 2.
Ядро 1 (z копий) Ядро 1 (l копий)
Ядро2 (z копий) Ядро 2 (z копий)
Уровень п
Уровень 11+1
Рис. 3. Послойный алгоритм декодирования
_^ремя
' 6) Параллелизм = 48
канал передачи данных по PICO
На рис. 4 показана соответствующая блок-схема генерируемой аппаратной архитектуры PICO. Верхний уровень LDPC decoder() переберет по I итераций. В каждой итерации, перебирает по L слою проверочной матрицы, и называется decoder core1() и decoder core2(). Функция верхнего уровня может вернуться раньше, если все проверки четности удовлетворены или достигнуто максимальное число итераций. Оба сообщения P и R представлены в формате 8-ми разрядного числа с фиксированной точкой. Все массивы, представленные в блок-схеме, объявлены как глобальные массивы С, синтезируемые в регистровых файлах, реализованных в триггере.
Б. Многослойная конвейерная архитектура декодера
В архитектуре каждого слоя, использование ядра не велико(около 50%, как показано на рис. 3). Тем не менее, можно делать конвейерную обработку между слоями, так что в то время как ядро 2 работает на текущем слое, ядро 1 может начать работать на следующем слое матрицы, как показано на рис. 5.
,J BnrtuooiSRAM WW
P SRAM (24 х 768 t»t») R SRAM (84 > 788 M»
forti О:<</;/»♦)( fof(M);/<£;/♦♦)( opnignu unroll Гос(/-Ю:у<г./*+)! txmvl filler < I :
»pragnu unroll lurU O k-corcl_dpO:
•
"prignu unroll lot (m 0; w :; m' * > ! corc2_dp < ) :
Ллгиратми rtHtpuou
LOPC docodor
J ipecoOei core 1 (iaaanoстолбцам « Nuipioai
bamt »Mt«r
3E
corel dp cluster
JUL
Ж
cor»l_dp
S
Ж
ccre1_dp
Bc«ro96 попки
decodor core7 (toon no столбцам млтрюл:
cor»2dpclu*l«r
Б
cor»2_dp
TT
S
coro 2 dp
TT
Bc«o9i
* *' КОПИЛ
ROM Мзтрко: гроЕ5р»: на четкого
ИР
гтио2лгтш/
poal array ИР
signarrsy
им м»
О array
Рис. 4. Блок-схема аппаратной архитектуры PICO для каждого слоя декодирования (2304, 1/2) WiMax LDPC кода
Ядро 1 (z копий) .Ядро 1 (z копий)
Ядро 2 (z копий) Ядро 2 (z копий)
V
Слой п К__
Слой п+1 _ -:-►Бремя
Рис. 5. Многослойный алгоритм конвейерного
декодирования Для того, чтобы конвейер ядра 1 и ядра 2, дополнить логикой обнаружения конфликта необходимо вставить блок циклов, чтобы избежать помех в конвейере, где ядро 1 считывает Рп сообщений с места, прежде чем ядро 2 запишет в это место. Чтобы добиться этого, добавим переменную, которая
устанавливается на содержание 1 в бите n, если и только если записи в Pn в ожидании ядром 2 для ряда m. Как ядро 2 записывает каждому Рп, будет очищать бит n по табло. Как ядро 1 обрабатывает колонку N, будет проверять, имеет ли табло 1 в бите n. Если это так, то ядро 1 ничего не будет делать для этоq итерации, таким образом, ожидая пока ядро 2 запишет Pn перед чтением из Pn. На рис. 6 показана блок-схема двухслойной конвейерной PICO аппаратной архитектуры. Эта архитектура похожа на архитектуру каждого слоя за исключением того, что каждое ядро теперь имеет собственные копии массивов, и Q массив был заменен Q FIFO.
BHeinreriiSRAM
Р SRAM (24 х 768 bits)
R SRAM (84 x 768 bits)
for(»=0; i</: H+M for (/=0;/<£;/++)( «pragma unroll for (y=0:/'<;:/'—)| barrel shifter();
«pragma unroll for (£=0; k<~, *++){
check_scoreboard();
corel _ilp ();
set scoreboard!);
i
i
«pragma unroll for (»1=0; m<:: m++) t core2 dp (); clear scoreboard ();
PPA
.Аппаратная генерация
LDPC decoder
, ^ecoder_core1 (цикл по столбцам матрицы)
Ьагте! shifter
ЗЕ
coreldpcluster
Ж
core1_dp i * j"* i
Ж
core1_dp
I I W I
Всего 96 копий
sign_array
ж:
Q_airay FIFO
JU
secoder core? (цикл по столбцам матрицы)
core2_dp_cluster
L^UjjjH^l pos 1_a/j s,9'n_aray |
IHIt
core2_dp
Ж
IIIH
core2_dp
Ж
Всего 96 копий
ROM мзтриа;
ГрОБ^рШ КЗ
Рис. 6. Блок-схема аппаратной архитектуры PICO для двухслойного конвейерного декодирования (2304, 1/2) WiMax
LDPC кода
250
200
3 150
5
U'
¡4юо
50
I Послойно Дсухслгххы 1 ксгаейзркццц
irr
11 I I
100
200
300
400 MHz
а) Задержка на одну итерацию
100 200 300 400 MHz б) Стандартная площадь ячейки в общем (90 нм)
Рис. 7. Сравнение задержки и площади (90 нм) двух аппаратных PICO архитектур, синтезированных для различных
целей 68
Рис. 7 сравнивает латентность и площадь этих двух архитектур. При анализе RTLS генерируются PICO и синтезированы с использованием Synopsys Design Compiler по технологии 90nm. Значение площадей, показаных на рис. 7 для полных стандартных ячеек. Это дает верное сравнение, так как две архитектуры требуют такое же количество внешних SRAMs. На рис. 7 видно, что латентность и площадь увеличиваются при увеличении тактовой частоты. Ожидается, что это потому, что PICO будет регулировать конструкции и, обретает лучшее решение для данной частоты.
Результаты реализации и сравнение. Гибкий LDPC декодер, который полностью поддерживает стандарт IEEE 802.16e WiMax, был описан в PICO. Затем инструмент PICO использовали для получения Verilog RTL для предлагаемой двухслойной конвейерной LDPC архитектуры декодера. Генерируемый RTL синтезировали с использованием Synopsys Design Compiler, при помощи Cadence SoC Encounter передали на 90-нм 0.9V 8-металлический слой КМОП технологии.
Заключение. Был описан и реализован LDPC декодер высокой производительности и низким питанием на основе PICO синтеза высокого уровня потока. Два параллельных архитектур декодер вводятся и сравниваются. Декодер, который был реа-
Воронежский государственный технический университет
лизован на технологии 90 нм CMOS, обеспечивает сравнимые результаты к ручному кодированию конструкции и значительно снижает время разработки.
Литература
1. Григорьев В.А. Системы и сети радиодоступа// В.А. Григорьев, О.И. Лагутенко, Ю.А. Распаев. М.,:ЭкоТрендз, 2005 г.
2. Lamme Т., Potter D., Chellis J. CCNA: Cisco certified network associate//Network press, 1998, р. 538.
3. Башкиров, А.В. Основы помехоустойчивого кодирования, основные преимущества и недостатки алгоритмов декодирования [Текст] / А.В. Башкиров, И.В. Остроумов, И.В. Свиридова // Вестник Воронежского государственного технического университета. - 2012. -Т. 8. -№ 2. - С. 20-22.
4. Камайкин А.Г. Корпоративные сети Wi-Fi// А.Г. Камайкин, И.Е. Осипов, О.Е. Шумарин, Технологии и средства связи. 2006. № 1.
MODEL LDPC LOW POWER SCALABLE DECODER USING THE HIGH-LEVEL
ALGORITHMIC SYNTHESIS
A.V. Bashkirov, L.N. Korotkov, M.V. Horoshaylova
This article provides a description and simulation of LDPC decoder scalable next-generation wireless network system-on-chip (SoC). The technique is based on the high-level synthesis: PICO (program-in chip-out) was used to obtain an effective RTL directly from the serial algorithm C. Proposed two parallel architecture LDPC-decoder: 1) decoding architecture with scalable parallel layers, and 2) a multi-layer conveyor decoding architecture to achieve higher throughput
Key words: encoding, RTL-code, LDPC -decoder decoding algorithm, the parity check matrix