一种bch码译码方法和装置的制作方法

文档序号:7535806阅读:148来源:国知局
专利名称:一种bch码译码方法和装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种BCH码译码方法和装置。
背景技术
目前,NAND(与非)闪存在功耗、速度、数据可靠性、重量以及静音等方面具有非 常明显的优势,随着轻薄型笔记本电脑在整个PC(PersonalCompUter,个人计算机)市场份 额的持续增加,NAND的这些优势变得更加具有吸引力,基于NAND闪存的固态存储盘(SSD, Solid State Disk)正在逐步走入这些应用。NAND闪存可分为两大架构单层单元SLC(Single Level Cell)和多层单元 MLC (Mul ti Level Cell), MLC由于成本低,容量大,但其工作性能不如SLC稳定,据统计,采 用MLC NAND闪存(MLC NAND Flash Memory)存取数据的误码率大概为10_5,为保证读取数 据的准确性,需采用纠错码ECC(Error Correction Code)技术对其实现纠多比特(bit)随 机错误。针对BCH编译码的实现,译码是难点,在所有的译码算法中常用的有=Peterson算 法、Berlekamp-Massey迭代算法(简称BM法)、欧几里得(Euclid)算法。其中,Peterson 算法适用纠错数较少的译码,它的计算量在上述三种算法中最大;BM算法和Euclid算法适 用于纠错数较大的译码器,Euclid算法比BM迭代算法容易理解,但运算量较大,且比BM迭 代算法的硬件结构复杂。另外考虑到二进制BCH码的特殊性,所以在设计中采用译码速度 快而最常用的BM迭代算法。发明人在实现本发明的过程中发现,在BM迭代算法中,包括常用 的 iBM(Inversionless Berlecamp-Massey)算 法 禾口 riBM(Reformulation inversionlessBerlecamp-Massey)算法,其中,riBM算法是对iBM算法的推导和改进,其 关键路径缩短为原来的一半,大大提高了 VLSI设计性能,但是,riBM算法是针对RS (Reed Solomon)码提出的适用于FPGA设计的并行BM迭代算法,由于RS码为BCH码的特例,其译 码过程比BCH码复杂,因此,如果将riBM算法应用于普遍的BCH码的译码过程中,将造成资 源的极大浪费。

