根据NandFlash多余空间来配置纠错能力的BCH解码器的制作方法

文档序号:7525441阅读:310来源:国知局
专利名称:根据Nand Flash多余空间来配置纠错能力的BCH解码器的制作方法
技术领域
本发明涉及一种BCH解码器,特别涉及一种根据Nand Flash多余空间来配置纠错能力的BCH解码器。

背景技术
GF(2m)是一种伽罗华域,它是GF(2)域的扩展域,该域由系数在GF(2)域上的m次本原多项式p(x)生成,域中有一个本原元素α,其为本原多项式的根。GF(2m)域的基本性质如下 1.域中共有2m个元素,除0元素外,其余元素皆为α的幂。
2.该域中两个元素相加,和仍为该域中的元素,且等于这两个元素向量表示的各分量的异或。
3.设β1=αi和β2=αj分别为该域中的两个元素,则β1×β2仍为该域中的元素,其值为α(i+j)%n,n=2m-1,%表示求模运算。
作为循环码的(n,k)BCH码,其码字长度满足n=2m-1,校验位长度n-k满足n-k≤mt,t是能够纠正的错误数目,其生成多项式以GF(2m)域上的前2t个元素为根。而对于码长不满足n=2m-1的二进制BCH码(n-l,k-l),其被称为缩短BCH码,可被看作前l个信息位为0所形成的码字,因而其解码方法与普通BCH码相同。
现有二进制BCH解码器的解码过程通常可分为三步 第一步利用接收码字计算校正子。
若r(x)=r0+r1x+r2x2+……rn-1xn-1为接收码字多项式,t为BCH码可纠正的错误数,则2t个校正子可以按照下式(1)计算 si=r0+r1αi+r2α2i+……rn-1α(n-1)i,i=1……2t(1) 其中α为GF(2m)的本原元素,si是第i个校正子。
第二步利用校正子计算错误位置方程。
主要是利用Berlekamp-Massey等算法解如下的牛顿恒等式(2) s1+σ1=0 s2+σ1s1+2σ2=0 s3+σ1s2+σ2s1+3σ3=0 . . . sv+σ1sv-1+……+σv-1s1+vσv=0 (2) sv+1+σ1sv+……+σv-1s2+σvs1=0 . . . s2t+σ1s2t-1+……+σv-1s2t-v+1+σvs2t-v=0 其中,s1……s2t是第一步计算出的校正子,σ1,σ2,……σv是错误位置方程的系数,v是该码字中错误的个数,v≤t,由此可得到错误位置方程如下式(3) 1+σ1x+σ2x2+……+σvxv=0 (3) 而目前多采用简化的无逆BMA算法来计算错误位置方程系数,所述算法描述如下 初始化(Initialize)σ0=1,β0=z,l0=0,δ0=1 开始(Begin)for k=0……t-1begin
σ2k+2=δ2kσ2k+d2kβ2k


结束(end) end 其中,σ是需要求得并输出的错误位置方程系数,l是需要求得并输出的码字错误个数。其余皆是中间变量。
第三步利用错误位置方程搜索错误位置,并对错误位置的错误值进行纠正以实现解码 主要是通过chien搜索等算法找到错误位置方程的根,所述根中包含错误位置的信息。例如,设αk为错误位置方程的根,即 1+σ1αk+σ2(αk)2+……+σv(αk)v=0 (4) 则相应错误位置位于2m-1-k处。
然而,对于现有用于通信的BCH解码器,由于其码字长度较短,大多采用串行方式进行解码,即在计算校正子时直接采用上式(1)进行计算或者利用输入码字首先计算出校验多项式再计算校正子,进行chien搜索的时候都采用串行搜索方法逐比特搜索,因此解码器的面积比较小,同时由于码字长度较短,因此译码延迟也是可以接受的。但当码字长度较长时,如此译码则延迟太大,难以接受。此外,在计算过程中,现有许多解码器都采用查表法来求得GF(2m)域的乘法,这样就需要一个只读存储器(ROM)来存储GF(2m)域元素表。当码字长度较长时,所述元素表会很大,会占用大量的硬件资源。再有,现有采用直接求解或者查表的方法来求解错误位置方程时,当码字长度较短时,所需硬件面积和译码延迟都较小,而当码长很大时,所需硬件面积和译码延迟都会非常大。
还有,现有用于Nand Flash控制器的BCH解码器,其纠错能力是固定的,一般为4比特或8比特,其优点在于专用性较好,面积较小,适用于现有的16字节/512字节或128字节/4K字节的多余空间(spare area)。然而,由于工艺的进步,线宽的降低,Nand Flash存储密度越来越高,错误概率也越来越大,因此新一代Nand Flash中的多余空间提高到了218字节/4K字节,这样也就使得Nand Flash控制器能够采用纠更多比特错误的BCH码,来降低Nand Flash的错误率,而现有仅能纠正4比特或8比特错误是远远不够的。另一方面,现有能够纠正15比特以下错误的解码器,由于其不可配置性,使得校验比特长度固定并且大于16字节,只能用于新一代MLC/QLC型的Nand Flash,不能应用于普通的Nand Flash,其向下兼容性不好。
因此,如何解决现有BCH解码器存在的诸多问题,实已成为本领域技术人员亟待解决的技术课题。


发明内容
本发明的目的在于提供一种延迟小、兼容性好的根据Nand Flash多余空间来配置纠错能力的BCH解码器。
为了达到上述目的及其他目的,本发明提供的根据Nand Flash多余空间来配置纠错能力的BCH解码器包括用于根据Nand Flash多余空间来配置解码器的纠错比特数的纠错能力指示模块;用于根据所述纠错能力指示模块所配置的纠错比特数、及输入的码字,采用迭代法并行计算出相应奇数序号的校正子的奇数校正子计算模块;用于根据所述纠错能力指示模块所配置的纠错比特数、及所述奇数校正子计算模块所计算出的奇数序号的校正子串行计算出偶数序号的校正子的偶数校正子计算模块;用于根据所述纠错能力指示模块所配置的纠错比特数、及所计算出奇数序号和偶数序号的校正子,采用无逆简化的BMA算法迭代求解出错误位置方程的各系数、及错误码字的个数的解牛顿恒等式模块;用于根据所述解牛顿恒等式模块所求解出的错误位置方程的各系数和错误码字的个数、及所述纠错能力指示模块所配置的纠错比特数,搜索出错误比特在Nand Flash中位置以对其进行纠正,进而实现译码的chien搜索模块。
其中,配置的纠错比特数为8或15。
综上所述,本发明的根据Nand Flash多余空间来配置纠错能力的BCH解码器硬件复用率非常高,其纠错能力可达到8比特或15比特,而且延迟小,其既可支持现在的普通Nand Flash,也支持下一代MLC/QLC型Nand Flash,还可以用于Nand Flash控制器中,也可以用于通信系统中的前向纠错模块中,具有较好的兼容性,且硬件复用率高。



图1为本发明的根据Nand Flash多余空间来配置纠错能力的BCH解码器的基本结构示意图。
图2为本发明的根据Nand Flash多余空间来配置纠错能力的BCH解码器的奇数校正子计算模块结构示意图。
图3为本发明的根据Nand Flash多余空间来配置纠错能力的BCH解码器的解牛顿恒等式模块结构示意图。
图4为本发明的根据Nand Flash多余空间来配置纠错能力的BCH解码器的chien搜索模块结构示意图。

具体实施例方式 请参阅图1,本发明的根据Nand Flash多余空间来配置纠错能力的BCH解码器至少包括纠错能力指示模块、奇数校正子计算模块、偶数校正子计算模块、解牛顿恒等式模块、及chien搜索模块,其可对(4200,4096)缩短码或(4291,4096)缩短码进行解码。
所述纠错能力指示模块用于根据Nand Flash多余空间来配置解码器的纠错比特数,通常可配置的纠错比特数为8比特或15比特。
所述奇数校正子计算模块用于根据所述纠错能力指示模块所配置的纠错比特数、及输入的码字,采用迭代法并行计算出相应奇数序号的校正子。当配置的纠错比特数为15比特,需要计算的奇数校正子数目最多为15个,采用并行计算,则所述奇数校正子计算模块中所包含的计算单元的数目为15个。当配置的纠错比特数为8比特时,需要计算的校正子数目为8个,则15个计算单元中的后7个在8比特纠错的情况下是不工作的,其对应的后7个输出也为0。由于Nand Flash是以字节为单位输入码字,因此每输入一个单位的码字,所述奇数校正子计 算模块即按照 进行一次迭代,在迭代last次后即可计算出相应奇数序号的校正子,其中,last=输入的总的码字长度/8,

