一种ecc解码器的制作方法

文档序号:6769724阅读:279来源:国知局
专利名称:一种ecc解码器的制作方法
技术领域
本实用新型涉及一种解码器,特别是ECC解码器。
背景技术
随着数字通信技术的发展,为保证数据传输的正确性,避免信息在传输的过程中 因为发生错误而导致数据丢失,ECC误码纠错技术也相应而生。在NAND FLASH控制器,DVD, DVB等产品中ECC技术都有应用。ECC误码纠错技术主要有汉明码,RS码,BCH码等。汉明码是线性编码,其纠错能 力为lbit,BCH码纠错能力是以bit为单位,可以根据实际的需求选择合适的纠错位数,RS 码是BCH码的扩展,其纠错能力可以以若干个bit为单位。ECC误码纠错技术中,其编码都比较简单,而基于RS码或BCH码的解码过程主要分 为四个步骤。第一步为计算伴随式即从所收到的信息中找出其中是否存在错误信息,第二 步为求解关键方程找出错误位置多项式,第三步为找到错误多项式的根以便确定错误值的 位置,第四步为求解错误值实现纠错功能。其中以第二步求解关键方程最为关键,且求解过 程最为复杂,因此在硬件实现的过程中占有了很多的芯片的面积。Berlekamp提出循环的方 式找到此方程式,并且在 1969 年由 Massey 以 Linear feedbackshift register (LFSR)方 式来解释与实现,后来被称为BerIekamp-Massey(BM)算法。由于BM算法中需要用到除法 运算,这在硬件实现过程中需要用ROM构建一个倒数表来实现。但是这种方法比较耗费资 源。于是出现了不需要除法的无逆的BM算法。如图2所示无逆的BM算法可以消除除法运算,但是需要增加一些有限域乘法器。 有限域乘法器是ECC解码器中的一个重要的元件,这个元件不但决定整个ECC解码器的关 键路径(critical path),并且也影响ECC解码器的大小,从第一个主要部分计算伴随式, 到第四部分计算错误值都会用到有限域乘法器。计算伴随式,找出错误多项式的根,求解 错误值分使用的是变数-常数有限域乘法器,第二部分使用的是变数乘变数的有限域乘发 器,而此变数乘变数的有限域乘法器的所消耗的硬件资源最多。
发明内容为克服现有ECC解码器解关键方程模块占用硬件资源多的不足,本实用新型提出 了一种用于ECC解码器,在不影响系统性能的情况下,减少硬件的资源消耗,达到优化ECC 解码器面积的目的。—种ECC解码器,包括计算伴随式模块、求解关键方程模块、找出错误多项式的根 模块、求解错误值模块,其特征在于所述的求解关键方程模块包括计算累加和子模块、计 算系数Coefib子模块、计算系数Coefia子模块、计算系数Ei子模块;其中所述的计算伴随 式模块所产生的2t个伴随式结果输入所述的计算累加和子模块,计算累加和子模块输出 C到所述的计算系数Coefib子模块和计算系数Ei子模块,输出ξ H到所述的计算 系数Coefia子模块;所述的计算系数Coefib子模块与所述的计算系数Coefia子模块的输出与所述的计算系数Ei子模块相连;计算系数Ei子模块的输出回传到计算累加和子模块、 计算系数Coefia子模块和计算系数Coefib子模块。所述的计算累加和子模块包括t个寄存器SFtl至SFt、t个寄存器EFtl至EFt、第一 乘法器、第一加法器;其中求解伴随式模块产生的2t个伴随式结果分步输入到t个寄存器 SF0至SFt中,寄存器SFtl至SFt和寄存器EFtl至EFt中的值一一对应依次输入第一乘法器相 乘后再输入第一加法器中,与C相加后结果存入ξ w,本模块输出ξ ^到计算系数Coefib 子模块,输出ξ'、ξ H到计算系数Coefia子模块。所述的计算系数Coefia子模块包括选择模块、t个寄存器EFtl至EFt和第二乘法 器;其中1]与ξ H输入选择模块,其输出结果与t个寄存器EFtl至EFt中的值输入第二乘 法器中相乘,得到的t个结果Coeftla至Coefta输入计算系数Ei子模块。所述的计算系数Coefib子模块包括t个寄存器KFtl至KFt、第三乘法器;其中计算 累加和子模块的计算结果与寄存器KFtl至KFt中的值相乘,得到的t个结果Coefitlb Coefitb 输入计算系数Ei子模块。所述的计算系数Ei子模块的t个系数Coeftlb至Coeftb与t个系数Coeftla至 Coefta分别依次输入第二加法器相加,得到的相加结果回传到计算累加和子模块、计算系数 Coefia子模块和计算系数Coefib子模块。本实用新型使用了 一个有限域乘法器以及若干个有限域加法器,而且有限域乘法 器的数目不会随着ECC纠错位数的上升而上升,都固定为一个。有限域加法器的运算则比 较简单,相对有限域乘法器的资源则少的多。这样有效的减少了有限域乘法器的使用,节省 了硬件资源的消耗。

