首页> 中国专利> 一种基于TDMP的高速可配置QC-LDPC码解码器

一种基于TDMP的高速可配置QC-LDPC码解码器

摘要

本发明属于无线通信和微电子技术领域,具体为基于TDMP的高速可配置QC-LDPC解码器。该解码器采用对称四级流水线、行块和列块交织、非零子矩阵重排序、和值寄存器堆奇偶集划分,横向更新和纵向更新按行序串行扫描,每个时钟周期各处理一个非零子矩阵等技术措施。横向更新和纵向更新完全交叠;和值寄存器堆不仅存储变量节点的和值,还存储两相之间传递的暂态外信息。解码器采用相对偏移量置换网络,只对读取的和值进行循环移位。通过一种独特的提前终止策略,可以节省半次到一次迭代周期。本发明解码器架构可以非常灵活地应用到任何形式的规则、非规则QC-LDPC码。

著录项

  • 公开/公告号CN101800559A

    专利类型发明专利

  • 公开/公告日2010-08-11

    原文格式PDF

  • 申请/专利权人 复旦大学;

    申请/专利号CN201010121892.2

  • 发明设计人 向波;鲍丹;黄双渠;曾晓洋;

    申请日2010-03-11

  • 分类号H03M13/11;

  • 代理机构上海正旦专利代理有限公司;

  • 代理人陆飞

  • 地址 200433 上海市邯郸路220号

  • 入库时间 2023-12-18 00:31:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-30

    未缴年费专利权终止 IPC(主分类):H03M13/11 授权公告日:20130227 终止日期:20170311 申请日:20100311

    专利权的终止

  • 2013-02-27

    授权

    授权

  • 2011-03-16

    实质审查的生效 IPC(主分类):H03M13/11 申请日:20100311

    实质审查的生效

  • 2010-08-11

    公开

    公开

说明书

技术领域

本发明属于无线通信和微电子技术领域,具体涉及一种基于TDMP的高速可配置QC-LDPC码解码器,可以应用于一些解码吞吐量要求小于300兆比特每秒(Mb/s)的一般高速系统。

背景技术

因为其优异的纠错性能和很好的部分并行解码器结构,准循环低密度奇偶校验码(QC-LDPC,Quasi-Cyclic Low-Density Parity-Check Codes)被广泛地应用到数字广播及通信领域中,诸如DVB-S2、IEEE 802.11n(Wireless LAN)、IEEE 802.16e(WiMAX)、DTMB和CMMB等系统。

在所有QC-LDPC码解码算法中,归一化最小和(Normalized Min-Sum)解码算法和基于Turbo码信息传递的(Turbo-Decoding Message-Passing)解码算法被广泛采用。前者解码复杂度最低,能最大限度的降低保存中间信息的存储器资源;后者能够最大限度的提高解码收敛速度,进一步提高解码吞吐量。

在所有QC-LDPC码解码器结构中,部分并行解码器结构,折中考虑芯片面积和吞吐量,获得了高速发展。各种并行度的解码器层出不穷。假设M表示基矩阵的行块数;N表示基矩阵的列块数;b表示基矩阵的扩展因子;t表示基矩阵中非零子矩阵的个数。对于QC-LDPC码(M,N,b,t),典型的部分并行度有M、N和b。

随着现代通信广播系统向着高数据吞吐率、大容量、高可靠性的方向发展,以及标准层出不穷和多样化,一种可以兼容多标准的高速可配置QC-LDPC解码器硬件结构成为大势所趋。同时随着无线通信广播的高速发展,以及便携式移动终端用户群不断扩大,低功耗实现尤为重要。

发明内容

本发明的目的在于提供一种芯片的吞吐量大,功耗低,并可节省硬件资源的基于TDMPQC-LDPC码解码器。

本发明要解决如下一些技术问题:

横向更新和纵向更新完全交叠以提高吞吐量。对于传统的两相迭代解码算法,横向更新和纵向更新交替进行。本发明在避免了存储器访问冲突的情况下,两相完全交叠,吞吐量可以提高两倍。