是在计算序号为i的校正子时迭代第k+1次时所得到的值,

是在计算序号为i的校正子时迭代第k次时所得到的值,c7……c0是第k+1次输入的一个字节的数据,c7为输入码字中的最低位,c0为输入码字中的最高位。当配置的纠错比特数为8比特时,码字长度为4200比特正好能够被8整除,因此,最后一轮迭代仍按照上式进行,当配置的纠错比特数为15比特,码字长度为4291比特,不能被8整除,因此最后一次的迭代则按照下式进行 式中,c2……c0是最后一次输入字节中的有效码字。
请参见图2,在本实施例中,所述奇数校正子计算模块包括用于计算



的校正子更新单元;用于计算c7+c6αi+c5α2i+c4α3i+c3α4i+c2α5i+c1α6i+c0α7i和c2+c1α+c0α2的校正子增量计算单元;及用于将所述校正子更新单元和校正子增量计算单元所计算出的结果进行GF(213)域相加的第一加法器,其中,所述校正子更新单元采用变量与常数乘法器来实现,变量为

常数为α8i。对于15比特纠错的情况,在最后一轮迭代(537次迭代)时,校正子更新单元用于计算

因此校正子更新单元就包含两个变量与常数的乘法器。而GF(213)域变量与常数的乘法器即为一系列针对于每一位的异或门。例如,对于x=y×α,其中,y是GF(213)的变量,α是本原元素,是一个常数。若设y的向量表示和x的向量表示为,则可以得到x的各分量为 x0=y12 x1=y0^y12 x2=y1 x3=y2^y12 x4=y3^y12 x5=y4 x6=y5 x7=y6 x8=y7 x9=y8 x10=y9 x13=y10 x12=y11 上式中“^”表示异或,显然,x=y×α的可采用异或门来实现,其余常数与变量的乘法器实现方法与前述例子相同。所述校正子增量计算单元在15比特纠错最后一轮迭代时用于计算c2+c1α+c0α2,其可为8个带选择信号的异或门。
与现有技术相比,所述奇数校正子计算模块的优势在于 1)迭代式较为简单。
2)利用校正子更新的同一性,使得8比特纠错校正子的计算能够完全复用15比特纠错情况下的计算单元,从而使8比特纠错校正子计算单元被完全包含进15比特纠错的计算单元中,降低了硬件的面积。
3)在8比特纠错的情况下,后7个计算单元是不工作的,这就降低了硬件的功耗。
4)采用并行更新的方法实现奇数序号的校正子的计算,提高了计算速度,能够达到即时更新的效果,其计算延迟为0,特别适用于数据长度很长,解码延迟要求很高的情况。
所述偶数校正子计算模块用于根据所述纠错能力指示模块所配置的纠错比特数、及所述奇数校正子计算模块所计算出的奇数序号的校正子串行计算出偶数序号的校正子。由于二进制BCH码存在故所述偶数校正子计算模块可包括用于计算的第一GF(213)域乘法器;及用于启动所述第一GF(213)域乘法器的启动单元,si是所述奇数校正子计算模块所计算出的序号为i的校正子,s2i为序号为2i的校正子。所述第一GF(213)域乘法器可采用变量与变量乘法器来实现,其可由与门和异或门构成。因为,设两个GF(213)的变量x1、x2,两者的向量表示分别为 即令γ=x1x2=(γ12,γ11,γ10,γ9,γ8,γ7,γ6,γ5,γ4,γ3,γ2,γ1,γ0),则有其中,min(a,b)表示a和b中的最小值,max(a,b)表示a和b中的最大值,即j∈{j|αj(i)=1,j=0,……,24},i=0,1,……,12,式中,αj(i)指αj的向量表示中第i分量,由此可见,变量与变量乘法器可由与门和异或门构成。此外,当所述奇数校正子计算模块所计算的校正子都为0时,即输入码字没有错误,所述启动单元不启动所述第一GF(213)域乘法器。当配置的纠错比特数为15比特,需要计算的偶数校正子数目最多为15个,当配置的纠错比特数为8比特,需要计算的偶数校正子数目最多为8个。
与现有技术相比,所述偶数校正子计算模块的优势在于 1)采用GF(213)域乘法器,串行计算偶数校正子,降低了硬件的面积。
2)在输入码字无错的情况下,所述第一GF(213)域乘法器不启动,整个解码结束,此时,译码延迟为0。
3)在8比特纠错情况下,只计算前8个偶数序号校正子,并且由于两者所处的域相同,因此8比特纠错偶数序号的校正子计算可以完全复用15比特纠错的硬件,而无需增加任何新硬件,提高了复用度,降低了硬件面积。
所述解牛顿恒等式模块用于根据所述纠错能力指示模块所配置的纠错比特数、及所计算出奇数序号和偶数序号的校正子,采用无逆简化的BMA算法以求解出错误位置方程的各系数、及错误码字的个数。在本实施例中,奇数序号和偶数序号的校正子都由所述偶数校正子计算模块输出。请参见图3,所述解牛顿恒等式模块包括第二GF(213)域乘法器、第三GF(213)域乘法器、第二加法器、第四GF(213)域乘法器、第三加法器、及变量更新单元等。所述第二GF(213)域乘法器用于计算

