CN101267209B - Ldpc译码的循环式分级最小值计算方法及其实现装置 - Google Patents

Ldpc译码的循环式分级最小值计算方法及其实现装置 Download PDF

Info

Publication number
CN101267209B
CN101267209B CN2008101054484A CN200810105448A CN101267209B CN 101267209 B CN101267209 B CN 101267209B CN 2008101054484 A CN2008101054484 A CN 2008101054484A CN 200810105448 A CN200810105448 A CN 200810105448A CN 101267209 B CN101267209 B CN 101267209B
Authority
CN
China
Prior art keywords
minimum value
minimum
calculation
input
hpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008101054484A
Other languages
English (en)
Other versions
CN101267209A (zh
Inventor
彭克武
江南
杨知行
符剑
张彧
阳辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN2008101054484A priority Critical patent/CN101267209B/zh
Publication of CN101267209A publication Critical patent/CN101267209A/zh
Application granted granted Critical
Publication of CN101267209B publication Critical patent/CN101267209B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

LDPC译码的循环式分级最小值计算方法及其实现装置,属于数字信息传输技术领域。所述方法用由比较器和选择器组成的基本最小值计算模块,按照循环式分级的结构,实现基于最小和算法及其改进算法的低密度校验码译码器中水平运算单元的最小值计算,能够简化低密度校验码译码器的设计过程,降低译码器中水平运算单元的逻辑资源消耗量。基于本发明所述的最小值计算方法及其实现装置,能够直接设计出流水线的水平运算单元,可分解水平运算单元的延时路径,提高译码器的工作时钟频率,提高译码吞吐率性能。

Description

LDPC译码的循环式分级最小值计算方法及其实现装置
技术领域
本发明属于数字信息传输技术领域,具体涉及到用于通信和广播系统中的LDPC译码的循环式分级最小值计算方法及其实现装置。
背景技术
所述LDPC,即Low-density parity-check,低密度校验,缩写为LDPC,这种译码最早由Gallager于1962年提出(Robert G.Gallager,“Low-density parity-check codes,”IRE Transactionon Information Theory,IT-18,pp.21-28,Jan.1962),因为相对于当时电子器件处理能力,其编解码的计算非常复杂,直到上世纪90年代才引起人们的关注,并因为其突出的编码性能,越来越广泛地应用到通信和广播的系统和标准中。LDPC码作为一种线性分组码,由其校验矩阵H进行描述,其所有码字正交于校验矩阵H的行空间。LDPC码的校验矩阵密度低,即包含大量的O元素,而1的数量非常小。
准循环低密度校验(QC-LDPC)码是一种分块结构(array-structured)LDPC码,其校验矩阵是由一系列大小相同的方阵构成的分块矩阵,可表示为
Figure S2008101054484D00011
其中,A是b×b的方阵,它是零方阵或者循环移位方阵。循环移位方阵是由单位矩阵的每一行进行循环移位得到的,偏移量δ表示行循环移位的位数。例如,一个δ=2的6×6循环移位方阵为
A = 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 .
LDPC码的软判决译码算法有:和积算法(sum-product algorithm)、最小和算法(min-sumalgorithm)、归一化最小和算法(normalized min-sum algorithm)和偏移最小和算法(offsetmin-sum algortihm)等,这些算法以置信度传播的循环译码方法为基础发展而来。LDPC码在采用和积算法译码时能够逼近香农编码极限,但和积译码算法的计算复杂度较高。归一化最小和以及偏移最小和是最小和算法的改进算法。归一化最小和算法能够显著降低译码运算的计算复杂度,并且在采用理想的归一化因子时,可以达到甚至胜过和积算法的性能。在加性高斯白噪声(additive white Gaussian noise,AWGN)信道及二进制相位键控(binary phse-shiftkeying,BPSK)调制的条件下,归一化最小和算法的步骤描述可参见如下资料(Jinghu Chen andMarc P.C.Fossorier,”Near optimum universal belief propagation based decoding oflow-densityparity check codes,”IEEE Transaction on Communication,Vol.50,No.3,pp.406-414,Mar.2002.)。其中,Pn是输入译码器的比特对数似然值(logarithm likelihood ratio,LLR);校验矩阵中的每一个非零元素,都有一个校验结点信息Lmn (k)和一个变量结点信息Zmn(k);Zn (k)是计算得到的新对数似然值;α是归一化因子;N(m)={n|hmn=1};M(n)={m|hmn=1}。
所述归一化最小和算法,其步骤可包含以下5部分内容:
1初始化
对所有Qmn进行初始化:
Z mn ( 0 ) = P n .
2水平运算
从m=0到M-1,对每一个n∈N(m)计算
L mn ( k ) α · Π n ′ ∈ N ( m ) \ n sgn ( Z mn ′ ( k - 1 ) ) · min n ′ ∈ N ( m ) \ n | Z mn ′ ( k - 1 ) | .
3垂直运算
从n=0到N-1,计算
Z n ( k ) = P n + Σ m ∈ M ( n ) L mn ′ ( k ) ,
并对每一个m∈M(n)计算变量结点信息
Z mn ( k ) = Z n ( k ) - L mn ( k ) .
4判决
从n=0到N-1,根据Zn (k)的符号进行硬判决得到
Figure S2008101054484D00025
并构造判决码字 c ^ ( k ) = [ c ^ n ( k ) ] .
5循环结束条件
若达到最大循环数或 c ^ ( k ) · H T = = 0 , 循环结束,输出码字否则返回2,继续循环。
对于准循环低密度校验(QC-LDPC)码,半并行译码器能够较好地平衡译码吞吐率和硬件复杂度,它利用QC-LDPC的准循环特征,重复利用水平运算单元HPU和垂直运算单元VPU,从而降低硬件资源消耗(Marian Karkooti,“Semi-parallel architecture for real-time LDPCcoding,”Master Science thesis,Rice University,Houston,Texas,May 2004.)。在已有技术中,一般的半并行译码器的基本结构如图1所示。它包括:
(1)PRAM:存储Pn的存储器;
(2)HPU:水平运算单元,实现水平运算;
(3)VPU:垂直运算单元,实现垂直运算;
(4)LRAM:存储校验结点信息,即HPU的运算结果;
(5)ZRAM:存储变量结点信息,即VPU的运算结果;
(6)控制单元:对译码器进行控制和同步,产生各存储器的读写地址,检验是否满足循环结束条件。
已有的译码器工作流程如下:
(1)输入过程:将输入的信道信息写入到PRAM,并启动译码。
(2)初始化:LRAM清零,即输出0,进行一次垂直运算,从而用信道信息初始化ZRAM。
(3)水平运算:HPU从ZRAM读取校验结点信息来计算变量结点信息并将计算结果写入LRAM。同时,HPU判断上一次循环的硬判决比特是否构成合法码字。
(4)垂直运算:VPU从LRAM读取变量结点信息来计算校验结点信息并将计算结果写入ZRAM。同时,VPU根据比特对数似然比进行硬判决。
(5)输出过程:根据HPU的检验结果以及当前循环计数,判决是否满足循环结束条件如果满足循环结束条件,输出硬判决码字,停止译码;否则,返回(3)继续循环。
已有的LDPC译码器采用传统结构的HPU,它由复杂的组合逻辑电路实现,特别是在行重较大时,HPU处理的变量结点信息数目很大,HPU会构成很长的关键路径,严重限制了译码器的工作时钟频率,从而制约了系统的吞吐率。
对于包含λ(λ为正整数)个输入的HPU,将其λ个输入简化表示为
Figure S2008101054484D00033
归一化最小和译码算法中每个HPU完成从i=0到(λ-1)进行λ次如下所示的水平运算
L i = α · Π j = 0 j ≠ i λ - 1 sgn ( Z j ) · min j = 0,1 , . . . , λ - 1 j ≠ i | Z j | .
将水平运算划分为三个步骤:
1)绝对值计算:
ρj=|Zj|,j=0,1,...,λ-1;
2)最小值计算:
m i = min j = 0,1 , . . . , λ - 1 j ≠ i ρ j , i=0,1,...,λ-1                        (2)
3)符号恢复及归一化:
L i = α · Π j = 0 j ≠ i λ - 1 sgn ( Z j ) · m i , i=0,1,...,λ-1
其中,如(2)式所示的最小值计算相对较复杂。λ输入的HPU,需要计算λ个集合的最小值,这些集合都包含(λ-1)个元素,它们所包含的元素不完全相同。
发明内容
本发明需要解决的技术问题是,针对已有的LDPC译码器传统使用的HPU结构中,其最小值计算复杂,使得呈现HPU结构复杂、关键路径长、延时大等诸多不足,限制了LDPC译码器的工作速度,制约了译码器的吞吐率性能。为了克服传统使用的HPU的这些不足,本发明提出了一种循环式分级的最小值计算方法,用于完成基于最小和算法及其改进算法的LDPC译码器HPU中的最小值计算,从而简化HPU的设计,降低HPU的硬件资源消耗量。本发明的目的是提供一种LDPC译码的循环式分级最小值计算方法及其实现装置,按照本发明所述的循环式分级最小值计算方法,能够直接得出规则、高效的流水线HPU,将LDPC译码器中的水平运算操作分成若干个步骤并按照流水线工作方式在不同的时钟周期相继实现,从而能够分解LDPC译码器的关键路径,相比传统使用的HPU,本发明所述的方法只需增加用于流水线的寄存器资源,就能显著提高LDPC译码器的工作时钟频率和译码吞吐率。
为实现本发明目的所采用的技术方案如下:LDPC译码的循环式分级最小值计算方法,其特征在于,本方法采用循环式分级最小值计算装置,对输入到水平运算单元的λ个元素进行最小值计算,所述装置包括T个分级,每个分级包括λ个最小值计算模块mint,j,所述mint,j的第一个下标t为其自身所在的分级编号,第二个下标为其自身在所在分级中的编号,其中,所述mint,j具有S个输入,j=0、1、2……λ-1,1≤t≤T-1,1<S<λ,本方法步骤如下:
步骤A:初始化t=1,第1分级的min1,j对第j至(j+S-1)*个元素进行最小值计算,所得计算结果为从第j个元素开始的连续S个元素的最小值,其中,*为对λ的取模运算;
步骤B:t=t+1,第t分级的mint,j对mint-1,j
Figure DEST_PATH_GSB00000058702300021
Figure DEST_PATH_GSB00000058702300022
Figure DEST_PATH_GSB00000058702300023
的输出进行最小值计算,所得计算结果为从第j个元素开始的连续St个元素的最小值;
步骤C:判断λ-1>St+1?如果不等式成立返回步骤B,否则进入步骤D;
步骤D:第T级的minT,j对第T-1级中的从第j个最小值计算模块开始的连续λ-St+1个最小值计算模块的输出进行最小值计算,所得计算结果为从第j个元素开始的连续(λ-1)个元素的最小值。
本发明所述的LDPC译码的循环式分级最小值计算方法所用到的循环式分级最小值计算装置,该装置采用具有S个输入的最小值计算模块分步骤地完成对输入到HPU中的λ个元素进行最小值计算,其特征在于,该实现装置的组成,包含
Figure DEST_PATH_GSB00000058702300024
个分级,将第2至T-1分级称为中间级,每个分级由λ个具有S个输入最小值计算模块组成,其中,
第1级,分别对λ组输入元素计算最小值,每组包含S个输入元素,计算得出的结果为从每一个元素开始的循环式连续的S个元素的最小值;
中间级(第t级,t=2…,T-1),分别对λ组前级计算结果计算最小值,每组包含S个所覆盖元素互不相同的前级计算出的最小值,计算得出的结果为从每一个元素开始的循环式连续的St个元素的最小值;
第T级,分别对λ组前级计算结果计算最小值,每组包含(λ-ST-1)个循环式连续的前级计算出的最小值,计算得出的结果为从每一个元素开始的循环式连续的(λ-1)个元素的最小值。
本发明所述的循环式分级最小值计算方法的有益效果是:能够简化LDPC译码器中HPU的设计,降低HPU的硬件资源消耗;并且按照本发明所述的循环式分级最小值计算方法及其实现装置,可直接实现流水线结构的HPU,分解HPU的延时路径,所述装置的一级或多级可作为一个流水级,对每个流水级在每个时钟周期内的计算结果进行寄存,可直接实现流水线水平运算单元,能够提高译码器的工作时钟频率和吞吐率,从而实现高速半并行LDPC译码器。
本发明提所述的分级HPU结构的具体优越性如下:
1.结构简单。采用多级逻辑运算器级联结构,其中每一级都由简单的基本运算单元组成。该级联结构的每一级输出可以直接送至后级,后级的运算可以直接利用前级的输出。
2.结构规则。各级流水线具有相似的结构,水平运算均匀的分布到各流水级中,计算延时得到显著降低。
3.通用性。而本发明提出的HPU分级结构,对不同大小的HPU具有通用性,能够简化HPU的设计过程。
4.适合高速时钟的实现。按照分级结构,很容易流水线实现HPU,可以达到较高译码器工作频率。
附图说明
图1是已知半并行LDPC译码器的结构图;
图2是2输入最小值计算模块的硬件实现结构图;
图3是本发明LDPC译码的循环式分级最小值计算方法的流程图;
图4是基于2输入最小值计算模块的循环式分级最小值计算装置的结构示意图;
图5是基于3输入最小值计算模块的循环式分级最小值计算装置的结构示意图;
图6是基于循环式分级最小值计算方法的7输入HPU流水线结构图;
图7是基于循环式分级最小值计算方法的5输入HPU流水线结构图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
参照图1,表示已知技术中半并行LDPC译码器的结构示意图,图中表明该译码器结构的6个部分,它们分别为PRAM部件101、HPU单元102、VPU单元103、LRAM单元104、ZRAM单元105、以及控制单元106。
在水平运算中,需要计算λ个集合的最小值,其中,每个集合包含(λ-1)个元素,如(2)式所示。上述集合互有交集,但又不完全相同。如何以较低的计算量计算出所需要的最小值,是解码器HPU设计和实现中的一个值得考虑的问题,也是本发明所解决的主要问题。
需要计算最小值的集合,是从所有λ个输入元素所组成的集合中分别排除一个元素,所得到的λ个不同的集合。按照(1)式,可以将所有元素循环排列,即定义循环符号
j*=jmodλ。                    (3)
按照循环的排列方式,所有的元素循环地首尾相接,例如,Z0=Zλ*与Zλ-1是相邻的元素。于是,需要计算最小值的集合可表示为
0,ρ1,…ρλ-2},
1,ρ2,…ρλ-1},
j,ρ(j+1) *,…ρ(j+λ-2) *},
λ-1,ρλ *,…ρ(λ-1+λ-2) *}.
即所有输入元素组成的集合中从每一个元素开始的(λ-1)个连续的元素组成的集合。这里,元素的连续是在循环排列方式下的连续。
如果我们采用能够计算出(λ-1)个值中的最小值的逻辑模块,即(λ-1)输入的最小值计算模块,来实现HPU,那么,将上述集合的元素分别送到λ个(λ-1)输入的最小值计算模块,就能完成HPU中的最小值计算。为了保证LDPC码具有较好的纠错能力,LDPC码的行重不能太小,如中国数字电视地面广播标准(数字电视地面广播传输系统帧结构、信道编码和调制,GB20600-2006)中的LDPC码的最小行重为λ=7。采用(λ-1)输入的最小值计算模块实现HPU,效率不高,因为各个模块的最小值计算是独立完成的,但实际上它们中包含有大量的相同计算,如果对这些共同的中间计算结果在各最小值的计算过程中进行共享,可以减少HPU的计算量,降低HPU的硬件消耗量。从硬件实现的角度来看,在λ比较大的情况下,(λ-1)输入的最小值计算模块需要由较小的最小值计算模块,如2输入或3输入的最小值计算模块,组合而实现。
最小值计算是基于元素的比较和选择操作实现的,即首先对元素进行大小比较,然后根据比较结果选择元素中最小的一个作为最小值输出。
参照图2,表示2输入的最小值计算模块的结构示意图,该模块首先由比较器(201)对两个输入进行大小比较,然后用比较器的输出信号控制选择器(202)对输入信号进行选择:如果输入1<输入2,选择输入1作为最小值;否则,选择输入2作为最小值。每一个2输入最小值计算模块的计算延时等于2输入比较器的延时与2输入选择器的延时之和。
参照图3,表示本发明所述的循环式分级最小值计算方法的流程图,所述方法采用S输入的最小值计算模块分级地完成HPU中的最小值计算(S为正整数,1<S<λ),其步骤如下:
开始:正整数λ输入的HPU中的最小值计算,以下步骤为,
步骤A(301):对计数参数t赋值t=1,计算S个相邻元素的最小值,所得计算结果为从每一个元素开始的连续S个元素的最小值,即
min{ρ0,…ρS-1},
min{ρj,…ρ(j+S-1) *},;
min{ρλ-1,…ρ(λ-1+S-1) *}.
步骤B(302):对计数参数赋值t=t+1,计算S个所覆盖元素互不相同的的当前输入的最小值,所得计算结果为从每一个元素开始的连续St个元素的最小值,即
min{ρ0,…ρS t -1},
min{ρj,…ρ(j+S t -1) *},;
min{ρλ-1,…ρ(λ-1+S t -1) *}.
步骤C(303):判断:λ-1>St+1?如果不等式成立返回步骤B,否则进入步骤D;
步骤D(304):用λ个S输入最小值计算模块,计算相邻的(λ-St+1)个当前输入值的最小值,所得计算结果为从每一个元素开始的连续(λ-1)个元素的最小值,即
0,ρ1,…ρλ-2},
j,ρ(j+1) *,…ρ(j+λ-2) *},。
λ-1,ρλ *,…ρ(λ-1+λ-2) *}.
结束。
所述方法利用S输入的最小值计算模块,以循环式分级比较的方式,实现HPU中的最小值计算。所述方法可归纳为,
Figure S2008101054484D00081
个分级,每个分级包含λ个S输入最小值计算模块。
参照图4,表示作为实现装置的一个实施例,是基于2输入最小值计算模块的循环式分级最小值计算方法的实现装置结构图,该装置用于完成λ输入的HPU中的最小值计算。其中,min模块表示2输入的最小值计算模块,为了便于说明,图中每个min模块由两个下标进行标识,第1个下标表示该模块所在的分级,第2个下标表示该模块在其所在分级中的编号。图中每个最小值模块的上方标出了每个模块计算出的最小值。基于2输入最小值计算模块的最小值计算装置,包含
Figure S2008101054484D00082
个分级,每个分级由λ个2输入最小值计算模块组成。各个分级的具体实施方式如下:
第1级(401,t=1):每一个2输入最小值计算模块将两个相邻元素的绝对值作为输入,其中,min1j模块将ρj和ρ(j+1) *作为输入(j=0,1,…,λ-1),并计算它们的最小值,即min{ρj,ρ(j+1) *};
中间级(402,第t级t=2,3,...,T-1):在第t级中,每一个2输入最小值计算模块将前级的间隔为2t-1的两个模块的输出作为输入,每个模块计算出的最小值覆盖2t-1个元素,即mint,j的输入端与前级的mint-1,j及mint-1,(j+2 t-1 ) *的输出端相连接,该模块的计算结果为min{ρj,ρ(j+1) *…,ρ(j+2 t-1 -1) *};
末级(403,第t级t=T):每一个2输入最小值计算模块将前级的间隔为(λ-1-2T-1)的两个模块的输出作为输入,每个模块计算出的最小值覆盖(λ-1)个元素,即minT,j的输入端与前级的minT-1,j及minT-1,(j+λ-2 T-1 -1) *的输出端相连接,该模块的计算结果是min{ρj,ρ(j+1) *…,ρ(j+λ-2) *},即m(j-1) *
参照图5,表示作为实现装置的另一个实施例,是基于3输入最小值计算模块的循环式分级最小值计算方法的实现装置结构图,该装置用于完成λ输入的HPU中的最小值计算。其中,min模块表示3输入的最小值计算模块,为了便于说明,图中每个min模块由两个下标进行标识,第1个下标表示该模块所在的分级,第2个下标表示该模块在其所在分级中的编号。图中每个最小值模块的上方标出了每个模块计算出的最小值。基于3输入最小值计算模块的最小值计算装置,包含
Figure S2008101054484D00091
个分级,每个分级由λ个3输入最小值计算模块组成。各个分级的具体实施方式如下:
第1级(501,t=1):每一个3输入最小值计算模块将两个相邻元素的绝对值作为输入,其中,min1j模块将ρj,ρ(j+1) *和ρ(j+2) *作为输入(j=0,1,…,λ-1),并计算它们的最小值,即min{ρj,ρ(j+1) *,ρ(j+2) *};
中间级(502,第t级t=2,3,...,T-1):在第t级中,每一个3输入最小值计算模块将前级的间隔为3t-1的3个模块的输出作为输入,每个模块计算出的最小值覆盖3t-1个元素,即mint,j的输入端与前级的mint-1,j,mint-1,(j+3 t-1 ) *及mint-1,(j+2.3 t-1 ) *的输出端相连接,该模块的计算结果为min{ρj,ρ(j+1) *…,ρ(j+3 t -1) *};
术级(503,第t级t=T):每一个3输入最小值计算模块将前级的连续(λ-3T-1)个模块的输出作为输入,每个模块计算出的最小值覆盖(λ-1)个元素。可以证明(λ-3T-1)≤3,所以3输入最小值计算模块能够完成对(λ-3T-1)个模块的输出的最小值计算,如果(λ-3T-1)<3,则将多余的输入端置为0,或将某个输入重复的连接到该模块的多个输入端,以填充多余的输入端。即minT,j的输入端与前级的minT-1,j…,minT-1,(j+λ-3 T-1 -1) *的输出端相连接,该模块的计算结果是min{ρj,ρ(j+1) *…,ρ(j+λ-2) *},即m(j-1) *
本发明所述的循环式分级的最小值计算方法,可以简化LDPC解码器的HPU设计过程和降低HPU硬件消耗量,所述方法适用于各种输入数的HPU,具有通用性。按照本发明所述的循环式分级最小值计算装置,可以直接地设计出流水线HPU,从而分解HPU的延时路径,提高解码器的工作速度。
参照图6,表示7输入HPU的一种流水线结构,它按照基于2输入的最小值计算模块的循环式分级最小值计算方法实现。其中每个min模块表示一个2输入最小值计算模块。所示流水线HPU将循环式分级结构的每一级(602至604)作为一个流水级,并在循环式分级前用一个流水级(601)计算输入变量结点信息的绝对值,在循环式分级后用一个流水级(605)完成符号恢复和归一化操作。寄存器对每一级的输出进行寄存,后级读取前级寄存器的输出,形成流水线结构,寄存器在相应时钟沿(上升沿或下降沿)对数据进行寄存。参照图6表示基于循环式分极最小值方法的下输入HPU流水线结构图中的实施方式,HPU的关键路径延时可估计为绝对值计算模块的延时、2输入最小值计算模块的延时、符号恢复归一化模块的延时三者之中的最大值。
译码器的关键路径延时由垂直运算单元(vertical processing unit,VPU)的延时,HPU的延时,译码器各译码单元间连线延时,控制器到各译码单元间的连线延时共同确定。除关键路径外,其余路径的延时应与关键路径相匹配,以降低流水线级数,提高系统效率。另外,译码器的关键路径的长度应该能够调节,以满足实际应用对译码器速度的要求。实际应用中,为了调整HPU的延时和流水线级数,可以将循环式分级最小值计算装置中的若干级合并作为一个流水级。合并方法是将若干分级直接级联,并对所合并的若干级中的最后一级的结果进行寄存,从而形成一个流水级。所述合并能减少流水线的级数,并增大HPU的关键路径延时。
参照图7,表示基于循环式分级最小值计算方法的5输入HPU的一种流水线结构,它按照基于2输入的最小值计算模块的循环式分级最小值计算方法实现。其中每个min模块表示一个2输入最小值计算模块。它将循环式分级最小值计算装置中的两级(702和703)合并为1个流水线,并在循环式分级前用一个流水级(701)计算输入变量结点信息的绝对值,在循环式分级后用一个流水级(704)完成符号恢复和归一化操作。按照图4中的实施方式,这个5输入HPU的关键路径延时可估计为,两个2输入最小值计算模块的延时、绝对值计算模块的延时和符号恢复和归一化模块的延时三者中的最大值。
本发明的循环式分级结构,是对于采用最小和译码算法及其改进算法的LDPC译码器中的HPU的一种通用设计方法。按照循环式分级结构,根据对HPU速度的需求,可以将分级结构的一级或多级作为一个流水级,这样可以显著提高译码器的工作速度和吞吐率。即使不采用流水线实施方式,按照本发明的循环式分级结构实现的HPU,能够规则、高效的完成最小值计算操作,设计方法适用于各种大小的HPU。
下面提供一些数据,可以进一步说明本发明的有益效果。
表1给出了7输入HPU和27输入HPU的性能,其中包含了用组合逻辑实现的HPU以及采用循环式分级结构的流水线HPU,它们都按照基于2输入的最小值计算模块的循环式分级最小值计算方法实现。组合逻辑HPU将循环式分级结构的所有分级直接级联,并在循环式分级结构的前后分别加上了绝对值计算模块和符号恢复归一化模块。流水线HPU将循环式分级的每一级作为一个流水级,并在循环式分级的前面用一个流水级进行绝对值计算,在循环式分级的后面用一个流水级进行符号恢复和归一化操作。表中数据由Quartus II v7.2编译器给出,目标器件是Stratix II系列的FPGA(Field Programmable Gate Array),占用的硬件资源以占用FPGA中的ALUT(Adaptive Look-Up Table)和Register数量衡量,表格中的时钟频率是编译器给出的电路能够支持的最高时钟频率。从表1中数据可以看出,流水线译码器结构能够显著提高HPU的运行速度。
表2是中国数字电视地面广播标准中的LDPC码的译码器的性能,其中包含了采用组合逻辑HPU的译码器,以及流水线LDPC译码器,它的流水线HPU采用循环式分级结构实现。译码器中包含的输入数为7、8、12、13、26、27的HPU,它们都按照循环式分级结构实现,并将每一个分级作为一个流水级实现。表中数据由Quartus II v7.2编译器给出,目标器件是Stratix II系列的FPGA,占用的硬件资源以占用FPGA中的ALUT、Register以及MemoryBit数量衡量,表格中的吞吐率是工作在最高时钟频率下的译码器的吞吐率(迭代30次)。表2中数据说明,流水线译码器结构的吞吐率得到了显著提高。
表1  组合逻辑HPU与循环式分级结构流水线HPU的性能比较
表2  组合逻辑译码器与流水线译码器的性能比较
Figure S2008101054484D00121
上面对本发明的具体实施例进行了详细说明,但本发明并不限制于上述实施例。在本发明权利要求的精神和原则之内,所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种LDPC译码的循环式分级最小值计算方法,其特征在于,本方法采用循环式分级最小值计算装置,对输入到水平运算单元的λ个元素进行最小值计算,所述装置包括T个分级,每个分级包括λ个最小值计算模块mint,j,所述mint,j的第一个下标t为其自身所在的分级编号,第二个下标为其自身在所在分级中的编号,其中,所述mint,j具有S个输入,j=0、1、2……λ-1,1≤t≤T-1,1<S<λ,本方法按以下步骤操作:
步骤A,初始化t=1,第1分级的min1,j对第j至(j+S-1)*个元素进行最小值计算,所得计算结果为从第j个元素开始的连续S个元素的最小值,其中,*为对λ的取模运算;
步骤B,t=t+1,第t分级的mint,j对mint-1,j
Figure FSB00000058702200011
Figure FSB00000058702200012
的输出进行最小值计算,所得计算结果为从第j个元素开始的连续St个元素的最小值;
步骤C,判断λ-1>St+1?如果不等式成立,返回步骤B,否则进入步骤D;
步骤D,第T级的minT,j对第T-1级中的从第j个最小值计算模块开始的连续λ-St+1个最小值计算模块的输出进行最小值计算,所得计算结果为从第j个元素开始的连续(λ-1)个元素的最小值。
2.根据权利要求1所述的LDPC译码的循环式分级最小值计算方法,其特征在于:所述装置的第2至T-1个分级为中间级,其中,
Figure FSB00000058702200013
所述装置包括:
第1级,分别对λ组输入元素计算最小值,每组包含S个输入元素,计算得出的结果为从每一个元素开始的循环式连续的S个元素的最小值;
中间级,分别对λ组前级计算结果计算最小值,每组包含S个所覆盖元素互不相同的前级计算出的最小值,计算得出的结果为从每一个元素开始的循环式连续的St个元素的最小值;
第T级,分别对λ组前级计算结果计算最小值,每组包含(λ-ST-1)个循环式连续的前级计算出的最小值,计算得出的结果为从每一个元素开始的循环式连续的(λ-1)个元素的最小值。
3.根据权利要求2所述的LDPC译码的循环式分级最小值计算方法,其特征在于:所述装置的一级或多级可作为一个流水级,对每个流水级在每个时钟周期内的计算结果进行寄存,直接实现流水线水平运算单元,提高译码器的工作时钟频率和吞吐率,从而实现高速半并行LDPC译码器。
CN2008101054484A 2008-04-29 2008-04-29 Ldpc译码的循环式分级最小值计算方法及其实现装置 Expired - Fee Related CN101267209B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101054484A CN101267209B (zh) 2008-04-29 2008-04-29 Ldpc译码的循环式分级最小值计算方法及其实现装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101054484A CN101267209B (zh) 2008-04-29 2008-04-29 Ldpc译码的循环式分级最小值计算方法及其实现装置