和值寄存器堆奇偶集划分以提高存储器读写频率。两相完全交叠,存储器必须提高读写访问速率。在采用同一时钟的同步系统中,只能通过增加存储器端口达到此目的。但对于非规则的QC-LDPC码(M,N,b,t),需要通过矩阵变换避免存储器访问冲突。

和值寄存器堆还存储两相之间传递的外信息以降低存储器器资源。在本发明中,和值寄存器堆不仅存储变量节点和值,还存储两相之间传递的外信息。这样可以省掉一块很大的同步FIFO。

横向更新采用相对偏移量置换网络以降低硬件资源。传统的解码器设计,横向更新和纵向更新都需要一个绝对偏移量置换网路。对于很大的扩展因子b,两个置换网络需要大量的硬件资源。本设计只需要一个置换网络,对横向更新所需的和值进行相对偏移量置换,而纵向更新后的和值无需进行反置换。

解码结构灵活,具有很好的可配置性。本设计采用行序串行扫描方法,同一行块的纵向更新紧随横向更新。该解码器结构无需较大的改动,就能够移植到其它任何规则或者非规则的QC-LDPC码(M,N,b,t)中。

本发明提供的基于TDMP两相完全交叠的QC-LDPC码解码器,如图2所示,由主控制器、只读存储器、输入和输出缓存寄存器堆、交织和解交织器、变量节点和值寄存器堆、校验节点信息组件寄存器堆、旁路和交叉控制器、置换器(即可配置相对偏移量置换网络)、恢复器(包括恢复器阵列A和恢复器阵列B)、加法器、奇偶校验器、横向更新处理器和纵向更新处理器组成。该解码器横向更新和纵向更新并行度都是b,b为子矩阵扩展因子。该解码器的数据流向如下:

先前的变量节点和值从和值寄存器堆取出,经过旁路和交叉控制器,再经过一个独立可配置相对偏移量置换网络;同时,恢复器阵列A从校验节点信息组件寄存器堆恢复先前的自信息;所有置换后的和值和恢复得到的自信息进入96个加法器所组成的阵列;计算结果作为外信息,一方面暂时保存到和值寄存器堆中,另一方面输入到96个横向更新处理器,更新校验节点信息组件;当一个行块的横向更新完成之后,更新之后的信息组件回写到信息组件寄存器堆;同时送入恢复器阵列B恢复更新之后的自信息;所有恢复得到的自信息和从和值寄存器堆读取的外信息送入96个纵向更新处理器,更新变量节点和值,最后写入和值寄存器堆。

本发明中,输入数据流和输出比特流需要经过特殊处理。输入数据流先按原序写入输入缓存寄存器堆,然后经过列块交织进行和值寄存器堆初始化。输出比特流经过列块解交织写入输出缓存寄存器堆,然后输出到下一级。

本发明中,QC-LDPC解码器采用优化的TDMP解码算法,即用归一化最小和解码算法替换TDMP算法中的软输入软输出引擎,其解码步骤如下:

步骤1:按自然顺序存储从信道接收过来的本征信息到输入缓存寄存器堆中;

步骤2:按交织顺序从输入缓存寄存器堆读出本征信息(通过地址映射完成列块交织),初始化变量节点和值寄存器堆;

步骤3:按行序每次扫描一个非零子矩阵,读取相应变量节点和值(一个列块)和相应校验节点信息组件(一个行块);

步骤4:通过一个相对偏移量置换网络对和值进行循环移位,同时通过一个恢复器阵列从信息组件恢复自信息,最后计算外信息(移位后的和值减去恢复得到的自信息)。

步骤5:写外信息、更新校验节点信息组件、做奇偶校验等等,如果所有行块都满足奇偶校验或者达到最大迭代次数,转入步骤9;

步骤6:按行序重新每次扫描一个非零子矩阵,从和值寄存器堆读取相应外信息(一个列块),同时通过一个恢复器阵列恢复更新后的自信息;