其中,k=0……t-1,i=0……k,t为所配置的纠错比特数,σ是错误位置方程系数;第三GF(213)域乘法器用于计算δ2kσ2k,其中,δ0=1;第二加法器用于当k为一定值而i为不同值时所述第二GF(213)域乘法器计算出的各结果进行GF(213)域累加,即用于计算例如,当k=0时,i只能为0,故所述第二加法器输出值为

第四GF(213)域乘法器用于将所述第二加法器计算出的结果与β2k进行GF(213)相乘,即用于计算d2kβ2k,其中,β0=z,z为中间变量;第三加法器用于将所述第三GF(213)域乘法器和第四GF(213)域乘法器计算出的结果进行GF(213)域相加,即用于计算σ2k+2=δ2kσ2k+d2kβ2k;变量更新单元用于根据所述第二加法器计算出的结果对变量β、δ、及l进行更新的,其中,l是码字错误个数,且l0=0,其可根据



当配置的纠错比特数为15比特时,需要迭代15次,当配置的纠错比特数为8比特,只需要迭代8次。
与现有技术相比,所述解牛顿恒等式模块的优势在于 1)利用3个乘法器和2个加法器进行串行迭代,使硬件规模和计算所需的时钟周期数都很适中。
2)在进行8比特纠错时,只需减少迭代次数,而无需增加硬件。
所述chien搜索模块用于根据所述解牛顿恒等式模块所求解出的错误位置方程的各系数和错误码字的个数、及所述纠错能力指示模块所配置的纠错比特数,搜索出错误比特在NandFlash中位置以对其进行纠正,进而实现译码。其可采用并行度为8的chien搜索算法进行搜索,即当Nand Flash处理数据的最小单元为1个字节,一次可搜索一个字节的错误。请参见图4,当配置的纠错比特数为15比特时,所述chien搜索模块从α3901开始搜索,首先由所述chien搜索模块的15个乘积因子计算及更新单元计算出15个基本乘积因子,即计算a1=σ1α3901,a2=σ2α2×3901,……,a15=σ15α15×3901,其中,σ1,……,σ15是解牛顿恒等式模块输出的错误位置方程中的第1阶到第15阶的系数,a1,……,a15是用于搜索的15个基本乘积因子,然后由所述chien搜索模块的105个变量常数乘法器和120个GF域加法器进行相应运算,使输出的8个并行求和分支为 sum1=σ0+a1+a2+……+a15 sum2=σ0+a1α+a2α2+……+a15α15 sum3=σ0+a1α2+α2α4+……+a15α30 sum4=σ0+a1α3+a2α6+……+a15α45, sum5=σ0+a1α4+a2α8+……+a15α60 sum6=σ0+a1α5+a2α10+……+a15α75 sum7=σ0+a1α6+a2α12+……+a15α90 sum8=σ0+a1α7+a2α14+……+a15α105 σ0是错误位置方程的0阶系数。sum1,……,sum8是8个求和分支计算出的错误位置方程的值,进行完一轮搜索后,15个乘积因子计算及更新单元按照a1=a1α8,a2=α2α16,……,a15=a15α8×15对基本乘积因子进行更新,同时判断单元判断搜索到的错误数目是否等于解牛顿恒等式模块输出的码字错误数目,若是,则停止搜索,否则继续搜索。例如,设第k轮搜索中第i个求和分支计算出的结果为0,则所述chien搜索模块输出的错误行位置为k,输出错误列位置的第i比特为0,其余比特皆为1,输出的错误标志为1。当配置的纠错比特数为15比特时,其搜索仍从α3901开始,但放弃开始的11次搜索结果。
与现有技术相比,所述chien搜索模块的优势在于 1)采用并行度为8的chien搜索算法,使其能够方便的应用于Nand Flash控制器。
2)8比特纠错的搜索可以完全利用15比特纠错的搜索的硬件资源,无需增加任何硬件。
3)当搜索到的错误数目等于码字错误数目时,停止搜索可减少解码延迟,这对于错误数目较少时是非常有用的。
4)整个搜索模块虽然采取并行搜索的模式,但只需存储15个基本乘积因子,其余乘积因子都可以由这15个计算得到,降低了寄存器的数目,从而也降低了硬件的面积。
利用Synopsys公司的Design Compiler综合工具和SMIC公司的0.13μm的工艺库,对本发明和相同架构的单独的15比特纠错的解码器分别进行综合,得到本发明的硬件面积为228119平方微米。而同架构的15比特纠错的解码器面积为226804平方微米,两者基本相同。
综上所述,本发明的根据Nand Flash多余空间来配置纠错能力的BCH解码器能够支持(4200,4096)和(4291,4096)两种缩短BCH码,由于其译码延迟较低,因此适合于码字长度较长时的解码,又由于其支持两种大小的多余空间,因此特别适用于Nand Flash控制器中的ECC模块;再者,由于无需存储GF(213)域的表,而完全通过与门和异或门来实现GF域乘法和加法,大大降低了硬件的面积其复用程度非常高,使整体电路面积与同架构的单独的15比特纠错的解码器面积基本相同;还有,由于采用了当校正子无误时不纠错和搜索出的错误数目与计算得到的码字错误数目相等时纠错结束这两项技术,使得译码延迟大大降低;此外,采用经过简化的算法并在计算时尽量减少寄存器的使用,不需要的计算单元不启动,使得面积和功耗都比较低。
权利要求
1.一种根据Nand Flash多余空间来配置纠错能力的BCH解码器,其特征在于包括
纠错能力指示模块,用于根据NandFlash多余空间来配置解码器的纠错比特数;
奇数校正子计算模块,用于根据所述纠错能力指示模块所配置的纠错比特数、及输入的码字,采用迭代法并行计算出相应奇数序号的校正子;
偶数校正子计算模块,用于根据所述纠错能力指示模块所配置的纠错比特数、及所述奇数校正子计算模块所计算出的奇数序号的校正子串行计算出偶数序号的校正子;
解牛顿恒等式模块,用于根据所述纠错能力指示模块所配置的纠错比特数、及所计算出奇数序号和偶数序号的校正子,采用无逆简化的BMA算法迭代求解出错误位置方程的各系数、及错误码字的个数;
chien搜索模块,用于根据所述解牛顿恒等式模块所求解出的错误位置方程的各系数和错误码字的个数、及所述纠错能力指示模块所配置的纠错比特数,搜索出错误比特在Nand Flash中位置以对其进行纠正,进而实现译码。
2.如权利要求1所述的根据Nand Flash多余空间来配置纠错能力的BCH解码器,其特征在于所述BCH解码器为对(4200,4096)码或(4291,4096)码进行解码的解码器。
3.如权利要求1或2所述的根据Nand Flash多余空间来配置纠错能力的BCH解码器,其特征在于配置的纠错比特数为8或15。
4.如权利要求1所述的根据Nand Flash多余空间来配置纠错能力的BCH解码器,其特征在于所述奇数校正子计算模块在计算每一校正子时,当Nand Flash以字节为单位输入码字,则每输入一个单位的码字,所述奇数校正子计算模块即进行一次迭代,在迭代last次后计算出相应奇数序号的校正子,last=输入的总的码字长度/8,且其按照进行迭代,其中,
是在计算序号为i的校正子时迭代第k+1次时所得到的值,
是在计算序号为i的校正子时迭代第k次时所得到的值,c7……c0是第k+1次输入的一个字节的数据,c7为输入码字中的最低位,c0为输入码字中的最高位。
5.如权利要求4所述的根据Nand Flash多余空间来配置纠错能力的BCH解码器,其特征在于当码字长度为4291比特,最后一次迭代按式进行。
6.如权利要求4或5所述的根据Nand Flash多余空间来配置纠错能力的BCH解码器,其特征在于所述奇数校正子计算模块包括用于计算

的校正子更新单元;用于计算c7+c6αi+c5α2i+c4α3i+c3α4i+c2α5i+c1α6i+c0α7i和c2+c1α+c0α2的校正子增量计算单元;及用于将所述校正子更新单元和校正子增量计算单元所计算出的结果进行GF(213)域相加的第一加法器,其中,所述校正子更新单元采用变量与常数乘法器来实现,所述校正子增量计算单元为8个带选择信号的异或门。
7.如权利要求1所述的根据Nand Flash多余空间来配置纠错能力的BCH解码器,其特征在于所述偶数校正子计算模块包括用于计算
的第一GF(213)域乘法器;及用于启动所述第一GF(213)域乘法器的启动单元,其中,si是所述奇数校正子计算模块所计算出的序号为i的校正子,s2i为序号为2i的校正子。
8.如权利要求7所述的根据Nand Flash多余空间来配置纠错能力的BCH解码器,其特征在于当所述奇数校正子计算模块所计算的校正子都为0时,所述启动单元不启动所述第一GF(213)域乘法器。
9.如权利要求1所述的根据Nand Flash多余空间来配置纠错能力的BCH解码器,其特征在于所述解牛顿恒等式模块包括用于计算
的第二GF(213)域乘法器,其中,k=0……t-1,i=0……k,t为所配置的纠错比特数,σ是错误位置方程系数;用于计算δ2kσ2k的第三GF(213)域乘法器,其中,δ0=1;用于当k为一定值而i为不同值时所述第二GF(213)域乘法器计算出的各结果进行GF(213)域累加的第二加法器;用于将所述第二加法器计算出的结果与β2k进行GF(213)相乘的第四GF(213)域乘法器,其中,β0=z,z为中间变量;用于将所述第三GF(213)域乘法器和第四GF(213)域乘法器计算出的结果进行GF(213)域相加的第三加法器、及用于根据所述第二加法器计算出的结果对变量β、δ、及l进行更新的变量更新单元,其中,l是码字错误个数,且l0=0。
10.如权利要求1所述的根据Nand Flash多余空间来配置纠错能力的BCH解码器,其特征在于所述变量更新单元按照
11.如权利要求1所述的根据Nand Flash多余空间来配置纠错能力的BCH解码器,其特征在于所述chien搜索模块为采用并行度为8的chien搜索算法进行搜索的模块。
12.如权利要求11所述的根据Nand Flash多余空间来配置纠错能力的BCH解码器,其特征在于所述chien搜索模块包括一判断搜索到的错误数目是否等于解牛顿恒等式模块输出的码字错误数目的判断单元。
全文摘要
一种根据Nand Flash多余空间来配置纠错能力的BCH解码器包括用于根据Nand Flash多余空间来配置解码器的纠错比特数的纠错能力指示模块;用于根据配置的纠错比特数、及输入的码字,采用迭代法并行计算出相应奇数序号的校正子的奇数校正子计算模块;用于根据所计算出的奇数序号的校正子串行计算出偶数序号的校正子的偶数校正子计算模块;用于根据所计算出奇数序号和偶数序号的校正子,采用无逆简化的BMA算法迭代求解出错误位置方程的各系数、及错误码字个数的解牛顿恒等式模块;用于根据所求解出的各系数和错误码字的个数,搜索出错误比特位置以对其进行纠正,进而实现译码的chien搜索模块,此译码延迟小,兼容性好,且硬件复用率高。
文档编号H03M13/15GK101483442SQ200910046088
公开日2009年7月15日 申请日期2009年2月11日 优先权日2009年2月11日
发明者诸烜程, 华 周, 姜启军 申请人:芯原微电子(上海)有限公司, 芯原股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1