CN101478313A - 一种ldpc译码器的最小值计算装置及其构造方法 - Google Patents
一种ldpc译码器的最小值计算装置及其构造方法 Download PDFInfo
- Publication number
- CN101478313A CN101478313A CNA2009100768674A CN200910076867A CN101478313A CN 101478313 A CN101478313 A CN 101478313A CN A2009100768674 A CNA2009100768674 A CN A2009100768674A CN 200910076867 A CN200910076867 A CN 200910076867A CN 101478313 A CN101478313 A CN 101478313A
- Authority
- CN
- China
- Prior art keywords
- minimum value
- sequencing unit
- unit
- output
- input
- 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.)
- Granted
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明涉及一种LDPC译码器的最小值计算装置及其构造方法,该装置包括多级排序单元和查询单元,多级排序单元以分级方式完成排序-查询式最小值计算方法中的排序步骤,分级方式以递归方式划分输入集合,对每次划分得到的若干个集合进行的最小值、次最小值以及最小值序号计算操作构成一级,从而形成分级式硬件结构,分级结构为规则分级或非规则分级结构,基于规则分级的最小值计算装置的构造方法,通过确定分级的基数逐级构成多级排序单元。本发明可以简化LDPC译码器HPU的设计,降低HPU的硬件资源消耗量,且很容易实现对LDPC译码器HPU进行流水线设计,从而分解HPU的关键路径,提高LDPC译码器的工作速率和数据吞吐率。
Description
技术领域
本发明涉及信道编码领域,具体涉及一种LDPC译码器的最小值计算装置及其构造方法。
背景技术
低密度奇偶校验(Low density parity check,LDPC)的信道编码方案最早由Gallager于1962年提出(Robert G.Gallager,“Low-densityparity-check codes,”IRE Transaction on Information Theory,IT-18,pp.21-28,Jan.1962)。因为相对于当时电子器件处理能力,其编解码的计算非常复杂,直到上世纪90年代才重新引起人们的关注。并因为其突出的编码性能,越来越广泛地应用到通信和广播的系统和标准中。LDPC码作为一种线性分组码,由其校验矩阵H进行描述,其所有码字正交于校验矩阵H的行空间。LDPC码的校验矩阵密度低,即包含大量的0元素,而1的数量非常少。
准循环低密度校验(QC-LDPC)码是一种分块结构(array-structured)的LDPC码,其校验矩阵是由一系列大小相同的方阵构成的分块矩阵,可表示为
其中,t为校验矩阵的列数,c为校验矩阵的行数,A是b×b的方阵,它是零方阵或者循环移位方阵。循环移位方阵是由单位矩阵的每一行进行循环移位得到的,偏移量δ表示行循环移位的位数。例如,一个δ=2的6×6循环移位方阵为
LDPC码的软判决译码算法有:和积算法(sum-productalgorithm)、最小和算法(min-sum algorithm)、归一化最小和算法(normalized min-sum algorithm)和偏移最小和算法(offset min-sumalgortihm)等,这些算法是以置信度传播的循环译码方法为基础发展而来。LDPC码在采用和积算法译码时能够更好逼近香农编码极限,但和积译码算法的计算复杂度较高,并且需要噪声统计信息。归一化最小和以及偏移最小和是最小和算法的改进算法。归一化最小和算法能够显著降低译码运算的计算复杂度,并且在采用理想的归一化因子时,可以达到甚至超过和积算法的性能。在加性高斯白噪声(additivewhite Gaussian noise,AWGN)信道及二进制相位键控(binaryphase-shift keying,BPSK)调制的条件下,归一化最小和算法的步骤描述可参见如下资料(Jinghu Chen and Marc P.C.Fossorier,”Nearoptimum 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);校验矩阵中的每一个非零元素,都有一个校验结点信息和一个变量结点信息其中校验矩阵H假设为M行,N列,下标m表示行序号(0≤m≤M-1),n表示列序号(0≤n≤N-1);是计算得到的新比特对数似然比;α是归一化因子;N(m)={n|hmn=1},M(n)={m|hmn=1},hmn表示校验矩阵H的第m行、第n列的取值,N(m)表示校验矩阵H的第m行所有非零元素对应的列序号集合;M(n)表示校验矩阵H的第n列所有非零元素对应的行序号集合;。
所述归一化最小和译码算法,其步骤可包含以下5个部分内容:
1)初始化
2)水平运算
从m=0到M-1,对每一个n∈N(m)计算
3)垂直运算
从n=0到N-1,计算
并对每一个m∈M(n)计算变量结点信息
4)判决
5)循环结束条件
上面步骤中,加注上标k表示的本级运算,k-1表示上一级运算。对于准循环低密度校验(QC-LDPC)码,半并行译码器能够较好地在译码吞吐率和硬件复杂度之间折衷,它利用QC-LDPC的准循环特征,重复利用水平运算单元HPU和垂直运算单元VPU,从而降低硬件资源消耗(Marjan Karkooti,“Semi-parallel architecture forreal-time LDPC coding,”Master Science thesis,Rice University,Houston,Texas,May 2004.)。在已有技术中,一般的半并行译码器的基本结构如图1所示(Dimin Niu,Kewu Peng,Jian Song,etc,Multi-Rate LDPCDecoder Implementation for China Digital Television TerrestrialBroadcasting Standard,ICCCAS,July 2007,Vol1:24-28)。它包括:
(1)PRAM(101):存储输入的比特对数似然比Pn的存储器;
(2)HPU(102):水平运算单元,实现水平运算;
(3)VPU(103):垂直运算单元,实现垂直运算;
(4)LRAM(104):存储校验结点信息,即HPU的运算结果;
(5)ZRAM(105):存储变量结点信息,即VPU的运算结果;
(6)控制单元(106):对译码器进行控制和同步,产生各存储器的读写地址,检验是否满足循环结束条件。
已有技术的译码器工作流程如下:
(1)输入过程:将输入的比特对数似然比信息Pn写入到PRAM,并启动译码器开始译码;
(2)初始化:将LRAM清零,即输出0,进行一次垂直运算,从而用比特对数似然比Pn初始化ZRAM中存储的变量结点信息;
(3)水平运算:HPU从ZRAM读取变量结点信息来计算校验结点信息并将计算结果写入LRAM。同时,HPU判断上一次循环的硬判决比特是否构成合法码字;
(4)垂直运算:VPU从LRAM读取校验结点信息来计算变量结点信息并将计算结果写入ZRAM,同时,VPU根据比特对数似然比进行硬判决;
(5)输出过程:根据HPU的检验结果以及当前循环计数,判决是否满足循环结束条件。如果满足循环结束条件,输出硬判决码字,停止译码;否则,返回(3)继续循环。
已有的LDPC译码器采用传统结构的HPU,它由复杂的组合逻辑电路实现,特别是在行重较大时,HPU处理的变量结点信息数目很大,其运算会构成很长的关键路径,严重限制了译码器的工作时钟频率,从而制约了译码器的吞吐率;并且复杂的组合逻辑电路也占用了宝贵的硬件资源。
对于包含λ(λ为正整数)个输入的HPU,将其λ个输入简化表示为
归一化最小和译码算法中每个HPU从i=0到(λ-1)进行λ次如下所示的水平运算
可以将水平运算划分为三个步骤:
1)绝对值计算:
ρj=|Zj|,j=0,1,...,λ-1;
2)最小值计算:
3)符号恢复及归一化:
HPU中的最小值计算可采用排序-查询方式完成。排序-查询式的最小值计算方法包括排序步骤和查询步骤。排序步骤计算出HPU输入集合的最小值min、次最小值submin、以及最小值元素对应的序号index,即(HPU输入集合如(1)式所示)
min=min{ρi,i=0,…,λ-1}, (3)
index=argmini{ρi,i=0,…,λ-1}, (4)
submin=min({ρi,i=0,…,λ-1}\ρindex)。 (5)
查询步骤查询排序步骤的计算结果,得出HPU所需的变量节点对应的最小值,即
如(2)式所示的最小值计算相对较复杂。λ输入的HPU,需要计算λ个集合的最小值,这些集合都包含(λ-1)个元素,但它们所包含的元素不完全相同。因此,分别计算这λ个集合的最小值时,计算复杂度为λ2量级。当λ较大时,LDPC译码器中的最小值计算急剧增加了LDPC译码的复杂度,并构成译码器的关键延时路径,限制整个译码器的工作速度和数据吞吐率。
若采用排序-查询的方式完成HPU中的最小值计算,没有合适的硬件实现结构和构造方法,反而会增加计算复杂度。因此,排序-查询式最小值计算方法没有能够很好地应用到LDPC译码器中。
发明内容
本发明的目的是提供一种LDPC译码器的最小值计算装置及其构造方法,以分级式结构按照排序-查询式的最小值计算方法来实现LDPC译码器中HPU的最小值计算,简化HPU的设计,降低HPU的硬件资源消耗量,提高译码器工作速度和吞吐能力。
为实现上述目的,本发明采用如下技术方案:
一种LDPC译码器的最小值计算装置,包括:
输入单元,用于输入变量节点信息绝对值ρj,0≤j≤λ-1,λ为LDPC译码器中的水平运算单元输入的变量节点信息的个数;
多级排序单元,包括一个第一级排序单元、零或若干个中间级排序单元、和一个最后一级排序单元,其中:
第一级排序单元包括A1个比较选择单元D1,A1>1,输入单元所输入的ρj划分为A1个集合,对应输入到A1个D1中,每个D1计算并输出其对应输入集合的一组最小值、次最小值及最小值序号;
中间级排序单元中的第t级排序单元包括At个合并电路Dt,2≤t≤T-1,A2>A2>...>AT-1>1,将上一级排序单元的输出映射为At个集合并合并,对应输入到At个Dt中,每个Dt计算并输出其对应输入集合的一组最小值、次最小值及最小值序号;
最后一级排序单元包括一个合并电路DT,将上一级排序单元的输出映射为一个集合并合并,对应输入到DT中,DT计算并输出其对应输入集合中的最小值mF、次最小值smF及最小值序号iF,完成排序;
查询单元,用于根据最后一级排序单元输出的mF、smF和iF查询得到水平运行单元所需的变量节点对应的最小值。
其中,所述比较选择单元D1由比较器和选择器的组合和逻辑连接构成。
其中,所述合并电路Dt为基数为2的合并电路MC-2,其中2≤t≤T,MC-2用于将上一级所输出的两组最小值、次最小值及最小值序号映射为一个集合并合并,计算并输出该集合的一组最小值、次最小值及最小值序号。
其中,所述合并电路Dt为基数为3的合并电路MC-3,其中2≤t≤T,MC-3用于将上一级所输出的三组最小值、次最小值及最小值序号映射为一个集合并合并,计算并输出该集合的一组最小值、次最小值及最小值序号。
其中,查询单元由λ个查询子单元构成,每个查询子单元包括:
比较器,其中一输入端接入当前变量节点的序号j,另一输入端接入最后一级排序单元输出的最小值序号iF,比较j与iF并输出相同或不同信号;
选择器,与比较器连接,选择器的两个输入端分别接入多级排序单元输出的最小值mF、次最小值smF,在比较器输出相同信号时输出次最小值smF,在比较器输出不同信号时输出最小值mF。
优选地,所述S为2或3。
其中,每级排序单元的输出端连接在一条信号线上,查询单元的输出端连接在一条信号线上,所述信号线上连接有寄存器。
其中,根据流水线设计的需要决定每级排序单元的输出端和查询单元的输出端是否连接寄存器。
本发明还提供了一种上述LDPC译码器的最小值计算装置的构造方法,包括步骤:
确定多级排序单元的基数S,1<S<λ;
选择一个合并电路DT构成第T级排序单元,将上一级排序单元的输出映射为一个集合并合并,对应输入到DT中;
通过比较器、及由比较器控制的选择器构成的λ个查询子单元构成查询单元,将所述查询单元与最后一级排序单元的输出单元连接;
根据流水线设计的需要决定每级排序单元的输出端和查询单元的输出端是否连接寄存器。
利用本发明提供的LDPC译码器的最小值计算装置及其构造方法,具有以下有益效果:
1)利用排序-查询式分级结构来完成LDPC译码器中的最小值计算,能够显著降低HPU的计算复杂度以及逻辑资源占用量,从而降低整个译码器的计算复杂度以及逻辑资源占用量;
2)利用排序-查询式分级结构来完成LDPC译码中的最小值计算,能够并且很容易对译码器进行流水线设计,从而分解HPU的关键路径,提高译码器的工作速率和数据吞吐率;
3)能够将HPU分解为若干个小的部分,便于在多码率LDPC译码器中实现HPU运算单元的(部分)复用,进一步降低多码率LDPC译码器的复杂度、提高多码率LDPC译码器的工作频率和吞吐率;
4)该装置中的多级排序单元采用本发明提出的规则分级结构时,能够直接应用本发明归纳的结构对不同λ值的HPU进行设计,简化对LDPC译码器中HPU的设计复杂度。
附图说明
图1为现有技术中的半并行译码器的结构图;
图2为本发明实施例1中LDPC译码器的最小值计算装置结构图;
图3为本发明实施例2中LDPC译码器的最小值计算装置结构图;
图4为本发明实施例3中LDPC译码器的最小值计算装置结构图。
具体实施方式
本发明提出的LDPC译码器的最小值计算装置及其构造方法,结合附图和实施例说明如下。
针对已有的LDPC译码器中传统HPU实现结构,其最小值计算装置复杂,使得HPU结构复杂、关键路径长、延时大等诸多不足,增加了系统硬件资源,限制了LDPC译码器的工作速度,制约了译码器的吞吐率性能。本发明提出的LDPC译码器的最小值计算装置,用于完成基于最小和算法及其改进算法的LDPC译码器的HPU中的最小值计算,从而简化HPU的设计,降低HPU的硬件资源消耗量,提高LDPC译码器工作速度和数据吞吐率。按照本发明LDPC译码器的最小值计算装置,能够直接得出规则、高效的流水线HPU,将LDPC译码器中的水平运算操作分成若干个步骤并按照流水线工作方式在不同的时钟周期相继实现,从而能够分解LDPC译码器的关键路径,相比传统HPU实现结构,本发明所述的方法能够显著降低HPU的计算量以及逻辑资源占用,只需增加用于流水线的寄存器资源,就能显著提高LDPC译码器的工作时钟频率和译码吞吐率。
根据现有技术,对于包含λ(λ为正整数,具体为LDPC译码器中的水平运算单元HPU输入的变量节点信息的个数)个输入的HPU,将其λ个输入简化表示为
归一化最小和译码算法中每个HPU从i=0到(λ-1)进行λ次如下所示的水平运算
可以将水平运算划分为三个步骤:
1)绝对值计算:
ρj=|Zj|,j=0,1,...,λ-1;
2)最小值计算:
3)符号恢复及归一化:
HPU中的最小值计算可采用排序-查询方式完成。排序-查询式的最小值计算方法包括排序步骤和查询步骤。排序步骤计算出HPU输入集合的最小值min、次最小值submin、以及最小值元素对应的序号index,即(HPU输入集合如(1)式所示)
min=min{ρi,i=0,…,λ-1}, (3)
index=argmini{ρi,i=0,…,λ-1}, (4)
submin=min({ρi,i=0,…,λ-1}\ρindex)。 (5)
查询步骤查询排序步骤的计算结果,得出所需的最小值,即
基于上面的描述,本发明所提供的LDPC译码器的最小值计算装置,首先分为多级排序单元和查询单元,分别完成排序-查询式最小值计算方法中的排序步骤和查询步骤,以分级的方式完成排序-查询式最小值计算方法中的排序步骤,即求出整个HPU输入的变量节点信息集合的最小值、次最小值以及最小值元素对应的序号(简称最小值序号)。多级排序单元的分级方式为以递归方式划分输入集合,对每次划分得到的若干集合进行的最小值、次最小值以及最小值序号计算操作构成一级,从而形成分级式硬件结构。基于所述分级和划分的计算步骤为,先计算由划分得到的较小集合的最小值、次最小值以及最小值序号,然后利用这些较小集合的计算结果计算整个集合的最小值、次最小值以及最小值序号;如果划分得到的集合仍然较大,则继续进行划分,直到划分所得集合能够较直接地利用比较选择计算出最小值、次最小值以及最小值序号时(如集合仅包含1或2个元素时)为止。
该LDPC译码器HPU的最小值计算装置,包括:
输入单元,用于输入变量节点信息绝对值ρj,0≤j≤λ-1,λ为LDPC译码器中的水平运算单元输入的变量节点信息的个数;
多级排序单元,包括一个第一级排序单元、零或若干个中间级排序单元、和一个最后一级排序单元,其中:
第一级排序单元包括A1个比较选择单元D1,A1>1,输入单元所输入的ρj划分为A1个集合,对应输入到A1个D1中,每个D1计算并输出其对应输入集合的一组最小值、次最小值及最小值序号;
中间级排序单元中的第t级排序单元包括At个合并电路Dt,2≤t≤T-1,A1>A2>...>AT-1>1,将上一级排序单元的输出映射为At个集合并合并,对应输入到At个Dt中,每个Dt计算并输出其对应输入集合中的一组最小值、次最小值及最小值序号;
最后一级排序单元包括一个合并电路DT,将上一级排序单元的输出映射为一个集合并合并,对应输入到DT中,DT计算并输出其对应输入集合中的最小值mF、次最小值smF及最小值序号iF,完成排序;
查询单元,用于根据最后一级排序单元输出的mF、smF和iF查询得到水平运行单元所需的变量节点对应的最小值。
具体实施时上述第一级排序单元中的比较选择单元D1的个数A1、及中间级排序单元中第t级排序单元的合并电路Dt的个数At,及级数的选择T,可以根据实际情况按照非规则方式选择,实现分级结构,也可以按照规则分级方式进行分级及选择第一级排序单元中D1的个数A1、中间级排序单元中第t级排序单元合并电路Dt的个数At。下面给出优选的实施方式。
实施例1
本实施例中的LDPC译码器HPU的最小值计算装置为非规则分级最小值计算装置,第一级排序单元的比较选择单元D1的个数A1选择为HPU输入的变量节点信息的个数λ。第一级排序单元输出到后续排序单元输入的映射依据实际HPU输入的变量节点信息的个数λ确定,尽量使ρj(0≤j≤λ-1)划分后的A1个集合中每个集合的变量节点信息个数尽可能少(优选为2个或3个)。为简单说明,本实施例以HPU输入的变量节点信息的个数λ为6为例说明,第一级排序单元采用6个比较选择单元D1,输出六组最小值、次最小值及最小值序号{min,submin,index},下面结合附图说明第一级排序单元后续连接的排序单元201和查询单元202。
如图2所示,由于第一级排序单元的比较选择单元D1的输入只有一个,计算十分简单,因此在图中表现为信号的简单连接关系,未在图2中明示,后续连接的排序单元201进一步按照非规则方式分为2级,分别为第2级排序211和第3级排序单元212。
第2级排序单元211的合并电路D2的个数为2个,将上一级排序单元输出的每三组最小值、次最小值及最小值序号{min,submin,index}映射为一个集合并合并,得到2个集合,对应输入到第2级排序单元211的2个合并电路D2中。合并电路D2采用基数为3的合并电路MC-3,每个D2计算并输出其对应输入集合的一组最小值、次最小值以及最小值序号。第3级排序单元212为最后一级排序单元,其合并电路D3的个数为1个,将第2级排序单元211所输出的两组最小值、次最小值及最小值序号映射为一个集合并合并,对应输入到D3中,合并电路D3采用基数为2的合并电路MC-2,计算并输出其对应输入集合的最小值、次最小值以及最小值序号。
查询单元202包含6个查询子单元,每个查询子单元包括:比较器,其中一输入端接入当前变量节点的序号j,另一输入端接入最后一级排序单元输出的最小值序号iF,比较j与iF并输出相同或不同信号;选择器,与比较器连接,选择器的两个输入端分别接入第3级排序单元输出的最小值mF、次最小值smF,在比较器输出相同信号时输出次最小值smF,在比较器输出不同信号时输出最小值mF,实现如式(6)所示的查询操作。
MC-3用于将上一级排序单元所输出的三组最小值、次最小值及最小值序号映射为一个集合并合并,经比较选择获取合并后集合的一组最小值、次最小值及最小值序号。MC-3的行为描述为:
最小值mF=min{m1,m2,m3}, (7)
次最小值smF=min({m1,m2,m3,sm1,sm2,sm3}\{miF}), (8)
最小值序号iF=argmini{m1,m2,m3}。 (9)
其中,{m1,sm1,i1},{m2,sm2,i2},{m3,sm3,i3}表示上一级排序单元所输出的三组最小值、次最小值及最小值序号,{mF,smF,iF}表示该部分电路计算得出的当前集合的最小值、次最小值以及最小值序号。
在本实施例中,由于第一级排序单元输入的为6个变量节点信息分别输入到6个比较选择单元D1中,因此,每个比较选择单元D1输出的一组{min,submin,index}中的min和submin相同,index为该min的标号,因此,第一个合并电路MC-3的第一个输入m1和sm1值为ρ0,i1的值为0,后面以此类推,这里不再赘述。
类似地,MC-2用于将上一级所输出的两组最小值、次最小值及最小值序号映射为一个集合并合并,计算并输出该集合的一组最小值、次最小值及最小值序号,MC-2的行为描述为:
最小值mF=min{m1,m2}, (10)
次最小值smF=min({m1,m2,sm1,sm2}\{miF}), (11)
最小值序号iF=argmini{m1,m2}。 (12)
其中,{m1,sm1,i1},{m2,sm2,i2}表示上一级排序单元所输出的两组最小值、次最小值及最小值序号,{mF,smF,iF}表示该部分电路计算得出的当前集合的最小值、次最小值以及最小值序号。
实施例2
本实施例中的LDPC译码器HPU的最小值计算装置为规则分级最小值计算装置。下面给出通过规则分级来进行LDPC译码器HPU的最小值计算装置的构造方法及示例的LDPC译码器HPU的最小值计算装置结构。
本实施例中LDPC译码器HPU的最小值计算装置的构造方法包括以下步骤:
1)确定多级排序单元分级的基数S,S为大于1、小于HPU输入的变量节点信息的个数λ的整数,为保证较低的计算复杂度,通常取S为2或3;
3)选择个比较选择单元D1构成第一级排序单元,将ρj划分为个集合,对应接入所述个比较选择单元D1,这个集合描述为:第1个集合包含元素为{ρ0,ρ1,...ρS-1},第2个集合包含元素为{ρS,ρS+1,...ρ2S-1}......,第个集合包含元素为每个集合的元素个数不大于为S个;经每个比较选择单元D1计算并输出其对应输入集合的一组最小值、次最小值及最小值序号,得到组最小值、次最小值及最小值序号;
4)类似地,选择个合并电路Dt构成第t级排序单元,1<t<T,将上一级排序单元输出的不多于S组最小值、次最小值及最小值序号输入到第t级的一个合并电路Dt,参与合并后的集合个数为这个集合描述为:第1个集合可以等效为包含元素,第2个集合可以等效为包含元素.....,第个集合可以等效为包含元素每个合并电路Dt计算并输出其对应输入集合的一组最小值、次最小值及最小值序号,得到组最小值、次最小值及最小值序号;
5)选择一个合并电路DT构成第T级排序单元,将上一级排序单元的输出合并为一个集合对应输入到DT中,这个集合可以等效为包含HPU的所有输入变量节点信息元素,即{ρ0,ρ1,...ρλ-1},合并单元DT计算并输出对应输入集合中的最小值mF、次最小值smF及最小值序号iF,完成排序;
6)通过比较器、及由比较器控制的选择器构成的λ个查询子单元构成查询单元,将查询单元与多级排序单元的输出单元连接。
下面以HPU输入的变量节点信息的个数λ为7说明按上面规则构造的LDPC译码器的最小值计算装置结构。
如图3所示,由于该装置为排序-查询式规则分级最小值计算装置,该装置分为多级排序单元301和查询单元302。多级排序单元301进一步按照基数为2的规则分级方式分为级(311、312、313)。第1级排序单元311包含(即4)个比较选择单元D1,其输入包含4个划分集合:{ρ0,ρ1}、{ρ2,ρ3}、{ρ4,ρ5}和{ρ6}。因为第1级排序单元311的输入是变量节点信息元素,而不是如实施例1图示所给矢量{min,submin,index},因此,如图3所示,位于第1级排序单元的比较选择单元D1由比较器和选择器的组合和逻辑连接构成。第2级排序单元312包含(即2)个合并电路D2,合并电路D2为基数为2的合并电路MC-2,每个合并电路D2将第1级排序单元输出的每两组{min,submin,index}合并为一个集合,计算并输出该集合的一组最小值、次最小值和最小值序号;由于第2级排序单元反映了{ρ0,ρ1,ρ2,ρ3}和{ρ4,ρ5,ρ6}集合的{min,submin,index},因此,可以认为第2级排序单元包含2个划分集合,具体为包含变量节点信息{ρ0,ρ1,ρ2,ρ3}和{ρ4,ρ5,ρ6}的两个集合。第3级排序单元313包含1个合并电路D3,合并电路D3为基数为2的合并电路MC-2,将第2级排序单元输出的两组{min,submin,index}合并为一个集合,计算并输出该集合的一组最小值、次最小值和最小值序号;由于第3级排序单元反映了{ρ0,ρ1,ρ2,ρ3,ρ4,ρ5,ρ6}集合的{min,submin,index},因此,可以认为第3级排序单元包含所有输入元素,完成排序。
查询单元302包含7个查询子单元,各查询子单元的结果与实施例1相同,实现如(6)式所示的查询操作。
实施例3
本发明的分级式LDPC译码器HPU的最小值计算可以(但不限于)按照流水线方式设计,流水线设计时只需在相应每级排序单元的输出端用寄存器对相应信号进行寄存,就能显著的提高HPU以及LDPC译码器的时钟频率及数据吞吐率。
下面以HPU输入的变量节点信息的个数λ为27说明按上面规则构造的流水线设计的LDPC译码器HPU的最小值计算装置结构。如图4所示,该装置分为多级排序单元401和查询单元402。
多级排序单元401进一步按照基数为3的规则分级方式分为级(411、412、413)。第1级排序单元411包含(即9)个比较选择单元D1,将27个输入变量节点信息划分为9个集合,分别为{ρ0,ρ1,ρ2}、{ρ3,ρ4,ρ5}……{ρ24,ρ25,ρ26},对应输入到第1级的9个比较选择单元D1中;因为第1级排序单元411的输入是单个变量节点信息元素,而不是如实施例1图示所给矢量,因此,位于第1级排序单元的比较选择单元D1由比较器和选择器的组合和逻辑连接构成。为简化说明,比较选择单元的具体实现未在图4中明示。第2级排序单元412包含(即3)个合并电路D2,合并电路D2为基数为3的合并电路MC-3,每个合并电路D2将第1级排序单元输出的每三组{min,submin,index}合并为一个集合,计算并输出其对应输入集合的一组最小值、次最小值和最小值序号;由于第2级排序单元反映了{ρ0,ρ1,...ρ8},{ρ9,ρ10,...ρ18}和{ρ19,ρ20,...ρ26}集合的{min,submin,index},因此,可以认为第2级排序单元包含3个划分集合,具体为包含变量节点信息{ρ0,ρ1,...ρ8},{ρ9,ρ10,...ρ18}和{ρ19,ρ20,...ρ26}的3个集合。第3级排序单元413包含1个合并电路D3,合并电路D3为基数为3的合并电路MC-3,合并电路D3将第2级排序单元输出的三组{min,submin,index}合并为一个集合,计算并输出该集合的一组最小值、次最小值和最小值序号;由于第3级排序单元反映了所有输入元素集合的{min,submin,index},因此,可以认为第3级排序单元包含所有的输入元素,完成排序。
查询单元402包含27个查询子单元,各查询子单元的结果与实施例1相同,实现如(6)式所示的查询操作,图4中省略了查询单元402的具体结构。
为使图示简洁,图4中以粗实线表示多个信号线,如MC-3输出的最小值、次最小值以及最小值序号,或者查询单元402计算得出的27个最小值结果。
图4中最小值计算装置采用流水线结构,在分级结构的每级排序单元和查询单元的输出信号线上插入了的寄存器,共四级寄存器(421、422、423、424),如图4中双实线所示。这些寄存器由统一的时钟控制,对图4中垂直穿过它们的信号线上的所有信号进行寄存操作,从而使该装置实现流水线运行,分解关键路径,提高HPU的工作时钟频率,最终达到提高译码器工作时钟频率和数据吞吐率的效果。
另外,图4中将分级结构的每一级作为一个流水级,即对分级结构每一级的输出进行寄存。为了与实际应用中速率要求、以及译码器中其余运算单元匹配,各种应用中的HPU速率要求可能各不相同,因此,采用本发明的设计时,可以将分级结构的若干级作为一个流水级,达到调节HPU速度的效果。
下面给出将本发明应用于中国地面数字电视广播国家标准时的效果。
表1给出了用于中国地面数字电视广播传输国家标准的LDPC译码器(输入数为7、8、12、13、26、27)的HPU的性能,其中最小值计算分别采用循环式分级(参见中国发明专利“LDPC译码的循环式分级最小值计算方法及其实现装置”,专利申请号200810105448.4)和本发明的排序-查询式分级两种结构实现。排序-查询式分级结构均采用基数为2的规则分级方式。表中数据由Quartus II v7.2编译器给出,目标器件是Altera公司Stratix II系列的FPGA(Field Programmable GateArray),占用的硬件资源以占用FPGA中的ALUT(Adaptive Look-UpTable)衡量。从表1中数据可以看出,本发明能够显著优化HPU的计算、降低HPU的硬件实现复杂度。
表2给出了用于中国地面数字电视广播传输国家标准中的LDPC译码器的性能,其中包含了采用组合逻辑HPU的LDPC译码器以及采用流水线HPU的LDPC译码器,其中流水线HPU采用排序查询式分级结构实现,并将每一个分级作为一个流水级实现。表中数据由QuartusII v7.2编译器给出,目标器件是Altera公司Stratix II系列的FPGA,占用的硬件资源以占用FPGA中的ALUT、Register以及MemoryBit数量衡量,表格中的数据吞吐率是工作在最高时钟频率下的译码器的吞吐率(迭代30次)。表2中数据说明,本发明能够显著提高译码器数据吞吐率并降低硬件复杂度(如逻辑资源消耗)。
表1 HPU复杂度比较(以逻辑资源ALUT数衡量)
表2 组合逻辑译码器与流水线译码器的性能比较
本发明所提供的LDPC译码器的最小值计算装置及构造方法具有以下特点:
(1)本发明以分级式结构按照排序-查询式的最小值计算方法来实现LDPC译码器中HPU的最小值计算。
(2)本发明的分级式结构包含多级排序单元和查询单元,分别完成排序-查询式最小值计算方法中的排序步骤和查询步骤。
(3)本发明的分级式结构中的多级排序单元以分级的方式完成排序-查询式最小值计算方法中的排序步骤。其中,多级排序单元可按照、但不限于本发明提供的规则分级结构来实施。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (10)
1、一种LDPC译码器的最小值计算装置,其特征在于,包括:
输入单元,用于输入变量节点信息绝对值ρj,0≤j≤λ-1,λ为LDPC译码器中的水平运算单元输入的变量节点信息的个数;
多级排序单元,包括一个第一级排序单元、零或若干个中间级排序单元、和一个最后一级排序单元,其中:
第一级排序单元包括A1个比较选择单元D1,A1>1,输入单元所输入的ρj划分为A1个集合,对应输入到A1个D1中,每个D1计算并输出其对应输入集合的一组最小值、次最小值及最小值序号;
中间级排序单元中的第t级排序单元包括At个合并电路Dt,2≤t≤T-1,A1>A2>...>AT-1>1,将上一级排序单元的输出映射为At个集合并合并,对应输入到At个Dt中,每个Dt计算并输出其对应输入集合的一组最小值、次最小值及最小值序号;
最后一级排序单元包括一个合并电路DT,将上一级排序单元的输出映射为一个集合并合并,对应输入到DT中,DT计算并输出其对应输入集合中的最小值mF、次最小值smF及最小值序号iF,完成排序;
查询单元,用于根据最后一级排序单元输出的mF、smF和iF查询得到水平运行单元所需的变量节点对应的最小值。
2、根据权利要求1所述的装置,其特征在于,所述比较选择单元D1由比较器和选择器的组合和逻辑连接构成。
3、根据权利要求1所述的装置,其特征在于,所述合并电路Dt为基数为2的合并电路MC-2,其中2≤t≤T,MC-2用于将上一级所输出的两组最小值、次最小值及最小值序号映射为一个集合并合并,计算并输出该集合的一组最小值、次最小值及最小值序号。
4、根据权利要求1所述的装置,其特征在于,所述合并电路Dt为基数为3的合并电路MC-3,其中2≤t≤T,MC-3用于将上一级所输出的三组最小值、次最小值及最小值序号映射为一个集合并合并,计算并输出该集合的一组最小值、次最小值及最小值序号。
5、根据权利要求1所述的装置,其特征在于,所述查询单元由λ个查询子单元构成,每个查询子单元包括:
比较器,其中一输入端接入当前变量节点的序号j,另一输入端接入最后一级排序单元输出的最小值序号iF,比较j与iF并输出相同或不同信号;
选择器,与比较器连接,选择器的两个输入端分别接入多级排序单元输出的最小值mF、次最小值smF,在比较器输出相同信号时输出次最小值smF,在比较器输出不同信号时输出最小值mF。
7、根据权利要求6所述的装置,其特征在于,所述S为2或3。
8、根据权利要求1~7任一项所述的装置,其特征在于,每级排序单元的输出端连接在一条信号线上,查询单元的输出端连接在一条信号线上,所述信号线上连接有寄存器。
9、根据权利要求1~8任一项所述的装置,其特征在于,根据流水线设计的需要决定每级排序单元的输出端和查询单元的输出端是否连接寄存器。
10、一种权利要求1所述LDPC译码器的最小值计算装置的构造方法,包括步骤:
确定多级排序单元的基数S,1<S<λ;
选择一个合并电路DT构成第T级排序单元,将上一级排序单元的输出映射为一个集合并合并,对应输入到DT中;
通过比较器、及由比较器控制的选择器构成的λ个查询子单元构成查询单元,将所述查询单元与最后一级排序单元的输出单元连接;
根据流水线设计的需要决定每级排序单元的输出端和查询单元的输出端是否连接寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100768674A CN101478313B (zh) | 2009-01-23 | 2009-01-23 | 一种ldpc译码器的最小值计算装置及其构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100768674A CN101478313B (zh) | 2009-01-23 | 2009-01-23 | 一种ldpc译码器的最小值计算装置及其构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101478313A true CN101478313A (zh) | 2009-07-08 |
CN101478313B CN101478313B (zh) | 2011-12-28 |
Family
ID=40838952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100768674A Active CN101478313B (zh) | 2009-01-23 | 2009-01-23 | 一种ldpc译码器的最小值计算装置及其构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101478313B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102412843A (zh) * | 2011-07-28 | 2012-04-11 | 清华大学 | 自适应的归一化最小和ldpc译码方法及译码器 |
CN103986474A (zh) * | 2014-04-30 | 2014-08-13 | 北京交通大学 | 一种ldpc码校验节点更新方法及系统 |
US9748968B1 (en) | 2016-11-16 | 2017-08-29 | National Tsing Hua University | Extreme index finder and finding method thereof |
WO2018036178A1 (zh) * | 2016-08-26 | 2018-03-01 | 晶晨半导体(上海)股份有限公司 | 一种ldpc的解码方法 |
CN108683423A (zh) * | 2018-05-16 | 2018-10-19 | 广东工业大学 | 一种多级闪存信道下的ldpc码动态串行调度译码算法及装置 |
CN113676189A (zh) * | 2021-08-23 | 2021-11-19 | 上海擎昆信息科技有限公司 | 一种ldpc译码器的最小值计算装置及方法 |
-
2009
- 2009-01-23 CN CN2009100768674A patent/CN101478313B/zh active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102412843A (zh) * | 2011-07-28 | 2012-04-11 | 清华大学 | 自适应的归一化最小和ldpc译码方法及译码器 |
CN102412843B (zh) * | 2011-07-28 | 2013-06-19 | 清华大学 | 自适应的归一化最小和ldpc译码方法及译码器 |
CN103986474A (zh) * | 2014-04-30 | 2014-08-13 | 北京交通大学 | 一种ldpc码校验节点更新方法及系统 |
CN103986474B (zh) * | 2014-04-30 | 2017-01-18 | 北京交通大学 | 一种ldpc码校验节点更新方法及系统 |
WO2018036178A1 (zh) * | 2016-08-26 | 2018-03-01 | 晶晨半导体(上海)股份有限公司 | 一种ldpc的解码方法 |
US9748968B1 (en) | 2016-11-16 | 2017-08-29 | National Tsing Hua University | Extreme index finder and finding method thereof |
CN108683423A (zh) * | 2018-05-16 | 2018-10-19 | 广东工业大学 | 一种多级闪存信道下的ldpc码动态串行调度译码算法及装置 |
CN113676189A (zh) * | 2021-08-23 | 2021-11-19 | 上海擎昆信息科技有限公司 | 一种ldpc译码器的最小值计算装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101478313B (zh) | 2011-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102122966B (zh) | 基于信道极化的交错结构重复码的编码器及其编译码方法 | |
CN101478313B (zh) | 一种ldpc译码器的最小值计算装置及其构造方法 | |
CN101106381B (zh) | 分层的低密度校验码译码器及译码处理方法 | |
CN101951264B (zh) | 一种多码率准循环低密度奇偶校验码解码器 | |
Esfahanizadeh et al. | Finite-length construction of high performance spatially-coupled codes via optimized partitioning and lifting | |
CN105515590B (zh) | 一种有效低复杂度串行抵消列表极化码译码方法 | |
CN100589357C (zh) | 基于单位阵及其循环移位阵的ldpc码向量译码装置和方法 | |
CN105656604A (zh) | 一种比特交织极化编码调制方法及装置 | |
CN103220003B (zh) | 提高节点处理并行度的qc-ldpc译码器的实现方法 | |
CN1794621A (zh) | 非规则置换矩阵ldpc码的构造方法及装置 | |
CN106330203A (zh) | 一种ldpc的解码方法 | |
Tadaki | A statistical mechanical interpretation of algorithmic information theory | |
CN110032470B (zh) | 一种基于哈夫曼树的异构部分重复码的构造方法 | |
CN105680879A (zh) | 兼容dvb-s2x标准的ldpc译码器设计方法 | |
CN101599302B (zh) | 一种基于fpga的ldpc译码器的译码码字的高效存储方法 | |
CN103220002B (zh) | 一种消除译码器访问冲突的准循环ldpc码构造方法 | |
CN101267209B (zh) | Ldpc译码的循环式分级最小值计算方法及其实现装置 | |
TW202205815A (zh) | 用於自循環置換矩陣之叢集建構之準循環低密度奇偶檢查碼之垂直分層解碼之方法及裝置 | |
CN101594152A (zh) | 实现水平运算和垂直运算同时运行的ldpc码译码方法 | |
CN100544212C (zh) | 高速的减少存储需求的低密度校验码解码器 | |
CN101420279B (zh) | 用于移动多媒体广播中的高速ldpc译码器及译码方法 | |
Park et al. | Irregular product coded computation for high-dimensional matrix multiplication | |
CN105447241A (zh) | 一种逻辑函数的esop最小化方法 | |
Chen et al. | An efficient multirate LDPC-CC decoder with a layered decoding algorithm for the IEEE 1901 standard | |
CN113612575B (zh) | 面向Wimax协议的QC-LDPC译码器译码方法及系统 |
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 |