步骤7:更新变量节点和值和硬判决;

步骤8:写回更新后的和值,转入步骤3;

步骤9:硬判决结果从置换网络送入输出缓存寄存器堆,通过地址解映射完成列块解交织;

步骤10:从输出缓存寄存器堆输出解码结果,解码结束;

其中,步骤3、4和5属于横向更新过程;步骤6、7和8属于纵向更新过程。一次子迭代按照步骤3、4、5、6、7和8完成一个行块更新;一次迭代按照步骤3、4、5、6、7和8完成所有行块更新。

本发明中,解码器采用对称四级流水线(Symmetrical Four-Stage Pipelining)结构以提高吞吐量和帮助解决和值寄存器堆访问冲突。横向更新采用三级流水线(Three-StagePipelining):

流水线1:读取变量节点和值和校验节点信息组件(Rd);

流水线2:置换和值、恢复自信息和计算外信息;

流水线3:写入暂态外信息、更新校验节点信息组件和奇偶校验(Wr)。

纵向更新同样采用三级流水线(Three-Stage Pipelining):

流水线1:读取暂态外信息和恢复更新后的自信息(Rd);

流水线2:更新变量节点和值以及硬判决;

流水线3:回写更新后的和值(Wr)。

对于横向更新和纵向更新,第一级流水都是存储器读操作;第三级流水都是存储器写操作。使用双口和值寄存器堆(Two-Port Register File),第一级流水和第三级流水可以互相交叠。因此,整个解码流程采用的是对称的四级流水线结构。对于同一存储器地址,写操作始终发生在读操作两个时钟周期之后。对称性带来的好处是:只需解决存储器读访问冲突,而写访问冲突随着读访问冲突的消失而消失。

本发明中,QC-LDPC基矩阵(Base Matrix)的24个列块(以0到23依次标号)被划分为奇偶两个集合(Odd/Even Set):

奇数集合(Odd Set):1、3、5、7、9、11、13、15、17、19、21和23;

偶数集合(Even Set):0、2、4、6、8、10、12、14、16、18、20和22。

本发明中,为了解决和值寄存器堆读访问冲突,需要对QC-LDPC码基矩阵做以下三项预处理:

预处理1:列块交织(Block Column Interleaving)对基矩阵的列块进行重新排序,对于每一行块,确保所有非零子矩阵尽量均等的分布在权利5所要求的奇数集合和偶数集合。

预处理2:行块交织(Block Row Interleaving)对基矩阵的行块进行重新排序,确保连续两行块的相关性总和(相关性定义:对于连续两行块,同时有非零子矩阵的列块个数)尽量少。

预处理3:非零子矩阵重排序(Nonzero Sub-matrix Reordering)对基矩阵中非零子矩阵的扫描顺序进行重新排序,确保每个时钟周期读取两个不同集合的相关信息。

本发明中,相应的和值寄存器堆被划分为两个堆(Bank),对应奇数集合和偶数集合(Set):

和值寄存器堆0(偶数集):存储偶数集合所对应的所有位置的和值和外信息;

和值寄存器堆1(奇数集):存储奇数集合所对应的所有位置的和值和外信息;

本发明中,解码器有一个可配置置换网络(Permutation Network)(置换器),循环移位读取的和值。传统解码器不仅要对读取的和值进行循环移位,还要对更新后的和值进行循环反移位,这样就需要两个置换网络。本设计通过相对偏移量置换网络,即根据同一列块中当前非零子矩阵和前一个非零子矩阵的偏移量差值进行循环移位,省掉一个用于循环反移位的置换网络。

本发明中,横向更新处理器阵列(CNU Processors)的核心单元包括预处理器(包括求绝对值、符号以及归一化)、分解器、奇偶校验器和保持电路。其中,预处理器由取反和移位加等电路组成;分解器由带反馈回路的比较和选择电路组成;奇偶校验器由带反馈回路的两输入异或门电路组成;保持电路由四个反馈移位寄存器电路组成。保持电路是为了向后续纵向更新单元提供稳定的校验节点信息组件。

