Модель масштабируемого LDPC-декодера низкой мощности с использованием алгоритмического синтеза высокого уровня

УДК 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: kipr@TOrstu.ru Коротков Леонид Николаевич - ВГТУ, д-р физ.-мат. наук, профессор, тел. 8(473) 243-77-06, e-mail: kipr@vorstu.ru

Хорошайлова Марина Владимировна - ВГТУ, аспирант, тел. 8-920-415-15-65, e-mail: pmv2205@mail.ru

в 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

Разработка архитектуры.

А. Первый слой архитектуры декодирования

В алгоритме 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

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

Ядро2

Уровень п

Уровень 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

Ядро 2

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

R SRAM

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 б) Стандартная площадь ячейки в общем

Рис. 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