Publications (2)

Publication Number Publication Date
CN101267209A CN101267209A (zh) 2008-09-17
CN101267209B true CN101267209B (zh) 2010-09-08

Family

ID=39989394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101054484A Expired - Fee Related CN101267209B (zh) 2008-04-29 2008-04-29 Ldpc译码的循环式分级最小值计算方法及其实现装置

Country Status (1)

Country Link
CN (1) CN101267209B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5489552B2 (ja) * 2009-06-19 2014-05-14 三菱電機株式会社 復号方法及び復号装置
US8930790B1 (en) * 2013-09-13 2015-01-06 U-Blox Ag Method and apparatus for identifying selected values from among a set of values
CN104767536B (zh) * 2015-03-19 2018-05-25 深圳市力合微电子股份有限公司 基于ofdm电力线通信系统的qc-ldpc译码方法和译码器
CN106330203B (zh) 2016-08-26 2019-12-31 晶晨半导体(上海)股份有限公司 一种ldpc的解码方法
US10379940B2 (en) * 2016-12-08 2019-08-13 Sandisk Technologies Llc Pipeline delay detection during decoding by a data storage device
CN111130563B (zh) * 2018-10-30 2022-04-26 华为技术有限公司 处理信息的方法和装置

Also Published As

Publication number Publication date
CN101267209A (zh) 2008-09-17