本发明中,采用一种特殊的提前终止策略---软解码和硬解码相结合,可以节省半次到一次迭代周期。通过特定的控制策略,当软解码只剩下一个错误比特时,软解码提前终止,剩下的一个错误比特由非常简单的硬解码电路纠正。

综上所述,本发明采用了如下一些技术措施:

两相完全交叠(Fully-Overlapped Two Phases):当前绝大部分解码器,横向更新和纵向更新时分交替进行。由于其数据依赖性(Data Dependency),两相不能完全交叠在一起。本发明完全克服了数据依赖关系,横向更新和纵向更新完完全全交叠在一起;同时保证如Turbo码信息传递解码算法一样,横向更新始终使用纵向更新的最新结果(“最新”的定义依据变换后的基矩阵同一列块中非零子矩阵的依赖关系)。因此,解码延时缩短一半;吞吐量提高一倍。

对称四级流水线(Symmetrical Four-Stage Pipelining):四级流水线可以大大提高吞吐量;对称流水线可以协助解决存储器读写访问冲突。横向更新采用三级流水线:存储器读、数据处理和存储器谢;纵向更新同样采用三级流水线:存储器读、数据处理和存储器写。对于横向和纵向更新,第一级和最后一级都是对存储器的读写访问。当使用双口和值寄存器堆时,横向更新和纵向更新的第一级和最后一级可以相互交叠在一起。对于任何一个存储器地址单元,写操作始终发生在读操作的两个时钟周期之后;存储器写访问冲突会随着读访问冲突的消失而消失。

基矩阵列块、行块交织(Block Column/Row Interleaving):这是对基矩阵预处理的前两步。对基矩阵的列块进行重新排序,对于每一行块,确保所有非零子矩阵尽量均等的分布前述的奇偶集合之中。对于两相完全交叠解码器,通过简单的存储器奇偶集划分,就可以有效地避免存储器访问冲突。对基矩阵的行块进行重新排序,确保连续两行块的相关性总和(相关性定义:对于连续两行块,同时有非零子矩阵的列块个数)尽量少。相关性表明解码流程中数据的相互依赖关系;相关性小可以有效地降低流水线气泡,使解码能够紧凑的进行。

非零子矩阵重排序(Nonzero Sub-matrix Reordering):这是对基矩阵预处理的第三步。基于预处理前两步,对基矩阵中非零子矩阵的横向更新扫描顺序和纵向更新扫描顺序进行重新排序,确保无存储器读写访问冲突和流水线气泡。

和值寄存器堆奇偶集划分(Sum Memory Partition With Odd and Even Sets):双口和值寄存器堆划分为奇偶两个集合,可以同时提供两个独立的读取或者写入端口。经过基矩阵列块、行块交织和非零子矩阵重排序,解码器每个时钟周期都从两个不同集合读取或者写入相关信息。因此,和值寄存器堆奇偶集划分可以避免为增加端口使用大量的额外存储单元。同时,和值寄存器堆不仅存储变量节点的和值,还存储两相之间传递的外信息,从而省掉一块很大的FIFO。

和值寄存器堆读写旁路(Read-Write Bypass to Sum Memory):本发明引入大量和值寄存器堆读写旁路技术,降低芯片功耗。同一列块中,非零子矩阵的相关性表明了数据的依赖关系。当两个非零子矩阵的距离满足设定的界限时,纵向更新的和值可以直接传到横向更新单元,避免使用两次存储器访问操作:写入和值和读取和值。

可配置相对偏移量置换网络(即置换器)(Configurable Permutation Network WithRelative Offset):传统解码器不仅要对横向更新读取的和值进行循环移位,还要对纵向更新后的和值进行循环反移位,这样就需要两个置换网络。本设计通过相对偏移量置换网络,即根据同一列块中当前非零子矩阵和前一个非零子矩阵的偏移量差值进行循环移位,省掉纵向更新中用于和值循环反移位的置换网络。

