CN102571106A - 具有双层纠错能力的bch编码器和解码器 - Google Patents
具有双层纠错能力的bch编码器和解码器 Download PDFInfo
- Publication number
- CN102571106A CN102571106A CN2012100007798A CN201210000779A CN102571106A CN 102571106 A CN102571106 A CN 102571106A CN 2012100007798 A CN2012100007798 A CN 2012100007798A CN 201210000779 A CN201210000779 A CN 201210000779A CN 102571106 A CN102571106 A CN 102571106A
- Authority
- CN
- China
- Prior art keywords
- code word
- error correction
- code
- circuit
- complementation
- 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.)
- Granted
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明适用于通信技术领域,提供了一种具有双层纠错能力的BCH编码器,包括一编码输入端,用于码字的输入,所述码字由第一码字和第二码字组成,所述编码器还包括:弱纠错编码单元,包括用于实现弱纠错编码的第一求余电路,以及第一缓存器,所述第一求余电路输出第一码字和第二码字的校验位;强纠错编码单元,包括用于实现强纠错编码的第二求余电路;以及一除法电路。本发明还相应的提供一种具有双层纠错能力的BCH解码器。借此,本发明可大大提高BCH码的纠错能力,提高编解码器的性能。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种具有双层纠错能力的BCH编码器和解码器。
背景技术
目前应用于固态硬盘的纠错技术主要是BCH,编码过程通过除法电路求余实现。译码过程分为三部分,首先是求余,然后是伴随式的计算,硬件上使用线性反馈移位寄存器以及有限域乘法器实现,然后是关键方程求解,最后是钱搜索过程。对于BCH的编码和解码,其纠错是一个必不可少的重要过程。随着flash工艺的发展,人们对ECC纠错能力的要求也越来越高,希望将BCH的纠错能力提高,但BCH纠错个数的提高带来的是码率的降低,并且当纠错个数达到一定值之后再增加纠错个数,将对输出误码率影响不大;另一个是改变纠错码种类,但这样的代价是需要花费大量的时间和人力去重新寻找纠错码以及进行一定的评估测试。
综上可知,现有的BCH编码和解码的纠错技术,在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种具有双层纠错能力的BCH编码器和解码器,其可以大大提高BCH码的纠错性能。
为了实现上述目的,本发明提供一种具有双层纠错能力的BCH编码器,包括一编码输入端,用于码字的输入,所述码字由第一码字和第二码字组成,所述编码器还包括:
弱纠错编码单元,包括用于实现弱纠错编码的第一求余电路,以及第一缓存器,所述第一求余电路输出第一码字和第二码字的校验位;
强纠错编码单元,包括用于实现强纠错编码的第二求余电路,该第二求余电路的输入为所述第一码字和第二码字的异或运算结果,其输出为该异或运算结果的强校验位;以及
一除法电路。
根据本发明的BCH编码器,所述编码输入端连接一第二缓存器,所述第二缓存器的输出端可输出所述第一码字。
根据本发明的BCH编码器,所述强纠错编码单元还包括:
第一异或门,其两个输入端分别连接所述第二缓存器的输出端以及编码输入端,分别用于接收所述第一码字和第二码字,所述第一异或门将所述第一码字和第二码字异或运算后将运算结果传送至所述第二求余电路进行运算;
第二异或门,其两个输入端分别连接所述第一缓存器的输出端以及第一求余电路的输出端,分别用于接收所述第一码字的校验位和第二码字的校验位并进行运算,所述第二异或门及第二求余电路将运算结果传送至所述除法电路。
根据本发明的BCH编码器,所述编码器还包括一复用器,所述第一缓存器、第二缓存器及除法电路的输出端均连接于所述复用器。
根据本发明的BCH编码器,所述编码器为二进制BCH编码器。
本发明还相应的提供一种具有双层纠错能力的BCH解码器,包括一解码输入端,用于输入带信息校验位的码字,所述码字包括第一码字和第二码字,所述解码器还包括:
弱纠错解码单元,包括用于弱纠错解码计算的第三求余电路,以及第三缓存器;
强纠错解码单元,包括用于强纠错解码计算的第四求余电路,以及一乘法电路;
错误信息计算单元,用于计算确定所述解码后的码字的错误位置信息;
纠错单元,用于根据所述错误位置信息进行纠错。
根据本发明的BCH解码器,所述解码输入端连接一第四缓存器,用于输出所述第一码字。
根据本发明的BCH解码器,所述强解码纠错单元还包括:
第三异或门,用于接收所述第一码字和第二码字的校验位,并进行异或运算后将运算结果传送至所述第四求余电路;
第四异或门,用于接收所述第一码字和第二码字,并进行异或运算后将运算结果传送至所述第四求余电路。
根据本发明的BCH解码器,所述错误信息计算单元包括:
伴随式计算子单元,用于计算获取伴随式;
关键方程求解子单元,用于根据所述伴随式确定关键方程,并进行求解;
钱搜索子单元,用于获取关键方程的根,并输出错误信息。
根据本发明的BCH解码器,所述解码器为二进制BCH解码器。
本发明通过在编码器中设置弱纠错编码单元和强纠错编码单元,使编码器具有双层纠错编码,通过弱纠错编码单元可以输出码字的弱校验位,通过强纠错编码单元可以输出码字的强校验位,对应的,本发明提供的解码器具有弱纠错解码单元和强纠错解码单元,分别对应进行弱纠错解码和强纠错解码。借此,本发明通过双层纠错结构,提高编码器和解码器的纠错性能。
附图说明
图1是本发明的BCH编码器的结构示意图;
图2是本发明的BCH解码器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1本发明提供了一种具有双层纠错能力的BCH编码器,该编码器10具有一编码输入端11,用于码字的输入,且该码字由第一码字和第二码字组成。具体应用中,该编码器10还包括:
弱纠错编码单元12,其包括用于实现弱纠错编码的第一求余电路121,该第一求余电路121连接第一缓存器122,当码字从编码输入端11输入时,第一求余电路121可以计算输出第一码字和第二码字的校验位,编码输入端11还连接有一第二缓存器14,用于缓存码字,且可以输出第一码字和第二码字。
强纠错编码单元13,包括用于实现强纠错编码的第二求余电路131、第一异或门132及第二异或门133。第一异或门132的两个输入端分别连接第二缓存器14的输出端以及编码输入端11,分别用于接收第一码字和第二码字,第一异或门132将第一码字和第二码字异或运算后将运算结果传送至第二求余电路131进行运算,第二求余电路131输出该运算结果的强校验位。第二异或门133的两个输入端分别连接第一缓存器122的输出端以及第一求余电路121的输出端,分别用于接收第一码字的校验位和第二码字的校验位并进行运算。
除法电路15,与第二异或门133和第二求余电路121均连接,且第二异或门133及第二求余电路121可将各自的运算结果传送至除法电路15进行运算。
复用器16,与第一缓存器122、第二缓存器14及除法电路15的输出端均连接,用于接收码字及其校验位并进行输出。
本发明的一实施例中,为便于说明,将一段码字分成相同长度的两段,第一码字和第二码字,通过本发明的弱纠错编码单元12,对它们分别作弱纠错能力的二进制BCH编码,得到相应的第一码字的弱校验位Mr(x)和第二码字的弱校验位Nr(x),它们对第一码字和第二码字分别进行弱保护。同时,通过强纠错编码单元13在第二码字的校验位Nr(x)后将附加一段MNr(x)用于与Mr(x),Nr(x)一起恢复强校验位。需要说明的,强校验位用于当第一码字或者第二码字的错误个数超过弱纠错能力时进行强保护,且强纠错能力处于弱纠错能力对应的伽罗华域中。
具体的,BCH编码器10为二进制BCH编码器。为进一步描述本发明,假设一个码长为4KB的码字分成两个码长为2KB的码字M(x)和N(x),且编码器10两种纠错的逻辑都处于伽罗华域GF(2^15)中,弱纠错能力为Tw的二进制BCH码对应的生成多项式为g1(x),即第一求余电路121是对生成多项式为g1(x)进行求余的电路,对应的校验位数目为Pw,另一强纠错能力为Ts>Tw的二进制BCH码对应的生成多项式为g3(x),即第二求余电路131是对生成多项式为g3(x)进行求余的电路,对应的校验位数目为Ps。根据现有技术即可获知,在同一个GF域中,基于同样的本原多项式,那么纠错能力大的生成多项式一定可以被纠错能力小的生成多项式整除,因此,g3(x)可以被g1(x)整除,即g3(x)=g1(x)g2(x)。同时,再设定码字M(x)对g1(x)的余,也就是校验位为Mr(x),商为Mq(x),N(x)对g1(x)的余,也就是校验位为Nr(x),商为Nq(x)。
具体应用中,为实现弱纠错能力编码和强纠错能力编码,通过弱纠错编码单元12对M(x)和N(x)分别进行纠错能力为Tw的二进制BCH编码,同时通过强纠错编码单元13对M(x)与N(x)的异或(M(x)+N(x))进行纠错能力为Ts的二进制BCH编码,根据编码原理:
由于Mr(x)和Nr(x)的幂次小于等于g1(x)的幂次Pw,因此(M(x)+N(x))*xPs-Pw的幂次小于等于g1(x)g2(x)的幂次Ps,在此假设((Mq(x)+Nq(x))*xPs-Pw)/g2(x)的商为MNq(x),余为MNr(x),MNr(x)的幂次小于Ps-Pw,借此,上式可变为:
将上式两边乘以g1(x)g2(x),得到:(M(x)+N(x))*xPs=MNq(x)g1(x)g2(x)+MNr(x)g1(x)+(Mr(x)+Nr(x))*xPs-Pw显而易见的,我们只需要传输Mr(x)、Nr(x)和MNr(x),就可以在解码端将强校验位重现出来,同时由于MNr(x)的幂次小于等于(Ps-Pw),因此它可以与Nr(x)组合放在一起,(Nr(x)<<(Ps-Pw))+MNr(x),长度为Ps,仅占一个强校验位的长度。对于MNr(x),(M(x)+N(x))*xPs=MNq(x)g1(x)g2(x)+MNr(x)g1(x)+(Mr(x)+Nr(x))*xPs-Pw
同时,对于强纠错:(M(x)+N(x))*xPs=Q(x)g1(x)g2(x)+R(x),其中R(x)为强纠错校验位,故MNq(x)=Q(x),R(x)=MNr(x)g 1(x)+(Mr(x)+Nr(x))xPs-Pw,也就有:MNr(x)=(R(x)+(Mr(x)+Nr(x))xPs-Pw)/g1(x),易见的,MNr(x)可通过由弱纠错编码单元12运算得到的两个码字的弱纠错校验位Mr(x)、Nr(x)和由强纠错编码单元13运算得到的一个强纠错校验位R(x)进行运算获得,只需通过除法电路15对g1(x)做除法运算即可获取MNr(x)。
再参见图2,本发明提供了一种与BCH编码器10对应的BCH解码器20,其具有解码输入端21,用于输入带信息校验位的码字,其连接一第四缓存器26,所述码字包括第一码字M(x)和第二码字N(x),第四缓存器26用于缓存输出第一码字。具体的,该解码器20为二进制BCH解码器,其包括:
弱纠错解码单元22,包括用于弱纠错解码计算的第三求余电路221,以及与该第三求余电路221连接的第三缓存器222。具体应用中,该第三求余电路221与BCH编码器10中的第一求余电路121对应相同的生成多项式g1(x),即两个电路都是对g1(x)进行求余,故二者可采用相同的电路结构。需要说明的,当BCH编码器10和解码器20应用于同一系统中时,第一求余电路121和第三求余电路221可分时复用同一求余电路,借此减少系统的硬件结构。
强纠错解码单元23,包括用于强纠错解码计算的第四求余电路231,第三异或门232、第四异或门233以及一乘法电路234。第四求余电路231与编码器10中的第二求余电路131对应相同的生成多项式g3(x),因此二者也可以采用相同的电路结构,且在应用于同一系统中时也可以分时复用同一求余电路。第三异或门232,用于接收第一码字M(x)和第二码字N(x)的校验位Mr(x)和Nr(x),并进行异或运算后将运算结果传送至所述第四求余电路231,第四异或门233用于接收第一码字M(x)和第二码字N(x),并进行异或运算后将运算结果传送至第四求余电路231,乘法电路234将MNr(x)与g1(x)进行乘法运算后将结果传送至第四求余电路231。根据前述说明,强校验位R(x)=MNr(x)g1(x)+(Mr(x)+Nr(x))xPs-Pw,第四求余电路231根据相应的输入,对生成多项式g3(x)进行求余运算,恢复强校验位进行强纠错。
错误信息计算单元24,用于计算确定解码后的码字的错误位置信息。该错误信息计算单元24具体包括用于计算获取伴随式的伴随式计算子单元241、用于根据伴随式确定关键方程并进行求解的关键方程计算子单元242和用于获取关键方程的根并输出错误信息的钱搜索子单元243。
纠错单元25,用于根据错误位置信息进行纠错。
本发明的BCH解码器20一具体解码过程描述如下:码字从解码输入端21输入,第三求余电路221先将第一码字M(x)进行弱纠错BCH解码,然后第三缓存器222将第一码字M(x)缓存,第三求余电路221继续对第二码字N(x)进行弱纠错BCH解码,错误信息计算单元24判断错误信息,如果两个码字全错,则纠错失败,并结束进程。如果经纠错单元25纠错后,第一码字M(x)和第二码字N(x)未出现不可纠错误则直接输出第一码字M(x)和第二码字N(x)并结束解码,如果第一码字M(x)或第二码字N(x)出现不可纠错误,则将第二码字N(x)进行缓存,然后通过第三异或门232对第一码字M(x)和第二码字N(x)的校验位Mr(x)和Nr(x)进行异或运算,第四异或门233对第一码字M(x)和第二码字N(x)进行异或运算,第四求余电路231对上述输入进行强纠错BCH解码,借此得到强校验位R(x),然后通过错误信息计算单元24和纠错单元25对第一码字M(x)或第二码字N(x)进行计算纠错,进而输出第一码字M(x)和第二码字N(x),解码过程结束。
综上所述,本发明通过在编码器中设置弱纠错编码单元和强纠错编码单元,使编码器具有双层纠错编码,通过弱纠错编码单元可以输出码字的弱校验位,通过强纠错编码单元可以输出码字的强校验位,对应的,本发明提供的解码器具有弱纠错解码单元和强纠错解码单元,分别对应进行弱纠错解码和强纠错解码。借此,本发明通过双层纠错结构,提高编码器和解码器的纠错性能。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (10)
1.一种具有双层纠错能力的BCH编码器,包括一编码输入端,用于码字的输入,所述码字由第一码字和第二码字组成,其特征在于,所述编码器还包括:
弱纠错编码单元,包括用于实现弱纠错编码的第一求余电路,以及第一缓存器,所述第一求余电路输出第一码字和第二码字的校验位;
强纠错编码单元,包括用于实现强纠错编码的第二求余电路,该第二求余电路的输入为所述第一码字和第二码字的异或运算结果,其输出为该异或运算结果的强校验位;以及
一除法电路。
2.根据权利要求1所述的BCH编码器,其特征在于,所述编码输入端连接一第二缓存器,所述第二缓存器的输出端可输出所述第一码字。
3.根据权利要求2所述的BCH编码器,其特征在于,所述强纠错编码单元还包括:
第一异或门,其两个输入端分别连接所述第二缓存器的输出端以及编码输入端,分别用于接收所述第一码字和第二码字,所述第一异或门将所述第一码字和第二码字异或运算后将运算结果传送至所述第二求余电路进行运算;
第二异或门,其两个输入端分别连接所述第一缓存器的输出端以及第一求余电路的输出端,分别用于接收所述第一码字的校验位和第二码字的校验位并进行运算,所述第二异或门及第二求余电路将运算结果传送至所述除法电路。
4.根据权利要求3所述的BCH编码器,其特征在于,所述编码器还包括一复用器,所述第一缓存器、第二缓存器及除法电路的输出端均连接于所述复用器。
5.根据权利要求1~4任一项所述的BCH编码器,其特征在于,所述编码器为二进制BCH编码器。
6.一种具有双层纠错能力的BCH解码器,包括一解码输入端,用于输入带信息校验位的码字,所述码字包括第一码字和第二码字,其特征在于,所述解码器还包括:
弱纠错解码单元,包括用于弱纠错解码计算的第三求余电路,以及第三缓存器;
强纠错解码单元,包括用于强纠错解码计算的第四求余电路,以及一乘法电路;
错误信息计算单元,用于计算确定所述解码后的码字的错误位置信息;
纠错单元,用于根据所述错误位置信息进行纠错。
7.根据权利要求6所述的BCH解码器,其特征在于,所述解码输入端连接一第四缓存器,用于输出所述第一码字。
8.根据权利要求7所述的BCH解码器,其特征在于,所述强解码纠错单元还包括:
第三异或门,用于接收所述第一码字和第二码字的校验位,并进行异或运算后将运算结果传送至所述第四求余电路;
第四异或门,用于接收所述第一码字和第二码字,并进行异或运算后将运算结果传送至所述第四求余电路。
9.根据权利要求6所述的BCH解码器,其特征在于,所述错误信息计算单元包括:
伴随式计算子单元,用于计算获取伴随式;
关键方程求解子单元,用于根据所述伴随式确定关键方程,并进行求解;
钱搜索子单元,用于获取关键方程的根,并输出错误信息。
10.根据权利要求6~9任一项所述的BCH解码器,其特征在于,所述解码器为二进制BCH解码器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210000779.8A CN102571106B (zh) | 2012-01-04 | 2012-01-04 | 具有双层纠错能力的bch编码器和解码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210000779.8A CN102571106B (zh) | 2012-01-04 | 2012-01-04 | 具有双层纠错能力的bch编码器和解码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102571106A true CN102571106A (zh) | 2012-07-11 |
CN102571106B CN102571106B (zh) | 2014-03-26 |
Family
ID=46415683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210000779.8A Active CN102571106B (zh) | 2012-01-04 | 2012-01-04 | 具有双层纠错能力的bch编码器和解码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102571106B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114550806A (zh) * | 2022-04-26 | 2022-05-27 | 杭州阿姆科技有限公司 | 一种应用于ssd上的双层纠错方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141787A (en) * | 1997-05-19 | 2000-10-31 | Sanyo Electric Co., Ltd. | Digital modulation and demodulation |
CN1344439A (zh) * | 1999-11-24 | 2002-04-10 | 皇家菲利浦电子有限公司 | 加速的Reed-Solomon纠错 |
-
2012
- 2012-01-04 CN CN201210000779.8A patent/CN102571106B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141787A (en) * | 1997-05-19 | 2000-10-31 | Sanyo Electric Co., Ltd. | Digital modulation and demodulation |
CN1344439A (zh) * | 1999-11-24 | 2002-04-10 | 皇家菲利浦电子有限公司 | 加速的Reed-Solomon纠错 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114550806A (zh) * | 2022-04-26 | 2022-05-27 | 杭州阿姆科技有限公司 | 一种应用于ssd上的双层纠错方法 |
CN114550806B (zh) * | 2022-04-26 | 2022-08-05 | 杭州阿姆科技有限公司 | 一种应用于ssd上的双层纠错方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102571106B (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6799287B1 (en) | Method and apparatus for verifying error correcting codes | |
US20090113275A1 (en) | Bch code with 256 information bytes and up to 8 bytes of parity check elements | |
US10187085B2 (en) | Decoding method, decoding apparatus and decoder | |
CN104115126A (zh) | 使用代数码的多阶段ecc编码 | |
CN101946230B (zh) | 用于检测和校正所接收的符号串中的定相突发差错、删除、符号差错和位差错的方法和系统 | |
CN101099138A (zh) | 限制了错误字节数的字节内多个斑点字节错误纠正/检测方法和装置 | |
US8806308B2 (en) | Bose-Chaudhuri-Hocquenghem (BCH) decoder | |
CN101814922A (zh) | 基于bch码的多位错纠错方法和装置以及存储系统 | |
CN101478314A (zh) | 一种里德-所罗门编码译码器及其译码的方法 | |
CN102970049B (zh) | 基于钱搜索算法和福尼算法的并行电路及rs译码电路 | |
CN101277119A (zh) | 里德所罗门码解码器硬件复用方法及其低硬件复杂度解码装置 | |
CN103023518A (zh) | 一种基于并行编码译码的循环汉明码的纠错方法 | |
Parvathi et al. | FPGA based design and implementation of Reed-Solomon encoder & decoder for error detection and correction | |
CN102820892A (zh) | 一种用于并行bch编码的电路、编码器及方法 | |
US3588819A (en) | Double-character erasure correcting system | |
US9191029B2 (en) | Additional error correction apparatus and method | |
Tang et al. | A hybrid multimode BCH encoder architecture for area efficient re-encoding approach | |
CN102571106B (zh) | 具有双层纠错能力的bch编码器和解码器 | |
CN103346805B (zh) | 一种长bch码的译码系统及方法 | |
CN101931415B (zh) | 编码装置及方法、译码装置及方法和纠错系统 | |
Mohamed et al. | Performance study of BCH error correcting codes using the bit error rate term BER | |
CN102811066B (zh) | 伴随式计算装置及解码器 | |
CN102568604B (zh) | Bch编码器和解码器 | |
CN100440738C (zh) | BCH编码中Galois扩域运算的快速实现方法 | |
US10623018B2 (en) | Method of arrangement of an algorithm in cyclic redundancy check |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |