CN101604975A - 一种低功耗多模qc-ldpc码解码器及其工作方法 - Google Patents
一种低功耗多模qc-ldpc码解码器及其工作方法 Download PDFInfo
- Publication number
- CN101604975A CN101604975A CNA2009100545252A CN200910054525A CN101604975A CN 101604975 A CN101604975 A CN 101604975A CN A2009100545252 A CNA2009100545252 A CN A2009100545252A CN 200910054525 A CN200910054525 A CN 200910054525A CN 101604975 A CN101604975 A CN 101604975A
- Authority
- CN
- China
- Prior art keywords
- group
- data
- memory
- information
- row
- 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.)
- Pending
Links
Images
Abstract
本发明涉及一种低功耗多模QC-LDPC码解码器硬件结构及其工作方法,解码器主要包括输入输出缓存、存储器阵列、算术逻辑运算阵列、互连网络和主控制器等部分,采用并行度为b的阵列式架构,以保证较高的数据吞吐量。其工作方法采用优化的归一化和积算法,重新配置两步迭代,优化中间存储信息,使之能够在保证纠错能力的前提下更加高效的完成软判决解码。这种设计方法适合于任意码率、任意码长的规则和非规则QC-LDPC码;大大减少片上存储资源,减少互联线网络,降低后端布线难度,提高芯片利用率,有效降低芯片功耗。
Description
技术领域
本发明涉及一种低功耗多模QC-LDPC码解码器,应用于高速无线数字通信、光纤通信、卫星通信、多媒体数字广播和磁光学存储等诸多系统。属于应用数学、数字通信和微电子等学科领域。
背景技术
随着现代通信系统向着高数据吞吐率、大容量、高可靠性的方向发展,前向纠错信道编码已经成为通信系统中关键技术之一。上世纪60年代初Gallager发明的线性分组码---LDPC码(Low-Density Parity-Check Codes低密度奇偶校验码),由于其解码复杂度非常高和VLSI(超大规模集成电路)技术不成熟,被长期忽略。直到上世纪90年代中期,MacKay和Neal重新发现其功率有效性甚至优于Trubo码,而且理论证明是目前最接近香农极限(Shannon Limit)的前向纠错码。自那以后,LDPC码飞速发展,各种简化译码算法不断涌现,从而被广泛地应用于如DVB-S2、802.11n(WLAN)、802.16e(WiMAX)、中国DTMB和CMMB等系统中。QC-LDPC码(Quasi-Cyclic LDPC准循环奇偶校验码)是最典型的一种LDPC码,它具有线性编码复杂度,可以采用灵活的部分并行迭代译码,因此上述系统中的LDPC码矩阵都是准循环形式的。由于现代通信广播标准层出不穷和多样化,一种可以兼容多标准的多模可配置QC-LDPC解码器硬件结构成为大势所趋。同时随着无线可移动终端的使用者越来越多,低功耗实现尤为重要。
由于通信信道多样化,不同信道环境所需要的纠错能力也不一样,因此所有系统都采用灵活的可变码率或者可变码长的前向纠错码技术。同时LDPC码的纠错性能与码长成正比关系,码长越长,纠错能力越强。在高可靠性传输要求下,非规则、长QC-LDPC码是首选。但是随着码长和码率增多,芯片面积将成倍增加,布线难度急剧上升,最后导致芯片面积和功耗大大增加。于是兼容多标准的多模可配置QC-LDPC码解码器设计成为VLSI(超大规模集成电路)设计的技术难点之一。
同时,由于便携式可移动终端的广泛使用,低功耗设计尤为重要。在优先保证译码性能的前提下,低功耗QC-LDPC码解码器设计成为VLSI设计的技术难点之二。
发明内容
本发明旨在提出一种低功耗多模QC-LDPC码解码器的硬件结构和解码方法,采用优化的两步迭代算法和硬件分时复用技术,可以大大减少芯片面积,并且能以最大码长、单一码率的硬件资源使用量实现变码长、变码率的软判决解码。
本发明的技术方案是:一种低功耗多模QC-LDPC码解码器,由输入输出缓存、保存中间信息的存储器阵列、存储奇偶校验矩阵H的片上存储器、算术逻辑运算阵列、互连网络和主控制器组成,采用部分并行的阵列式结构。硬件架构以高纠错性能、低功耗、高可配置性为设计目标。
所述解码器系统的并行度为b,b为QC-LDPC展开因子;所述算术逻辑运算阵列包括b路数据恢复器阵列、b路循环移位器、b路搜索器阵列、b路累加器和b路奇偶校验处理阵列。
解码器系统引入分时复用技术,由6只2选1多路开关选通组成b组横向处理单元CFU、b组纵向处理单元BFU和b组横向纵向混合处理单元HFU,以最小硬件代价分时复用、共同完成两相迭代解码。
所述b组横向处理单元CFU由b路数据恢复器阵列、b路循环移位器、b路搜索器阵列、b路累加器和b路奇偶校验处理阵列组成。
所述b组纵向处理单元BFU由b路数据恢复器阵列、b路循环移位器和b路累加器组成。
所述b组横向纵向混合处理单元HFU由上述b组横向处理单元CFU和b组纵向处理单元BFU组合而成。
所述并行度b为127。
所述主控制器采用动态门控时钟,减少不必要的寄存器翻转和存储器读写操作,可以降低11%的芯片功耗。
一种上述QC-LDPC码解码器的工作方法,采用优化的两步迭代算法,其步骤如下:
步骤1:用接收过来的信道本征信息初始化本征信息存储器和累加和信息存储器;用零初始化最小绝对值、差值、最小绝对值索引和符号存储器;
步骤2:读取相应信息,按行序串行扫描,更新结果保存到最小绝对值、差值、最小绝对值索引和符号存储器中;
步骤3:读取相应信息,按列序串行扫描,更新结果保存到和值信息存储器中;
步骤4:完成一次迭代解码后,解码器利用和值信息做硬判决和奇偶校验;
步骤5:当判决结果满足奇偶校验方程或者达到最大迭代次数,结束迭代译码,进入下一步骤;否则,转入步骤2,再完成一次迭代解码;
步骤6:程序结束。
其中:
步骤2所述行序串行扫描的方法是:
步骤21:主控制器首先从存储器中读取出某行块Wrm所需的和值信息;
步骤22:读取出的Wrm组和值串行通过127阶的循环移位器;
步骤23:主控制器从存储器中一次性读取出该行块Wrm对应的127组值集合,包括最小绝对值、差值、符号和最小绝对值索引;
步骤24:读取出的127组值集合被保留在数据恢复器单元中,并根据子矩阵位置串行恢复出本次横向更新所需要的Wrm组外信息,每组为127个并行8比特数据;
步骤25:将步骤32和步骤34所得到的Wrm组和值信息和Wrm组外信息串行通过累加器,做Wrm次串行减法操作后得到Wrm组更新的先验信息,每组为127个并行8比特数据;
步骤26:127个并行的搜索器串行扫描步骤35生成的Wrm组更新的先验信息,得到该行块对应的127组更新的值集合,包括最小绝对值、差值、符号和最小绝对值索引;主控制器将这些值集合一次性写回到存储器;
步骤27:行序串行扫描结束。
步骤3所述列序串行扫描的方法是:
步骤31:主控制器首先从存储器中读取出某列块Wcn所需的值集合,包括最小绝对值、差值、符号和最小绝对值索引;该值集合来自于本次迭代行序串行扫描阶段更新后的信息;
步骤32:读取出的Wcn组值集合信息串行通过127个并行的数据恢复器单元,恢复出本次纵向更新所需要的Wcn组外信息,每组为127个并行8比特数据;
步骤33:恢复出的Wcn组外信息串行通过127阶的循环移位器,循环移位器的偏移量来源于存储奇偶校验矩阵H的片上存储器;
步骤34:主控制器从存储器中读取该列块Wcn对应的信道本征信息,每列块操作只需读取一次信道本征信息,并与步骤33得到的Wcn组信息中第一组数据做加法操作;
步骤35:127路并行的累加器完成来自步骤33和步骤34的数据累加操作,并作溢出保护;主控制器控制将累加操作结束后的得到的累加和后验信息写回存储器;
步骤36:列序串行扫描结束。
所述行序串行扫描和列序串行扫描各占用t个时钟周期,完成一次迭代解码需要2*t个时钟周期,t为奇偶校验矩阵中非零子矩阵的个数。
在进行横向更新时,解码器输入b组、每组Wr个数据,输出b组、每组Wr个更新后的数据;所述b组输出数据采用归一化的最小和算法,被压缩成最小绝对值、次小绝对值、符号、最小值索引的形式存储;在下一次迭代之前,恢复器采用读出的压缩存储数据,恢复出所需要的b组数据。
由于每行更新后的次小绝对值在恢复过程中只用到一次(1/Wr),同时次小和最小绝对值之间的差值动态范围不是很大,因此解码器系统采用7比特数据量化最小绝对值,采用4比特数据量化次小绝对值和最小值的差值。这样可以节省5.64%的片上存储空间,随之带来的性能损失不到0.15dB;码率越高,性能损失越小。
在存储每组Wr个更新后数据符号的时候,为了配合解码器的串行扫描结构,所有更新后输出数据的符号被拆分成每行所有输入数据的符号和所有输入数据符号的异或结果标志位;在下一次数据恢复过程中,相应的符号由输入数据的符号和每行的标志位相异或得到。可以避免在串行扫描中增加许多触发器暂存更新过程中的符号。
所述最小值索引按行重Wr重新编号,低码率(矩阵行数多)行重小,高码率(矩阵行数少)行重大。为了节省存储最小值索引的片上存储器资源,同一个索引值的不同比特分开存储在不同的RAM中。因此不同码率所需要的存储索引值的资源几乎是一样的,相比较传统存储策略,最多可以节省50%的存储器资源。
所述奇偶校验矩阵H存储在片上存储器中,存储内容为非零子矩阵在奇偶校验矩阵H中的位置和所有子矩阵第一行非零元素1的索引;主控制器读取所述片上存储器中的数据,控制整个解码过程;当码率和码长改变时(在硬件可实现码长范围之内),只需更新这块存储器中的数据,其它存储器阵列、逻辑运算单元、数据置换网络无需改变,从而使该解码器具有很高的灵活性、可配置性。
所述行序串行扫描和列序串行扫描过程均采用5级深度流水线形式,分别是存储器读操作R、数据处理阶段D1、数据处理阶段D2、数据处理阶段D3、数据反馈或者存储器写F/W操作;解码器可以工作到200MHz的峰值频率。
本发明低功耗多模QC-LDPC码解码器的优点是:
1.结合非规则QC-LDPC码奇偶校验矩阵H的特点,解码器采用并行度为b(QC-LDPC码扩展因子)的的阵列式架构,以保证较高的数据吞吐量。通过对算法的优化和改进,每行只需存储最小绝对值、最小和次小绝对值的差值、符号和最小绝对值索引,从而大大减少片上存储资源,减少互联线网络,降低后端布线难度,提高芯片利用率。
2.为了尽可能降低芯片面积,解码器引入分时复用技术,行扫描和列扫描串行完成。因此,由b个并行数据处理单元组成的阵列可以完成相应的横向扫描过程和纵向扫描过程,几乎不需要额外的硬件资源。
3.在整个解码器设计中,片上存储器资源占了几乎60%的芯片面积,为了降低存储器所占面积,绝大部分RAM(随机存取存储器)都是单口的,同一类型的RAM集中放置于一个bank中,共用一个读写控制器,有利于后端布局布线。
4.横向纵向混合处理单元HFU阵列模块每个时钟周期处理一个非零子矩阵,更新b组由最小绝对值、最小和次小绝对值的差值、符号和最小绝对值索引组成的值集合。这b组值集合在下一次迭代之前,通过恢复阵列模块(recover)计算出b个更新后的数据,送入HFU做下一次迭代译码。整个更新过程采用5级流水线结构,大大缩短关键路径,提高峰值工作频率。
5.在存储b行Wr个更新后最小值索引的时候,索引按行重Wr重新编号,同一个索引值的不同比特分开存储在不同的RAM中。因此不同码率所需要的存储索引值的资源几乎一样,相比较传统存储策略,最多可以节省50%的存储器资源。同时,在存储b行Wr个更新后数据符号的时候,将所有更新后输出数据的符号拆分成每行所有输入数据的符号和所有输入数据符号的异或结果标志位;在下一次数据恢复过程中,输出数据的符号由输入数据的符号和每行的标志位相异或得到。这样就避免了在串行扫描中增加许多的触发器暂存更新过程中的符号。
6.由于片上存储器和寄存器资源使用很多,解码器采用了灵活配置的动态门控时钟,关断不必要的存储器读写和寄存器翻转操作,大大降低芯片功耗。
7.对于不同的码长和码率,只需要重新配置ROM中的基矩阵信息。因此本发明QC-LDPC码解码器的实用性和可移植性很强,可以应用于多种标准的QC-LDPC码,如DVB-S2、802.11n(WLAN)、802.16e(WiMAX)、中国DTMB和CMMB等。
附图说明
图1是本发明低功耗多模QC-LDPC码解码器的硬件架构图;
图2是本发明低功耗多模QC-LDPC码解码器两步迭代算法的流程图;
图3a是本发明QC-LDPC解码器横向纵向混合处理时序分布图;
图3b是本发明QC-LDPC解码器横向处理时序分布图;
图3c是本发明QC-LDPC解码器纵向处理时序分布图;
图4是本发明QC-LDPC解码器CFU横向串行扫描单元结构图;
图5是本发明QC-LDPC解码器BFU纵向串行扫描单元结构图;
图6是本发明QC-LDPC解码器HFU混合处理单元与分时复用技术结构图;
图7是本发明QC-LDPC解码器五级流水线数据处理通路时序图;
图8是本发明QC-LDPC解码器最小值索引存储优化方案图;
图9a是传统方法符号存储方案图;
图9b是本发明QC-LDPC解码器符号存储优化方案图;
图10是本发明QC-LDPC解码器动态门控时钟策略图。
6.具体实施方案
图1所示是本发明QC-LDPC码解码器的VLSI硬件结构,解码器由输入输出缓存、存储器阵列、存储奇偶校验矩阵H的片上存储器、算术逻辑运算阵列、互连网络和主控制器组成。
本发明QC-LDPC码解码器采用优化的两步迭代算法,如图2所示。首先用接收过来的信道本征信息初始化本证信息存储器和累加和信息存储器,用零初始化最小绝对值、差值、最小绝对值索引和符号存储器,然后读取相应信息做行序串行扫描,更新结果保存到最小绝对值、差值、最小绝对值索引和符号存储器中,行序串行扫描完成之后,读取相应信息做列序串行扫描,更新结果保存到和值信息存储器中。一次行序串行扫描和一次列序串行扫描组成了一次完整的迭代。每次迭代之后,解码器利用和值信息做硬判决和奇偶校验,当判决结果满足奇偶校验方程或者达到最大迭代次数,结束迭代译码。
本解码器设计在每次迭代过程中按顺序分为行序串行扫描阶段(RWSR:Row-Wise Scanning Round)和列序串行扫描阶段(CWSR:Column-Wise ScanningRound)。解码过程中,RWSR根据奇偶校验矩阵H(以下简称H矩阵)行块进行横向更新,每行块扫描完成后,进行下一行块扫描,直到所有行块扫描完成后进入CWSR阶段。CWSR按照H矩阵列块进行纵向更新,直到所有列块扫描完成后就进入到下一次迭代过程。其中RWSR进行某一行块扫描时,其内部进行串行扫描,整个行块操作需要该行行重个时钟周期;同理,CWSR在进行某一列块扫描时,内部也进行串行扫描,整个列块操作需要该列列重个时钟周期。RWSR与CWSR两个阶段在时间上分开的。图3是一个参数b=10,Wrm=5 for m=1,...,M,and Wcn=5 for n=1,...,N的时序分布图。
这里将QC-LDPC码用参数集合(M,N,b,t)表示,其中M为行块数,N为列块数,b为子矩阵大小,t为非零子矩阵个数。DTMB系统中采用的LDPC码为非规则QC-LDPC码,其子矩阵大小b=127,列块数N=59,行块数M在码率为0.4、0.6、0.8时分别为35、23、11,非零子矩阵个数t在码率为为0.4、0.6、0.8时分别为275、296、294。
在某种码率下,以Wrm代表m行行重(m=1,2,...,M),以Wcn代表n列列重(n=1,2,...,N)。因此,RWSR在第m个行块扫描时需要Wrm个时钟周期;同理CWSR在第n个列块扫描时需要Wcn个时钟周期。可以看出,每次迭代过程中,总的RWSR和CWSR操作的时钟周期个数相等,且都为H矩阵中非零子矩阵个数t。
在图1所示的整个解码器的系统框图中,译码部分包括如下5个阵列和元器件组:1)存储器块(Memory blocks),2)数据恢复阵列(Recover array),3)循环移位器(Permutation Network),4)查找、累加、奇偶校验处理阵列(Searchers-Accumulators-Parity checks array),5)主控制器(Central Controller)。
其中:
1.存储器块包括:
I_RAM Bank:由16个深度为59,数据宽度为64比特的单口存储器构成,用于存储外部接收的信道本征信息。
S_RAM Bank:由16个深度为59,数据宽度为64比特的单口存储器构成,用于存储纵向更新生成的累加和信息。
M_RAM Bank:由16个深度为35,数据宽度为88比特的单口存储器构成,用于存储横向更新操作后生成的最小绝对值和差值信息。
P_RAM Bank:由9个深度为12,数据宽度为127比特的单口存储器构成,用于存储横向更新操作后的得到的最小绝对值索引信息。
F_RAM Bank:由1个深度为296,数据宽度为127比特的双口存储器和1个深度为35,数据宽度为127的单口存储器构成,用于存储来自横向更新操作后得到的符号位信息。
Hbase_ROM Bank:由2个深度为865,数据宽度为6比特的单口存储器构成,用于存储3种码率对应H矩阵的信息(非零子矩阵的位置,对应子矩阵的内部偏移量)。
2.数据恢复阵列(Recover array)并行度为127。在第k次迭代的横向更新操作中,首先对来自M_RAM、P_RAM和F_RAM的信息进行恢复操作,得到第k-1次迭代更新的信息,用于后阶段的数据操作。在第k次迭代的纵向更新操作中,首先对来自M_RAM、P_RAM和F_RAM的信息进行恢复操作,得到本次迭代横向更新后的信息,用于后阶段的数据累加和操作。
3.循环移位器(Permutation Network)由阶数为127的桶型移位器构成,能够满足系统对数据的循环移位操作要求。由于本解码器引入了时分复用技术,将译码过程按时间分解为RWSR和CWSR两个阶段,因此每个处理阶段所需用到的循环移位器可以由一个循环移位器来完成。
图4是横向串行扫描过程(RWSR)的硬件实现。RWSR阶段硬件包括4类存储器堆(memory banks)、127路并行数据恢复器(Recovers)、127阶的桶式循环移位器(Permutation Network)、127路并行累加器(Accumulators)、127路并行搜索器(Searchers)。在第k次迭代过程中,首先进行横向更新数据操作,分为以下几个步骤:
1)主控制器首先从S_RAM存储器中读取出某行块(对应行重为Wrm,其中,m=1,...,M)所需的和值信息;串行操作模式下每个时钟周期读取出一组127个8比特的和值,每组数据对应该行块非零子矩阵,则整个行块操作需要Wrm个连续的时钟周期。
2)读取出的Wrm组和值串行通过127阶的循环移位器(PermutationNetwork),循环移位器的偏移量来源于Hbase_ROM。主控制器从Hbase_ROM读取该行块对应非零子矩阵的偏移量并传送给循环移位器,该偏移量与当前所处理的非零子矩阵相对应。
3)与串行读取Wrm组和值信息同步,主控制器从M_RAM、P_RAM和F_RAM存储器中一次性读取出该行块对应的127组值集合(最小绝对值、差值、符号和最小绝对值索引)。
4)第3)步读取出的127组值集合被保留在数据恢复单元(Recover array)中,并根据子矩阵位置串行恢复出本次横向更新所需要的Wrm组外信息,每组为127个并行8比特数据。
5)由第2)步和第4)所得到的Wrm组和值信息和Wrm组外信息串行通过累加器(Accumulators),做Wrm次串行减法操作后得到Wrm组更新的先验信息,每组为127个并行8比特数据。
6)127路并行的搜索器(Searchers)串行扫描第5)步生成的Wrm组更新的先验信息,得到该行块对应的127组更新的值集合(最小绝对值、差值、符号和最小绝对值索引),主控制器将这些值集合一次性写回到M_RAM、P_RAM和F_RAM存储器。之后本次行块更新操作结束,进入下一个行块数据更新操作周期。
7)与串行横向扫描同步,主控制器控制127个并行的奇偶校验(ParityChecks)模块串行接收来自第2)步生成的Wrm组和值的符号位(每组127个1比特),完成该行块对应127行的奇偶校验操作,每行块更新结束后保存下该行块奇偶校验结果。若对应译码模式下H矩阵的M行行块奇偶校验完成且满足硬判决输出条件,则主控制器控制结束整个译码迭代过程,转入数据输出阶段。
图5是纵向串行扫描过程(CWSR)的硬件实现。CWSR阶段硬件包括5类存储器堆(memory banks)、127路并行恢复器(Recovers)、127阶的循环移位器(Permutation Network)、127路并行累加器(Accumulators)。第k次迭代过程中,RWSR阶段完成H矩阵所有M行行块横向更新操作后,若不满足奇偶校验结束条件,则本次迭代进入CWSR阶段,具体分为以下几步操作。
1)主控制器首先从M_RAM、P_RAM和F_RAM存储器中读取出某列块(对应列重为Wcn,其中n=1,...,N)所需的值集合(最小绝对值、差值、符号和最小绝对值索引),该信息来自于本次迭代RWSR阶段更新后的信息;串行操作模式下每个时钟周期读取出一组127组值集合信息,每组数据对应于该列块非零子矩阵,则整个列块操作需要Wcn个连续的时钟周期。
2)第1)步读取出的Wcn组值集合信息串行通过127个并行的数据恢复单元(Recover array),恢复出本次纵向更新所需要的Wcn组外信息,每组为127个并行8比特数据。由于RWSR阶段和CWSR阶段时间上的分离,该127个并行的数据恢复单元可实现硬件复用。
3)由第2)步恢复出的Wcn组外信息串行通过127阶的循环移位器(Permutation Network),循环移位器的偏移量来源于Hbase_ROM。主控制器从Hbase_ROM读取该列块对应非零子矩阵的偏移量并传送给循环移位器,偏移量与非零子矩阵相对应。由于RWSR阶段和CWSR阶段时间上的分离,该127阶循环移位器可实现硬件复用。
4)与第1)步操作同步,主控制器从I_RAM读取该列块对应的信道本征信息,每列块操作只需读取一次信道本征信息,并与第3)步得到的Wcn组信息中第一组数据做加法操作。
5)127路并行的累加器(Accumulators)完成来自第3)步和第4)步的数据累加操作,并作溢出保护。每次纵向更新过程对应列块需要Wcn次累加操作,主控制器控制将累加操作结束后的得到的累加和后验信息写回S_RAM存储器。由于RWSR阶段和CWSR阶段时间上的分离,该127路并行的累加器可实现硬件复用。
图6是HFU混合处理单元与硬件分时复用技术。由以上对RWSR阶段和CWSR阶段的分析可以看出,由于两个阶段在时间上的分离交替更新,其127路并行的恢复器(Recover array)、循环移位器(Permutation Network)、127路并行的累加器(Accumulators)处理单元可以硬件复用,从而降低芯片面积和提高硬件利用率。该硬件复用技术只需一些简单的2选1多路开关即可实现,当选择开关连接1时解码器处于RWSR阶段,当选择开关连接2时解码器处于CWSR阶段。
图7是五级流水线数据处理通路。从图4、图5可以得出,RWSR阶段和CWSR阶段分为5级流水线处理(包括存储器读、写操作)。
第1级R为存储器读取操作,如横向更新过程中读取和值信息和值集合信息;纵向更新过程读取本征信息和值集合信息。
第2、3、4级对应图4、图5中插入寄存器D1、D2、D3而分隔开的各级,分述如下:在RWSR阶段,流水线第2级完成循环移位操作(Permutation Network)和数据恢复操作(Recover array),第3级完成奇偶校(Parity Checks)和累加器操作(Accumulators);第4级完成搜索器操作(Searchers)。在CWSR阶段,流水线第2级完成数据恢复操作(Recover array),第3级完成循环移位操作(Permutation Network),第4级完成累加器操作(Accumulators)。
第5级F/W代表中间数据反馈和数据写回操作。在横向、纵向更新过程中,第5级都需要中间数据(最后一级寄存器输出)反馈回前一级作相应的数据处理,如纵向更新过程需要把之前累加和所得值反馈回前一级做累加操作。最终更新生成的数据则由主控制器控制写回相应的存储器块,如在横向更新之后将生成的127组值集合信息写回M_RAM、P_RAM和F_RAM存储器。
图8是最小值索引存储优化策略。所有非规则QC-LDPC码行重Wr都小于列块数N(Wr<N),同时非零子矩阵的个数几乎是一样的。也就是说,码率越高,矩阵行数越少,而行重越大。为了节省片上存储器资源,本设计提出最小绝对值的索引按行重重新编号,每个索引的不同比特分开存储在不同的存储器中。这样做的好处是码率的变化不会带来存储器资源的急剧增加或者急剧减少,解码器可以以最少的存储器资源完成多种码率的解码。当码率为2/5时,行块数为35,行重最多为8,需要3比特存储;当码率为3/5时,行块数为23,行重最多13,需要4比特数据存储;当码率为4/5时,行块数为11,行重最多为27,需要5比特存储。所以我们可以利用9块深度为12、宽度为127的单口存储器存储最小值索引。
图9是本发明解码器符号存储优化策略。由于本设计采用的行串行扫描更新,因此每行更新后的数据要在Wr个时钟周期之后才知道,而传统方法是使用寄存器暂存这些符号,如图8a所示。但是Wr随着码率的变化而急剧变化,因此码率不一样,所需要的寄存器数量也不一样,当码率很高的时候(行重Wr很大),所需要的寄存器数量非常庞大,占用很多的芯片面积。本设计提出把最终符号输出分解为输入符号Si和输入所有符号相异或所得标志位F(如图9b所示)。这样做的好处是不管码率如何变化,都不要寄存器存储中间信息,只需要额外的存储器资源存储标志位。但是相对于使用大量的寄存器,本优化设计更加高效。
门控时钟是降低芯片功耗的主要方法之一,本设计也引入了门控时钟。当解码器处于空闲状态时,关断除主控制器模块的所有时钟,这样避免了很多没必要的存储器读写和寄存器翻转操作。除此之外,本设计还根据CWSR处理阶段的特点,提出了一种动态门控时钟策略,以减少寄存器所消耗的功耗。比如,在纵向串行扫描过程中,需要扩位完成累加操作,扩展位数与该列列重密切相关。由于非规则QC-LDPC码的列重动态范围比较大,需要最多4比特扩展寄存器。但是,大部分情况下,只需要2比特扩展寄存器就可以满足要求(列重都小于4)。因此,本设计提出根据列重动态控制4比特扩展寄存器的开启和关断,节省芯片功耗,如图10所示。
Claims (12)
1.一种低功耗多模QC-LDPC码解码器,由输入输出缓存、保存中间信息的存储器阵列、存储奇偶校验矩阵H的片上存储器、算术逻辑运算阵列、互连网络和主控制器组成,采用部分并行的阵列式结构,其特征在于:所述解码器系统的并行度为b,b为QC-LDPC展开因子;所述算术逻辑运算阵列包括b路数据恢复器阵列、b路循环移位器、b路搜索器阵列、b路累加器和b路奇偶校验处理阵列;由6只2选1多路开关选通组成b组横向处理单元CFU、b组纵向处理单元BFU和b组横向纵向混合处理单元HFU;
所述b组横向处理单元CFU由b路数据恢复器阵列、b路循环移位器、b路搜索器阵列、b路累加器和b路奇偶校验处理阵列组成;
所述b组纵向处理单元BFU由b路数据恢复器阵列、b路循环移位器和b路累加器组成;
所述b组横向纵向混合处理单元HFU由上述b组横向处理单元CFU和b组纵向处理单元BFU组合而成。
2.如权利要求1所述的QC-LDPC码解码器,其特征在于:所述主控制器采用动态门控时钟;所述并行度b为127。
3.一种权利要求1和2所述QC-LDPC码解码器的工作方法,采用优化的两步迭代算法,其步骤如下:
步骤1:用接收过来的信道本征信息初始化本征信息存储器和累加和信息存储器;用零初始化最小绝对值、差值、最小绝对值索引和符号存储器;
步骤2:读取相应信息,按行序串行扫描,更新结果保存到最小绝对值、差值、最小绝对值索引和符号存储器中;
步骤3:读取相应信息,按列序串行扫描,更新结果保存到和值信息存储器中;
步骤4:完成一次迭代解码后,解码器利用和值信息做硬判决和奇偶校验;
步骤5:当判决结果满足奇偶校验方程或者达到最大迭代次数,结束迭代译码,进入下一步骤;否则,转入步骤2,再完成一次迭代解码;
步骤6:程序结束。
4.如权利要求3所述QC-LDPC码解码器的工作方法,其特征在于:步骤2所述行序串行扫描的方法是:
步骤21:主控制器首先从存储器中读取出某行块Wrm所需的和值信息;
步骤22:读取出的Wrm组和值串行通过127阶的循环移位器;
步骤23:主控制器从存储器中一次性读取出该行块Wrm对应的127组值集合,包括最小绝对值、差值、符号和最小绝对值索引;
步骤24:读取出的127组值集合被保留在数据恢复器单元中,并根据子矩阵位置串行恢复出本次横向更新所需要的Wrm组外信息,每组为127个并行8比特数据;
步骤25:将步骤32和步骤34所得到的Wrm组和值信息和Wrm组外信息串行通过累加器,做Wrm次串行减法操作后得到Wrm组更新的先验信息,每组为127个并行8比特数据;
步骤26:127个并行的搜索器串行扫描步骤35生成的Wrm组更新的先验信息,得到该行块对应的127组更新的值集合,包括最小绝对值、差值、符号和最小绝对值索引;主控制器将这些值集合一次性写回到存储器;
步骤27:行序串行扫描结束。
5.如权利要求3所述QC-LDPC码解码器的工作方法,其特征在于:步骤3所述列序串行扫描的方法是:
步骤31:主控制器首先从存储器中读取出某列块Wcn所需的值集合,包括最小绝对值、差值、符号和最小绝对值索引;该值集合来自于本次迭代行序串行扫描阶段更新后的信息;
步骤32:读取出的Wcn组值集合信息串行通过127个并行的数据恢复器单元,恢复出本次纵向更新所需要的Wcn组外信息,每组为127个并行8比特数据;
步骤33:恢复出的Wcn组外信息串行通过127阶的循环移位器,循环移位器的偏移量来源于存储奇偶校验矩阵H的片上存储器;
步骤34:主控制器从存储器中读取该列块Wcn对应的信道本征信息,每列块操作只需读取一次信道本征信息,并与步骤33得到的Wcn组信息中第一组数据做加法操作;
步骤35:127路并行的累加器完成来自步骤33和步骤34的数据累加操作,并作溢出保护;主控制器控制将累加操作结束后的得到的累加和后验信息写回存储器;
步骤36:列序串行扫描结束。
6.如权利要求3、4或5所述QC-LDPC码解码器的工作方法,其特征在于:所述行序串行扫描占用t个时钟周期,所述列序串行扫描占用t个时钟周期,完成一次迭代解码需要2*t个时钟周期,t为奇偶校验矩阵中非零子矩阵的个数。
7.如权利要求6所述QC-LDPC码解码器的工作方法,其特征在于:在进行横向更新时,解码器输入b组、每组Wr个数据,输出b组、每组Wr个更新后的数据;所述b组输出数据采用归一化的最小和算法,被压缩成最小绝对值、次小绝对值、符号、最小值索引的形式存储;在下一次迭代之前,恢复器采用读出的压缩存储数据,恢复出所需要的b组数据。
8.如权利要求7所述QC-LDPC码解码器的工作方法,其特征在于:在存储每组Wr个更新后数据符号的时候,为了配合解码器的串行扫描结构,所有更新后输出数据的符号被拆分成每行所有输入数据的符号和所有输入数据符号的异或结果标志位;在下一次数据恢复过程中,相应的符号由输入数据的符号和每行的标志位相异或得到。
9.如权利要求7或8所述QC-LDPC码解码器的工作方法,其特征在于:采用7比特数据量化最小绝对值,采用4比特数据量化次小绝对值和最小值的差值。
10.如权利要求7或8所述QC-LDPC码解码器的工作方法,其特征在于:所述最小值索引按行重Wr重新编号,同一个索引值的不同比特分开存储在不同的RAM中。
11.如权利要求3、4或5所述QC-LDPC码解码器的工作方法,其特征在于:所述奇偶校验矩阵H存储在片上存储器中,存储内容为非零子矩阵在奇偶校验矩阵H中的位置和所有子矩阵第一行非零元素1的索引;主控制器读取所述片上存储器中的数据,控制整个解码过程;当码率和码长改变时,只需更新这块存储器中的数据,其它存储器阵列、逻辑运算单元、数据置换网络无需改变。
12.如权利要求3、4或5所述QC-LDPC码解码器的工作方法,其特征在于:所述行序串行扫描和列序串行扫描过程均采用5级深度流水线形式,分别是存储器读操作R、数据处理阶段D1、数据处理阶段D2、数据处理阶段D3、数据反馈或者存储器写F/W操作;解码器可以工作到200MHz的峰值频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100545252A CN101604975A (zh) | 2009-07-08 | 2009-07-08 | 一种低功耗多模qc-ldpc码解码器及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100545252A CN101604975A (zh) | 2009-07-08 | 2009-07-08 | 一种低功耗多模qc-ldpc码解码器及其工作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101604975A true CN101604975A (zh) | 2009-12-16 |
Family
ID=41470548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100545252A Pending CN101604975A (zh) | 2009-07-08 | 2009-07-08 | 一种低功耗多模qc-ldpc码解码器及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101604975A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244519A (zh) * | 2010-05-10 | 2011-11-16 | 上海华虹集成电路有限责任公司 | 一种低功耗ldpc译码装置及实现方法 |
WO2015168862A1 (zh) * | 2014-05-06 | 2015-11-12 | 华为技术有限公司 | 一种数据处理设备和方法 |
CN105141317A (zh) * | 2015-08-28 | 2015-12-09 | 中南民族大学 | 降低ldpc差错平台的两阶段选择性翻转译码方法 |
CN105337618A (zh) * | 2014-08-06 | 2016-02-17 | 上海明波通信技术股份有限公司 | 并行向下兼容的多模ira_ldpc译码器及其译码方法 |
CN107087170A (zh) * | 2011-11-07 | 2017-08-22 | 佳能株式会社 | 编码设备、编码方法、解码设备和解码方法 |
CN107425856A (zh) * | 2016-03-17 | 2017-12-01 | 慧荣科技股份有限公司 | 低密度奇偶校验译码器以及对其进行省电的方法 |
WO2018036178A1 (zh) * | 2016-08-26 | 2018-03-01 | 晶晨半导体(上海)股份有限公司 | 一种ldpc的解码方法 |
CN109714062A (zh) * | 2017-10-26 | 2019-05-03 | 三星电子株式会社 | 执行迭代解码的解码器和使用该解码器的存储设备 |
CN109981117A (zh) * | 2019-03-18 | 2019-07-05 | 北京无极芯动科技有限公司 | 一种四模前向纠错码处理器 |
CN111384970A (zh) * | 2018-12-29 | 2020-07-07 | 电信科学技术研究院有限公司 | 一种译码方法、装置及通信设备 |
-
2009
- 2009-07-08 CN CNA2009100545252A patent/CN101604975A/zh active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244519A (zh) * | 2010-05-10 | 2011-11-16 | 上海华虹集成电路有限责任公司 | 一种低功耗ldpc译码装置及实现方法 |
US10652554B2 (en) | 2011-11-07 | 2020-05-12 | Canon Kabushiki Kaisha | Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and storage medium |
US10750192B2 (en) | 2011-11-07 | 2020-08-18 | Canon Kabushiki Kaisha | Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and storage medium |
CN107087170A (zh) * | 2011-11-07 | 2017-08-22 | 佳能株式会社 | 编码设备、编码方法、解码设备和解码方法 |
CN107087170B (zh) * | 2011-11-07 | 2020-02-28 | 佳能株式会社 | 编码设备、编码方法、解码设备和解码方法 |
US10645401B2 (en) | 2011-11-07 | 2020-05-05 | Canon Kabushiki Kaisha | Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and storage medium |
WO2015168862A1 (zh) * | 2014-05-06 | 2015-11-12 | 华为技术有限公司 | 一种数据处理设备和方法 |
CN105337618B (zh) * | 2014-08-06 | 2018-11-20 | 上海明波通信技术股份有限公司 | 并行向下兼容的多模ira_ldpc译码器及其译码方法 |
CN105337618A (zh) * | 2014-08-06 | 2016-02-17 | 上海明波通信技术股份有限公司 | 并行向下兼容的多模ira_ldpc译码器及其译码方法 |
CN105141317A (zh) * | 2015-08-28 | 2015-12-09 | 中南民族大学 | 降低ldpc差错平台的两阶段选择性翻转译码方法 |
CN107425856A (zh) * | 2016-03-17 | 2017-12-01 | 慧荣科技股份有限公司 | 低密度奇偶校验译码器以及对其进行省电的方法 |
CN107425856B (zh) * | 2016-03-17 | 2020-09-29 | 慧荣科技股份有限公司 | 低密度奇偶校验译码器以及对其进行省电的方法 |
CN112087236A (zh) * | 2016-03-17 | 2020-12-15 | 慧荣科技股份有限公司 | 低密度奇偶校验译码器以及对其进行省电的方法 |
WO2018036178A1 (zh) * | 2016-08-26 | 2018-03-01 | 晶晨半导体(上海)股份有限公司 | 一种ldpc的解码方法 |
CN109714062A (zh) * | 2017-10-26 | 2019-05-03 | 三星电子株式会社 | 执行迭代解码的解码器和使用该解码器的存储设备 |
CN111384970A (zh) * | 2018-12-29 | 2020-07-07 | 电信科学技术研究院有限公司 | 一种译码方法、装置及通信设备 |
CN109981117A (zh) * | 2019-03-18 | 2019-07-05 | 北京无极芯动科技有限公司 | 一种四模前向纠错码处理器 |
CN109981117B (zh) * | 2019-03-18 | 2023-07-04 | 北京无极芯动科技有限公司 | 一种四模前向纠错码处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101604975A (zh) | 一种低功耗多模qc-ldpc码解码器及其工作方法 | |
CN101771421B (zh) | 基于tdmp的超高速低功耗qc-ldpc码解码器 | |
CN101951264B (zh) | 一种多码率准循环低密度奇偶校验码解码器 | |
US7343548B2 (en) | Method and apparatus for encoding and decoding data | |
CN101208864B (zh) | 解码装置及解码方法 | |
CN101803210B (zh) | 使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置和设备 | |
Weiner et al. | LDPC decoder architecture for high-data rate personal-area networks | |
US10374633B2 (en) | Method and system for LDPC decoding | |
CN109802687B (zh) | 一种基于fpga的qc-ldpc码的高速码率兼容ldpc编码器 | |
CN101800559B (zh) | 一种基于tdmp的高速可配置qc-ldpc码解码器 | |
CN108365849B (zh) | 基于simd指令集的多码率多码长ldpc码解码方法 | |
CN106330203A (zh) | 一种ldpc的解码方法 | |
CN102281125A (zh) | 分层分块非规则低密度校验码译码器及译码方法 | |
CN101154948A (zh) | 利用共享硬件及顺序和-积体系结构进行低密度奇偶校验解码的方法和设备 | |
CN103618556A (zh) | 基于rmp调度的部分并行qc-ldpc译码方法 | |
Lin et al. | Efficient shuffled decoder architecture for nonbinary quasi-cyclic LDPC codes | |
CN109347486B (zh) | 低复杂度高吞吐率的5g ldpc编码器和编码方法 | |
CN101917249B (zh) | Qc-ldpc码译码器及其实现方法 | |
CN101692611A (zh) | 一种基于simd结构的多标准ldpc译码器电路 | |
CN101420279B (zh) | 用于移动多媒体广播中的高速ldpc译码器及译码方法 | |
CN105262493A (zh) | 低密度奇偶校验码的译码方法 | |
CN105337618A (zh) | 并行向下兼容的多模ira_ldpc译码器及其译码方法 | |
CN101964664A (zh) | 一种适用于CMMB的多模式Reed-Solomon译码器结构 | |
US8667376B2 (en) | Decoding device, data communication apparatus having the decoder device, and data memory | |
CN100578945C (zh) | 一种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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20091216 |