译码提前终止策略(Decoding Early Termination Strategy):本发明采用一种特殊的提前终止策略---软解码和硬解码相结合,可以节省半次到一次迭代周期。通过特定的控制策略,当软解码只剩下一个错误比特时,软解码提前终止,剩下的一个错误比特由非常简单的硬解码电路纠正。

有益效果

采用本发明的所述技术方案,该QC-LDPC码解码器实现了两相完全交叠,克服了存储器访问冲突,大大降低了芯片面积、提高了解码吞吐量和硬件资源使用率。同时通过旁路技术,大大减少了对存储器的访问次数,从而降低了芯片功耗。该解码器架构具有很强的可配置性,可以容易地移植到其它任何规则或者非规则的QC-LDPC码(M,N,b,t)中。该解码器芯片成功地应用到WiMAX系统之中,解码性能优异,峰值频率能够达到150兆赫兹,吞吐量可以达到250兆比特每秒以上,芯片功耗仅有282毫瓦,功耗效率为64皮焦每比特每次迭代(pJ/bit/iteration)。

附图说明

图1带交织和解交织的迭代解码过程。

图2基于TDMP两相完全交叠的QC-LDPC解码器架构。

图3对称四级流水线。

图4基矩阵列块和行块交织。

图5横向更新和纵向更新的非零子矩阵重排序。

图6和值寄存器堆奇偶集划分。

图7和值寄存器堆读写旁路和交叉控制。

图8相对偏移量置换网络。

图9横向更新处理器。

图10提前终止策略。

具体实施方式

解码器采用改进的TDMP(Turbo-Decoding Message-Passing)解码算法,即用归一化最小和(Normalized Min-Sum)算法替换TDMP算法中的软输入软输出引擎(SISOEngine)。每个行块对应一个子码(子迭代);所有子码级联在一起对应一次迭代。信息不仅在不同迭代之间传递,而且在不同子码(子迭代)之间传递。同时,每行只需保存校验节点信息组件:最小和次小绝对值、最小值位置、符号和标志位。因此,解码器不仅能够达到与TDMP算法一样快的收敛速度,而且能够最大限度的降低存储器资源。另外,横向更新和纵向更新完完全全交叠在一起,提高了解码器的吞吐量和硬件资源的使用率。

对于任意QC-LDPC码(M,N,b,t),M表示基矩阵的行块数;N表示基矩阵的列块数;b表示子矩阵的展开因子;t表示非零子矩阵的总个数。对于本文所设计的解码器,横向更新和纵向更新的并行度都是b。假设(K,k)表示第K次迭代的第k次子迭代;向量S表示b个变量节点和值(对应一个列块);矩阵C表示b个校验节点信息组件(对应一个行块);向量I表示b个自信息(对应一个非零子矩阵);向量E表示b个两相之间传递的外信息(对应一个非零子矩阵)。基于改进的TDMP两相完全交叠解码算法,横向更新过程如式(1)-(4)所示。

S~n(K,k-1)=permutator(Sn(K,k-1))---(1)

Imn(K-1,k)=recoverer(Cm(K-1,k))---(2)

Enm(K,k)=S~n(K,k-1)-Imn(K-1,k)---(3)

Cm(K,k)=searcher(α×Enm(K,k))---(4)

纵向更新过程如式(5)-(6)所示。

Imn(K,k)=recoverer(Cm(K,k))---(5)

Sn(K,k)=Enm(K,k)+Imn(K,k)---(6)

整个解码过程如图1所示。输入数据流首先进入输入缓冲器,然后根据地址映射完成列块交织,进入迭代解码;输出比特流同样根据地址映射完成列块解交织,送入输出缓冲器。