图1是ECC解码模块图;图2是ECC解码的时序图;图3是现有求解关键方程模块的硬件实现结构图;图4是本实用新型求解关键方程模块的硬件实现结构图;图5是计算累加和子模块的具体结构图;图6是计算系数Coefia子模块的具体结构图;图7为计算系数Coefib子模块的具体结构图;图8为计算系数Ei子模块的具体结构图。
具体实施方式
以下结合附图,说明本实用新型具体实现方式。 如图1所示ECC解码器主要分为计算伴随式模块101、求解关键方程模块102、找 出错误多项式的根模块103、求解错误值模块104,本实用新型是对ECC解码器的解关键方 程模块102做出的改进。求解关键方程模块102是ECC解码器中电路最为复杂的部分。其 中计算伴随式模块101的输出结果为2t个伴随式系数(S1 ,每3t+3个周期输入一个 到求解关键方程模块102中。本实用新型通过改进解关键方程模块102,将其分为三个子模 块,用一个有限域乘法器来代替原本的3t+2(t为ECC的纠错位数)个有限域乘法器,而本模块102的运算时间扩大到2t*(3t+3)个时钟周期。从上面分析可以看出,本实用新型增加了求解关键方程102的运算时间,不过并 不会影响整个ECC解码的整体时间。原因如图2A所示求解关键方程模块102在流水线中 所占的时间最少,即使在这一步增加一些时间,增加后的流水线时间示意图如图2B所示, 从图中可以看出对整个ECC的解码时间没有太大的影响。但是以8位ECC解码为例,可以 节省求解关键方程模块102面积50%以上,进而节省芯片成本,减小ECC解码器功耗。图3是现有求解关键方程模块102的硬件实现结构,从图中可以看出在该模块需 要使用3t+2个有限域乘法器。图3中h是前面求解伴随式步骤所产生的2t个伴随式系数 (每3t+3个时钟输入一个系数),其中i = 1 2t,EO 肚为错误多项式的系数寄存器的 t个值,ξ表示的是^与Ei相乘(有限域乘法)后,再将t+Ι个乘积相异或的结果。根据图3实现方式的特点,3t+2个有限域乘法器主要可以分成3类,第一类是伴随 式乘错误多项式的系数,第二类是错误多项式的系数乘累加器的结果,第三类是累加器乘 移位寄存器的结果。图4为本实用新型实现解方程模块102的子模块图。前面求解伴随式模块101所 产生的2t个伴随式结果(S1 输入计算累加和子模块401。计算累加和子模块401输 出ξ」到计算系数Coefib子模块402和计算系数Ei子模块404,输出ξ j、ξ 到计算系 数Coefia子模块403。计算系数Coefib子模块402与计算系数Coefia子模块403的输出 与计算系数Ei子模块404相连。计算系数Ei子模块404的输出回传到计算累加和子模块 401、计算系数Coefia子模块403和计算系数Coefib子模块402。图5是计算累加和子模块401的具体结构图,求解伴随式模块401产生的2t个伴 随式结果(Si S2t)按时钟周期依次输入到寄存器SFO到SFt中,SFO SFt寄存器的初 始值为0,当Sl输入SFO中SFl到SFt的值都左移一个寄存器,SFt被SFt-I中的值覆盖。 寄存器EFO的初始值为1,寄存器EFl EFt的初始值为0。在寄存器EFO EFt计算完成 后,即计算系数子模块Ei404算出CoefO Coeft后更具条件复制到寄存器EFO EFt中 进行后面的运算。本子模块按照以下方式运算Si和Ei-I —一对应依次输入第一乘法器 501相乘后其结果输入第一加法器502中与ξ 4目加其结果存入ξ +1,其中Ii的初始值为 0,即ξ°为0。具体运算举例如下Sl与EO输入第一乘法器501相乘后与ξ °相加,相加后 得到ξ1。S2与El输入第一乘法器501相乘后与ξ1相加,相加后得到ξ2。依照上述循环 直到乂与肚-1算出这里有个双重循环,i从1循环到t,j加1。本模块输出ξ ^到计 算系数Coefib子模块402,输出ξ j、ξ H到计算系数Coefia子模块403。当计算系数子模 块404算出肚+1经过选择后,与El到肚+1进入上述循环。S2输入SFO中SFl到SFt的值 都左移一个寄存器,SFt被SFt-I中的值覆盖。重复上述运算直至S2t运算完成得到ξ2\图6是计算系数Coefia子模块的具体结构图,本模块中的寄存器EFO EFt初始 值与循环方法都与前面所述的计算累加和相同这里就不再描述,ξ'、ξ H为计算累加和子 模块401的计算结果,1]与ξ」—1输入选择模块601,选择模块根据无逆的BM算法的定义, 满足条件Δ ω兴0且2Lh ^ i-1,则选择ξ \否则选择ξ H。选择的结果分别与寄存器 EF0 EFt中的值输入第二乘法器602中相乘。例如选择结果为ξ j, ξ j就与寄存器EFtl EFt中的每一个值相乘,S卩ξ'Χ寄存器EFtl中的值、ξ jX寄存器EF1中的值……IjX寄 存器EFt中的值,其结果Coeftla Coefta输入计算系数Ei子模块404。[0029]图7为计算系数Coefib子模块的具体结构图,ξ J为计算累加和子模块401的计 算结果,寄存器KFO的初始值为1,寄存器KFl KFt的初始值为0。在寄存器KFO KFt 计算完成后,即计算系数子模块Ei404算出Coeftl Coeft后,根据无逆的BM算法的定义, 满足条件Δ⑴兴O且2、彡i-Ι,则将Coef0 Coeft复制到寄存器KF0 KFt中进行后面 的运算,否则将KFtl KFt中现有的值左移一个寄存器,KFtl补入O。复制到寄存器KFtl KFt 中进行后面的运算。此类运算的结果存入寄存器Coeftlb Coeftb中。本模块的循环为ξ ^ 与寄存器IcFci kFt中的每一个值相乘,即ξ'Χ寄存器KFtl中的值、ξ jX寄存器KF1中的 值……I jX寄存器KFt中的值,其结果Coef0b Coeftb输入计算系数Ei子模块404。图8为计算系数Ei子模块的具体结构图,如图所示Coeftlb Coeftb与Coeftla Coefta 一一对应相加(有限域加法)得到Coeftl Coeft。判断计算累加和子模块401输 出的G是否为0,若O O则将Coeftl Coeft回传到计算累加和子模块401、计算系数 Coefia子模块403和计算系数Coefib子模块402。若ξ ^ = O则不回传,计算累加和子模 块401、计算系数Coefia子模块403和计算系数Coefib子模块402中使用上次寄存器的值 运算,这样即完成一次运算。当伴随式即S1 都移位完成时,求解关键方程才算全部完 成。输出Coef(2t)Q Coef(2t)t至找出错误多项式的根模块103。在整个的解码器实现的过程中,使用了一个有限域乘法器以及若干个有限域加法 器,而且有限域乘法器的数目不会随着ECC纠错位数的上升而上升,都固定为一个。有限域 加法器的运算则比较简单,相对有限域乘法器的资源则少的多。这样有效的减少了有限域 乘法器的使用,节省了硬件资源的消耗。以上内容是结合具体的优选实施方式对本实用新型所作的进一步详细说明,不能 认定本实用新型的具体实施只局限于这些说明。对于本实用新型所属技术领域的普通技术 人员来说,在不脱离本实用新型构思的前提下,还可以做出若干简单推演或替换,都应当视 为属于本实用新型的保护范围。
权利要求1.一种ECC解码器,包括计算伴随式模块、求解关键方程模块、找出错误多项式的根模 块、求解错误值模块,其特征在于所述的求解关键方程模块包括计算累加和子模块、计算 系数Coefib子模块、计算系数Coefia子模块、计算系数Ei子模块;其中所述的计算伴随式 模块所产生的2t个伴随式结果输入所述的计算累加和子模块,计算累加和子模块输出ξ J 到所述的计算系数Coefib子模块和计算系数Ei子模块,输出ξ J; 到所述的计算系数 Coefia子模块;所述的计算系数Coefib子模块与所述的计算系数Coefia子模块的输出与 所述的计算系数Ei子模块相连;计算系数Ei子模块的输出回传到计算累加和子模块、计算 系数Coefia子模块和计算系数Coefib子模块。
2.根据权利要求1所述的一种ECC解码器,其特征在于所述的计算累加和子模块包 括t个寄存器SFtl至SFt、t个寄存器EFtl至EFt、第一乘法器、第一加法器;其中求解伴随式 模块产生的2t个伴随式结果分步输入到t个寄存器SFtl至SFt中,寄存器SFtl至SFt和寄 存器EFtl至EFt中的值一一对应依次输入第一乘法器相乘后再输入第一加法器中,与V相 加后结果存入ξ w,本模块输出ξ ^到计算系数Coefib子模块,输出ξ η到计算系数 Coefia子模块。
3.根据权利要求1所述的一种ECC解码器,其特征在于所述的计算系数Coefia子模 块包括选择模块、t个寄存器EFtl至EFt和第二乘法器;其中C与ξ J"1输入选择模块,其 输出结果与t个寄存器EFtl至EFt中的值输入第二乘法器中相乘,得到的t个结果Coeftla至 Coefta输入计算系数Ei子模块。
4.根据权利要求1所述的一种ECC解码器,其特征在于所述的计算系数Coefib子 模块包括t个寄存器KFtl至KFt、第三乘法器;其中计算累加和子模块的计算结果与寄存器 KF0至KFt中的值相乘,得到的t个结果Coeftlb Coefitb输入计算系数Ei子模块。
5.根据权利要求1所述的一种ECC解码器,其特征在于所述的计算系数Ei子模块的 t个系数Coeftlb至Coeftb与t个系数Coeftla至Coefta分别依次输入第二加法器相加,得到 的相加结果回传到计算累加和子模块、计算系数Coefia子模块和计算系数Coefib子模块。
专利摘要本实用新型公开了一种ECC解码器,该解码器的求解伴随式模块所产生的2t个伴随式结果输入计算累加和子模块,计算累加和子模块输出ξj到计算系数Coefib子模块和计算系数Ei子模块,输出ξi、ξi-1到计算系数Coefia子模块;计算系数Coefib子模块与计算系数Coefia子模块的输出与计算系数Ei子模块相连。计算系数Ei子模块的输出回传到计算累加和子模块、计算系数Coefia子模块和计算系数Coefib子模块。本实用新型采用了改变ECC解码器中求解关键方程的实现结构的方法,在不影响系统性能的基础上,有效的优化了ECC解码器的面积。
文档编号G11B20/18GK201887750SQ20102022064
公开日2011年6月29日 申请日期2010年6月9日 优先权日2010年6月9日
发明者刘俊秀, 李汉光, 石岭, 陈志 申请人:深圳艾科创新微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1