发明内容
本发明实施例提供一种BCH码译码方法和装置,能够在占用较少的FPGA资源并保 证高速的前提下,实现BCH码译码。本发明实施例的上述目的是通过如下技术方案实现的一种BCH码译码方法,所述方法包括根据接收码计算伴随式;利用迭代算法根据 所述伴随式计算错误位置多项式;利用钱式搜索算法根据所述错误位置多项式确定错误位 置;对所述确定的错误位置上的错误值进行纠错得到恢复码。其中,利用迭代算法根据所 述伴随式计算错误位置多项式包括设置错误位置多项式在零次迭代下的初始值和所述错 误位置多项式的辅助多项式在零次迭代下的初始值为零;设置错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数; 设置错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式 在零次迭代零次幂下的初始值为1 ;设置迭代系数在零次迭代下的初始值为0 ;设置迭代限 制条件在零次迭代下的初始值为1 ;根据上述设置的初始值计算错误值多项式的辅助多项 式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件;根据上述设置的初始值以 及根据上述计算获得的错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代 系数以及迭代限制条件,计算错误值多项式;根据上述设置的初始值以及根据上述计算获 得的计算错误值多项式、错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代 系数以及迭代限制条件计算错误位置多项式,获得错误位置多项式。一种BCH码译码装置,所述装置包括第一计算单元,用于根据接收码计算伴随 式;第二计算单元,用于利用迭代算法根据所述伴随式计算错误位置多项式;确定单元,用 于利用钱式搜索算法根据所述错误位置多项式确定错误位置;纠错单元,用于对所述确定 单元确定的错误位置上的错误值进行纠错得到恢复码。其中,第二计算单元包括设置模 块,用于设置错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式 在零次迭代下的初始值为零;设置错误值多项式在零次迭代下的初始值和所述错误值多项 式的辅助多项式在零次迭代下的初始值为所述伴随式的系数;设置错误位置多项式在零次 迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次幂下的初始 值为1 ;设置迭代系数在零次迭代下的初始值为0 ;设置迭代限制条件在零次迭代下的初始 值为1 ;控制模块,用于根据设置模块设置的初始值计算错误值多项式的辅助多项式、错误 位置多项式的辅助多项式、迭代系数以及迭代限制条件;第一计算模块,用于根据设置模块 设置的初始值以及控制模块的计算结果计算错误值多项式;第二计算模块,用于根据设置 模块设置的初始值以及控制模块和第一计算模块的计算结果计算错误位置多项式,获得错 误位置多项式。本发明实施例的BCH码译码方法和装置,根据BCH 二进制码制的特点,对riBM译 码方法进行了两点优化,即当迭代次r为奇数次时,差值λ (r)恒为0,因此,可以将迭代2t 次迭代减少为t次;且RS码译码中需要用错误值多项式ω (r)纠错,而对于二进制BCH码, 其纠正值必为1,因此错误值多项式ω (r)可以被简化。如此,本发明实施例在占用较少的 FPGA资源并保证高速实现的情况下,实现了 BCH译码方法中的难点,即根据伴随式求错误 位置多项式,并且,通过对riBM算法的改进,使并行BM迭代算法在资源和速度上都得到了 优化。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不 构成对本发明的限定。在附图中图1为本发明实施例的BCH码译码方法流程图;图2为图1所示实施例的步骤102的流程图;图3为本发明实施例BCH码译码装置的组成示意图;图4为本发明实施例的第一计算模块的电路组成示意图;图5为图4所示的第一计算模块的简化示意图6为本发明实施例的多个第一计算模块的电路组成示意图;图7为本发明实施例的控制模块的电路组成示意图;图8为本发明实施例的第二计算模块的电路组成示意图;图9为图6所示的第二计算模块的简化示意图;图10为本发明实施例的多个第二计算模块的电路组成示意图;图11为本发明实施例的第二计算单元的电路组成示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附 图,对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本 发明,但并不作为对本发明的限定。图1为本发明实施例提供的一种BCH码译码方法流程图,在本实施例中,错误位置多项式表示为
权利要求
1.一种BCH码译码方法,其特征在于,所述方法包括 根据接收码计算伴随式;利用迭代算法根据所述伴随式计算错误位置多项式,包括设置错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在 零次迭代下的初始值为零;设置错误值多项式在零次迭代下的初始值和所述错误值多项式 的辅助多项式在零次迭代下的初始值为所述伴随式的系数;设置错误位置多项式在零次迭 代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次幂下的初始值 为1 ;设置迭代系数在零次迭代下的初始值为0 ;设置迭代限制条件在零次迭代下的初始值 为1 ;根据上述设置的初始值计算错误值多项式的辅助多项式、错误位置多项式的辅助多项 式、迭代系数以及迭代限制条件;根据上述设置的初始值以及根据上述计算获得的错误值多项式的辅助多项式、错误位 置多项式的辅助多项式、迭代系数以及迭代限制条件,计算错误值多项式;根据上述设置的初始值以及根据上述计算获得的计算错误值多项式、错误值多项式的 辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件计算错误位置多 项式,获得错误位置多项式;利用钱式搜索算法根据所述错误位置多项式确定错误位置; 对所述确定的错误位置上的错误值进行纠错得到恢复码。
2.根据权利要求1所述的方法,其特征在于错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在零次迭代下的初始值为零表示为Xi(O) =^(O) =0其中,i = 1,2,......t;错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代 下的初始值为所述伴随式的系数,数学式表示为= &(O) = S,,其中,Si为所述伴随式的 系数,i = 0,1,...,2t-l ;错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式 在零次迭代零次幂下的初始值为1,数学式表示为Xci(O) = b0(0) = 1 ; 迭代系数在零次迭代下的初始值为0,数学式表示为k(0) = 0 ; 迭代限制条件在零次迭代下的初始值为1,数学式表示为Y (0) = 1。
3.根据权利要求2所述的方法,其特征在于,根据上述设置的初始值计算错误值多项 式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件,包括根据所述设置的初始值和下式计算错误值多项式的辅助多项式、错误位置多项式的辅 助多项式、迭代系数以及迭代限制条件 如果Mr)兴0并且k(r)彡0,则&(r + l) = i(r),(/ = 0,l,……, )‘ i.θ( (r +1) = (r), ( 二 0,1,……2卜 1);否贝丨j,Y{r + \) = 50{r) k{r + 1) = -k(r)(r+ 1) = V, (0,(/ = 0,1,……,/)4θ + 1) = Αθ·),( · = 0,1,……2 -1),其中,r 为 /(r + l) = /(r) k(r + l) = k(r) + l迭代次数,i为次方项。
4.根据权利要求3所述的方法,其特征在于,根据上述设置的初始值以及根据上述计 算获得的错误值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代 限制条件,计算错误值多项式,包括利用下式,根据上述设置的初始值以及经过上述计算获得错误值多项式的辅助多项 式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件,计算错误值多项式;
5.根据权利要求4所述的方法,其特征在于,根据上述设置的初始值以及根据上述计 算获得的计算错误值多项式、错误值多项式的辅助多项式、错误位置多项式的辅助多项式、 迭代系数以及迭代限制条件计算错误位置多项式,获得错误位置多项式,包括利用下式,根据上述设置的初始值以及经过上述计算获得的计算错误值多项式、错误 值多项式的辅助多项式、错误位置多项式的辅助多项式、迭代系数以及迭代限制条件计算 错误位置多项式
6.一种BCH码译码装置,其特征在于,所述装置包括 第一计算单元,用于根据接收码计算伴随式;第二计算单元,用于利用迭代算法根据所述伴随式计算错误位置多项式,该第二计算 单元包括设置模块,用于设置错误位置多项式在零次迭代下的初始值和所述错误位置多项式的 辅助多项式在零次迭代下的初始值为零;设置错误值多项式在零次迭代下的初始值和所述 错误值多项式的辅助多项式在零次迭代下的初始值为所述伴随式的系数;设置错误位置多 项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式在零次迭代零次 幂下的初始值为1 ;设置迭代系数在零次迭代下的初始值为0 ;设置迭代限制条件在零次迭 代下的初始值为1 ;控制模块,用于根据设置模块设置的初始值计算错误值多项式的辅助多项式、错误位 置多项式的辅助多项式、迭代系数以及迭代限制条件;第一计算模块,用于根据设置模块设置的初始值以及控制模块的计算结果计算错误值 多项式;第二计算模块,用于根据设置模块设置的初始值以及控制模块和第 一计算模块的计算结果计算错误位置多项式,获得错误位置多项式; 确定单元,用于利用钱式搜索算法根据所述错误位置多项式确定错误位置; 纠错单元,用于对所述确定单元确定的错误位置上的错误值进行纠错得到恢复码。
7.根据权利要求6所述的装置,其特征在于,所述设置模块设置的初始值具体为 错误位置多项式在零次迭代下的初始值和所述错误位置多项式的辅助多项式在零次迭代下的初始值为零表示为Xi(O) =^(O) =0其中,i = 1,2,......t;错误值多项式在零次迭代下的初始值和所述错误值多项式的辅助多项式在零次迭代 下的初始值为所述伴随式的系数,数学式表示为4(0) = ^,(0) = ^,.,其中,Si为所述伴随式的 系数,i = 0,1,...,2t-l ;错误位置多项式在零次迭代零次幂下的初始值和所述错误位置多项式的辅助多项式 在零次迭代零次幂下的初始值为1,数学式表示为Xci(O) = b0(0) = 1 ; 迭代系数在零次迭代下的初始值为0,数学式表示为k(0) = 0 ; 迭代限制条件在零次迭代下的初始值为1,数学式表示为Y (0) = 1。
8.根据权利要求7所述的装置,其特征在于,所述控制模块包括 接收子模块,用于接收所述设置模块设置的迭代限制条件的初始值,以及第零次幂的 错误值多项式的系数;判断子模块,用于根据所述第零次幂的错误值多项式的系数和所述迭代限制条件的 初始值,判断所述第零次幂的错误值多项式的系数是否为零,以及所述迭代限制条件的初 始值是否大于等于零,并据此产生下一次迭代的控制指令、以及下一次迭代的迭代系数 Y (r+Ι);其中,下一次迭代的控制指令包括下一次迭代的错误位置多项式的辅助多项式的系 Wb^r+ \)、下一次迭代的错误值多项式的辅助多项式的系数+ 、以及下一次迭代的迭 代限制条件k(r+l);其中,如果Mr)乒0并且k(r)彡0,则其中,r为迭代次数,i为次方项。
9.根据权利要求8所述的装置,其特征在于,所述第一计算模块包括2t个第一计算子 模块,分别根据公式Si (r +1) 二 Y{r). δ~+2 (r) - S~(r)· ΘΜ (r), (/ = 0,1,2,...... ,2/-1)进行第 0 次幂至第 2t_l 次幂的迭代运算,其中,每一个第一计算子模块包括第一乘法器,用于对上一次幂的错误值多项式的系数和本次迭代的迭代系数进行乘法 运算;第一数据选择器,用于根据控制模块的控制指令,从所述上一次幂的错误值多项式的 系数以及错误值多项式的辅助多项式的系数中选择一个;第一寄存器,用于存储所述第一数据选择器的输出,作为所述第一数据选择器的错误 值多项式的辅助多项式的系数的输入;第二乘法器,用于对第零次幂的错误值多项式的系数和所述错误值多项式的辅助多项 式的系数进行乘法运算;第一加法器,用于对所述第一乘法器的乘法运算结果和所述第二乘法器的乘法运算结 果进行相加,得到错误值多项式的系数;
10.根据权利要求9所述的装置,其特征在于,所述第二计算模块包括t个第二计算子 模块,分别根据公式
全文摘要
本发明实施例提供一种BCH码译码方法和装置,所述方法包括根据接收码计算伴随式;利用迭代算法根据所述伴随式求解错误位置多项式;利用钱式搜索算法根据所述错误位置多项式确定错误位置;对所述确定的错误位置上的错误值进行纠错得到恢复码。本发明实施例的BCH码译码方法和装置通过对riBM算法的改进,使并行BM迭代算法在资源和速度上都得到了优化。
文档编号H03M13/15GK102045073SQ20091020554
公开日2011年5月4日 申请日期2009年10月26日 优先权日2009年10月26日
发明者张琴, 梁剑, 邢继元 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1