基于TDMP两相完全交叠的QC-LDPC解码器架构如图2所示。该结构可以实现对任意规则和非规则QC-LDPC码(M,N,b,t)可配置(扩展因子b小于或等于96)。解码器由主控制器、只读存储器、寄存器堆、可配置相对偏移量、置换网络(置换器)、恢复器、加法器、横向更新处理器和纵向更新处理器组成。其中,寄存器堆包括输入缓存寄存器堆、输出缓存寄存器堆、变量节点和值寄存器堆和校验节点信息组件寄存器堆。横向更新和纵向更新按行序每个时钟周期分别扫描并处理一个非零子矩阵。

解码器一次子迭代过程如下:先前的变量节点和值(Sn(K,k-1))从和值寄存器堆取出,穿过一个独立可配置相对偏移量置换网络。同时,恢复器阵列A从校验节点信息组件(Cm(K-1,k))恢复先前的自信息(Im→n(K-1,k))。所有交换后的和值和恢复得到的自信息进入96个加法器所组成的阵列。计算结果作为外信息(En→m(K,k)),一方面暂时保存到和值寄存器堆中,另一方面输入到96个横向更新处理器,更新校验节点信息组件。当一个行块的横向更新完成之后,更新之后的信息组件(Cm(K,k))回写到信息组件寄存器堆;同时送入恢复器阵列B恢复更新之后的自信息(Im→n(K,k))。所有恢复得到的自信息和从和值寄存器堆读取的外信息送入96个纵向更新处理器,更新变量节点和值(Sn(K,k)),最后写入和值寄存器堆。

由于采用两相完全交叠技术以及和值和外信息共享寄存器堆,解决对和值寄存器堆的读写访问冲突是关键。为了提高解码器吞吐量和帮助解决寄存器堆的访问冲突,本设计提出一种对称的四级流水线结构,如图3所示。

横向更新由三级流水线组成:1)读取变量节点和值和校验节点信息组件(Rd);2)置换和值、恢复自信息和计算外信息(Per/Rec/Add);3)回写外信息和更新信息组件(Wr/Dec)。纵向更新同样由三级流水线组成:1)读取外信息和恢复自信息(Rd/Rec);2)计算变量节点和值(Add);3)回写更新后的和值(Wr)。因此,横向更新和纵向更新具有对称的三级流水线结构,对存储器的读写访问操作集中在第一级和第三级流水线。也就是说,对于同一个寄存器堆地址单元,写入操作始终发生在读取操作的两个时钟周期之后。

当使用双口和值寄存器堆时,横向更新和纵向更新的第一级和第三级流水线可以相互交叠在一起。因此,整个迭代解码流程由四级流水线组成。对于采用单一时钟的两相完全交叠解码器,和值寄存器堆必须提供两个独立的读和写端口,因为每个时钟周期需要两次读取操作和两次写入操作。对称流水线表明,写访问冲突会随着读访问冲突的消失而消失。

对于非规则QC-LDPC码(M,N,b,t),非零子矩阵随机、非均匀地分布在基矩阵中。如果按照非零子矩阵的原始行序扫描,必然会导致和值寄存器堆读写访问冲突。分布和相关是两个描述基矩阵结构的有效系数。分布表示非零子矩阵的物理地址,包括行块和列块索引。相关表示连续两行块中都有非零子矩阵的列块总数。一种分布映射一种相关;一种相关可能映射几种分布。

为了解决和值寄存器堆访问冲突问题,基矩阵需要做行块和列块交织的矩阵变换。变换之后的基矩阵需要满足以下两点:

1)对于每一个行块,分布在奇数集合的非零子矩阵个数和分布在偶数集合的非零子矩阵的个数满足等式|Nodd-Neven|=0|1;

2)所有连续两行相关的总和尽可能少,包括最后一个行块和第一个行块。

基于以上两点,WiMAX中QC-LDPC码(12,24,96,76)的一种行块和列块交织如图4所示,括号内的数字表示行块和列块的原始位置。行块和列块交织信息存储在只读存储器中。