Similar Documents

Publication Publication Date Title
Li et al. Trellis-based extended min-sum algorithm for non-binary LDPC codes and its hardware structure
CN101267209B (zh) Ldpc译码的循环式分级最小值计算方法及其实现装置
CN101924565B (zh) Ldpc编码器、解码器、系统及方法
CN101106381B (zh) 分层的低密度校验码译码器及译码处理方法
Tehrani et al. Majority-based tracking forecast memories for stochastic LDPC decoding
US8918704B2 (en) Decoding method and apparatus for non-binary, low-density, parity check codes
Keskin et al. GPU accelerated gigabit level BCH and LDPC concatenated coding system
WO2018036178A1 (zh) 一种ldpc的解码方法
CN1937413A (zh) 双涡轮结构低密度奇偶校验码解码器
CN109981226A (zh) 一种联合信源信道编码系统的联合调度译码算法
Yeo et al. Architectures and implementations of low-density parity check decoding algorithms
CN101478313B (zh) 一种ldpc译码器的最小值计算装置及其构造方法
CN101594152B (zh) 实现水平运算和垂直运算同时运行的ldpc码译码方法
Yang et al. Nonlinear programming approaches to decoding low-density parity-check codes
Garcia-Herrero et al. Multiple-vote symbol-flipping decoder for nonbinary LDPC codes
CN101345607A (zh) 多维交叉并行级联单奇偶校验码的编、译码方法
Park et al. A 1.15 Gb/s fully parallel nonbinary LDPC decoder with fine-grained dynamic clock gating
CN1973440A (zh) Ldpc编码器、解码器、系统及方法
CN102130692A (zh) 基于外在信息度数的准循环低密度奇偶校验码的构造方法
CN105515588B (zh) 一种ldpc‑cc高速译码器
CN101997552A (zh) 低编码复杂度多元非规则ldpc码的设计
Judson et al. Efficient construction of successive cancellation decoding of polar codes using logistic regression algorithm
Cui et al. An efficient post-processor for lowering the error floor of LDPC codes
Kakde et al. FPGA implementation of decoder architectures for high throughput irregular LDPC codes
Leduc-Primeau et al. High-throughput LDPC decoding using the RHS algorithm

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100908

Termination date: 20170429