图5是一种重新排列的非零子矩阵更新顺序。横向更新和纵向更新都按行序串行扫描,每个时钟周期各处理一个非零子矩阵。但是,它们之间的更新顺序是独立的、不同的。数据相关和流水线导致纵向更新晚于横向更新十二个时钟周期。行与行之间的更新可以无缝的连接在一起;整个流水线中不会出现任何气泡(空操作)。不同迭代无缝连接,迭代之间没有任何等待周期。在任何一个时钟周期,横向更新和纵向更新分别扫描奇数集的非零子矩阵和偶数集的非零子矩阵。括号外的数字表示列块索引;括号内的数字表示列块索引除以2的余数(余数对应奇偶集)。WiMAX中所有其它码率都可以通过矩阵变换和重排序达到以上目的。

基于以上处理,和值寄存器堆可以通过简单的奇偶集划分就可以避免访问冲突,如图6所示。和值寄存器堆提供两个独立的读和写端口。每个时钟周期,横向更新读取一个列块的和值,同时写入一个非零子矩阵的外信息;纵向更新读取一个非零子矩阵的外信息,同时写入一个列块更新后的和值。

一块深度为N(=24)的和值寄存器堆划分为奇偶两个集合,分别存储奇数列块和偶数列块的和值和外信息。堆号(Tbank)和堆地址(Abank)可以通过以下简单的求模和移位操作完成:

Tbank=mod(n,2),                   (7)

Abank=n>>1。                      (8)

图7所示为和值寄存器堆的读写旁路和交叉控制技术。两路输入信息通过输入十字交叉控制模块,找到相应的和值寄存器堆。相反地,两路输出信息通过输出十字交叉控制模块,找到相应的数据通路。十字交叉控制模块由两个列块索引产生的堆号控制。旁路控制模块根据横向更新和纵向更新的列块索引判断信息是否可以旁路,即横向更新所需要的信息要么从和值寄存器堆读取,要么直接从纵向更新传递过来。

传统解码器不仅要对横向更新读取的和值进行循环移位,还要对纵向更新后的和值进行循环反移位,这样就需要两个置换网络。本设计通过相对偏移量置换网络,即根据同一列块中当前非零子矩阵和前一个非零子矩阵的偏移量差值进行循环移位,省掉纵向更新中用于和值循环反移位的置换网络,如图8所示。所有列块前一个非零子矩阵的偏移量都存储在单口寄存器堆中。置换网络都由两个级联的96路算术移位器组成。该置换网络支持所有小于或等于96路的循环移位。当一个非零子矩阵处理完之后,当前偏移量作为前一次偏移量写入单口寄存器堆中。相对偏移量的计算方法很简单,当当前偏移量减去前一次偏移量为正数时,差值就是相对偏移量;当当前偏移量减去前一次偏移量为负数时,差值加上扩展因子才是相对偏移量。

图9所示是一个横向更新处理器,由一个预处理器、一个分解器、一个奇偶校验器和四个保持电路组成。预处理器对输入外信息做求绝对值和求归一化。分解器串行扫描更新校验节点信息组件:1)最小绝对值;2)次小绝对值;3)最小绝对值的位置;4)符号位;5)标志位。奇偶校验器检验每行是否符合奇偶校验,校验结果送入主控制器控制解码流程的中断。保持电路是为接下来的纵向更新过程保持稳定的校验节点信息组件。所有运算单元在行块的起始点(行块同步信号)被同步。

本设计采用一种特殊的提前终止策略---软解码和硬解码相结合,如图10所示。仿真结果表明,迭代译码最后一次迭代所纠错误极少,大部分情况下只纠一个错误比特。一个错误比特耗费一次迭代,效率很低。因此,本发明提出通过软解码纠正绝大部分错误比特,通过简单的硬解码电路纠正最后一个错误比特。假设某个错误比特发生在某列重为3的列块中,通过不满足奇偶校验方程的行块内的行序号i、j、k,计算它们的特征值,与基矩阵的列块位置和偏移量相关联,定位错误比特的位置。当定位成功时,迭代译码(软解码)终止,转入硬解码;当定位失败时,迭代译码(软解码)继续下去。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号