CN111130568B - 一种bch译码器及其译码方法、ecc系统 - Google Patents
一种bch译码器及其译码方法、ecc系统 Download PDFInfo
- Publication number
- CN111130568B CN111130568B CN201811283752.8A CN201811283752A CN111130568B CN 111130568 B CN111130568 B CN 111130568B CN 201811283752 A CN201811283752 A CN 201811283752A CN 111130568 B CN111130568 B CN 111130568B
- Authority
- CN
- China
- Prior art keywords
- error
- module
- correction capability
- error correction
- syndrome
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供了一种BCH译码器及其译码方法、ECC系统,纠错能力控制模块根据预先获得的误码率控制伴随式计算模块中具有相应纠错能力的伴随式计算单元处于工作状态、控制错误位置方程生成模块进行相应迭代次数的运算,错误个数判断模块根据错误位置方程生成模块输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,并将错误的个数输出至纠错能力控制模块,纠错能力控制模块根据错误的个数控制错误位置求解模块中相应个数的钱搜索运算单元处于工作状态,也就是说,本发明可以根据预先获得的误码率灵活设定BCH译码器的纠错能力,大幅度降低了BCH译码器和ECC系统的功耗。
Description
技术领域
本发明涉及存储器技术领域,更具体地说,尤其涉及一种BCH译码器及其译码方法、ECC系统。
背景技术
随着科学技术的不断发展,各种各样的存储器已广泛应用在人们的日常生活和工作中。但是,在制作材料的性能以及制造技术的水平等因素的限制下,从存储器中读出的数据并不是完全正确的,即存储器具有一定的误码率。
基于此,现有技术公开了一种ECC(Error Correcting Code,错误检查和纠正)系统,如图1所示,该ECC系统包括BCH编码器10和BCH译码器11。原始数据在存入存储器12之前,需要先由BCH编码器10进行编码,然后再将编码后的数据存入存储器12的指定位置,同样,从存储器12中读出的数据也要经由BCH译码器11对其解码,并纠正还原数据,以保证存储器12能够持续正常的工作,不至于因错误而中断。
但是,随着存储器容量的不断增加,ECC系统的复杂度和功耗也在不断增加。由于误码率在存储器使用之初是比较低的,且误码率的上升是一个十分缓慢的过程,因此,会导致BCH译码器长时间处于不饱和工作状态,即导致BCH译码器中大量的电路在做无用功,进而导致BCH译码器运行时存在较多的冗余电源消耗,使得ECC系统的功耗较大。
发明内容
为解决上述问题,本发明提供了一种BCH译码器及其译码方法、ECC系统,以降低BCH译码器和ECC系统的功耗。
为实现上述目的,本发明提供如下技术方案:
一种BCH译码器,包括伴随式计算模块、错误位置方程生成模块、错误位置求解模块、纠错能力控制模块和错误个数判断模块;所述伴随式计算模块包括多个伴随式计算单元,所述错误位置求解模块包括多个钱搜索运算单元;
所述纠错能力控制模块用于根据预先获得的误码率控制所述伴随式计算模块中具有相应纠错能力的伴随式计算单元处于工作状态、控制所述错误位置方程生成模块进行相应迭代次数的运算;
所述错误个数判断模块用于根据所述错误位置方程生成模块输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,并将所述错误的个数输出至所述纠错能力控制模块;
所述纠错能力控制模块还用于根据所述错误的个数控制所述错误位置求解模块中相应个数的钱搜索运算单元处于工作状态,以使所述BCH译码器的纠错能力与所述预先获得的误码率相匹配。
可选地,所述错误个数判断模块根据所述错误位置方程生成模块输出的错误位置多项式方程的系数中最高阶的非零系数,获得待译码数据中包含的错误的个数。
可选地,所述纠错能力控制模块还用于根据所述预先获得的误码率配置所述伴随式计算模块中伴随式计算单元的运行参数,根据所述错误的个数配置所述错误位置求解模块中钱搜索运算单元的运行参数。
可选地,所述伴随式计算单元包括至少一个伴随式计算电路;
所述伴随式计算单元的纠错能力与其包括的伴随式计算电路的个数成正比,且纠错能力大的所述伴随式计算单元会复用纠错能力小所述伴随式计算单元的全部伴随式计算电路。
一种BCH译码器的译码方法,包括:
纠错能力控制模块根据预先获得的误码率控制伴随式计算模块中具有相应纠错能力的伴随式计算单元处于工作状态,以使处于工作状态的伴随式计算单元计算伴随式多项式,并输出伴随式多项式的系数;
所述纠错能力控制模块根据预先获得的误码率控制错误位置方程生成模块根据所述处于工作状态的伴随式计算单元输出的伴随式多项式的系数,进行相应迭代次数的错误位置多项式方程计算,并输出所述错误位置多项式方程的系数;
错误个数判断模块根据所述错误位置方程生成模块输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,并将所述错误的个数输出至所述纠错能力控制模块;
所述纠错能力控制模块根据所述错误的个数控制所述错误位置求解模块中相应个数的钱搜索运算单元处于工作状态,以使所述处于工作状态的钱搜索运算单元计算出错误位置并进行数据的输出。
可选地,所述错误个数判断模块根据所述错误位置方程生成模块输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,包括:
所述错误个数判断模块根据所述错误位置方程生成模块输出的错误位置多项式方程的系数中最高阶的非零系数,获得待译码数据中包含的错误的个数。
可选地,所述纠错能力控制模块根据预先获得的误码率控制伴随式计算模块中具有相应纠错能力的伴随式计算单元处于工作状态之前,还包括:
所述纠错能力控制模块根据所述预先获得的误码率配置所述伴随式计算模块中伴随式计算单元的运行参数。
可选地,所述纠错能力控制模块根据所述错误的个数控制所述错误位置求解模块中相应个数的钱搜索运算单元处于工作状态之前,还包括:
所述纠错能力控制模块根据所述错误的个数配置所述错误位置求解模块中钱搜索运算单元的运行参数。
可选地,还包括:
将所述错误位置求解模块输出的数据与原始数据进行异或,以对所述数据中的错误进行修正,并输出修正后的数据。
一种ECC系统,包括BCH编码器和BCH译码器,所述BCH译码器为如上任一项所述的译码器。
与现有技术相比,本发明所提供的技术方案具有以下优点:
本发明提供的BCH译码器及其译码方法、ECC系统,纠错能力控制模块根据预先获得的误码率控制伴随式计算模块中具有相应纠错能力的伴随式计算单元处于工作状态、控制错误位置方程生成模块进行相应迭代次数的运算,错误个数判断模块根据错误位置方程生成模块输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,并将错误的个数输出至纠错能力控制模块,纠错能力控制模块根据错误的个数控制错误位置求解模块中相应个数的钱搜索运算单元处于工作状态,也就是说,本发明可以根据预先获得的误码率灵活设定BCH译码器的纠错能力,通过控制BCH译码器中具有与预设误码率相匹配的纠错能力的部分电路工作、其他电路不工作,在满足实际需要的纠错能力的情况下,大幅度降低了BCH译码器和ECC系统的功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有的ECC系统的结构示意图;
图2为现有技术中的一种BCH译码器的结构示意图;
图3为本发明实施例提供的一种BCH译码器的结构示意图;
图4为本发明实施例提供的一种伴随式计算模块的结构示意图;
图5为本发明实施例提供的一种伴随式计算电路的结构示意图;
图6为本发明实施例提供的一种错误位置求解模块的结构示意图;
图7为本发明实施例提供的一种BCH译码器的译码方法流程图。
具体实施方式
正如背景技术所述,现有的ECC系统中的BCH译码器的功耗较大。参考图2,图2为现有技术中的一种BCH译码器的结构示意图,待译码数据首先通过伴随式计算模块20计算伴随式多项式,之后结合伴随式多项式的系数通过错误位置方程生成模块21计算错误位置多项式方程,最后结合错误位置多项式方程的系数通过错误位置求解模块22求出错误位置,并结合数据FIFO(First Input First Output,数据缓存)23中的原始数据进行异或,将错误修正并一同输出。
基于此,传统的BCH译码器不管是伴随式计算模块的纠错能力,还是错误位置方程生成模块的纠错能力,还是错误位置求解模块的纠错能力都是固定不变的,不能随意调整纠错能力,因此,在数据误码率不同的情况下功耗变化不大。但是,随着传统的BCH译码器纠错能力的增加,BCH译码器的功耗也逐渐变大,导致这种纠错能力固定的BCH译码器在功耗优化上不够灵活。
基于上述问题,本发明提供了一种BCH译码器,该BCH译码器包括伴随式计算模块、错误位置方程生成模块、错误位置求解模块、纠错能力控制模块和错误个数判断模块;所述伴随式计算模块包括多个伴随式计算单元,所述错误位置求解模块包括多个钱搜索运算单元;
所述纠错能力控制模块用于根据预先获得的误码率控制所述伴随式计算模块中具有相应纠错能力的伴随式计算单元处于工作状态、控制所述错误位置方程生成模块进行相应迭代次数的运算;
所述错误个数判断模块用于根据所述错误位置方程生成模块输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,并将所述错误的个数输出至所述纠错能力控制模块;
所述纠错能力控制模块还用于根据所述错误的个数控制所述错误位置求解模块中相应个数的钱搜索运算单元处于工作状态。
一种BCH译码器的译码方法,包括:
纠错能力控制模块根据预先获得的误码率控制伴随式计算模块中具有相应纠错能力的伴随式计算单元处于工作状态,以使处于工作状态的伴随式计算单元计算伴随式多项式,并输出伴随式多项式的系数;
所述纠错能力控制模块根据预先获得的误码率控制错误位置方程生成模块根据所述处于工作状态的伴随式计算单元输出的伴随式多项式的系数,进行相应迭代次数的错误位置多项式方程计算,并输出所述错误位置多项式方程的系数;
错误个数判断模块根据所述错误位置方程生成模块输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,并将所述错误的个数输出至所述纠错能力控制模块;
所述纠错能力控制模块根据所述错误的个数控制所述错误位置求解模块中相应个数的钱搜索运算单元处于工作状态,以使所述处于工作状态的钱搜索运算单元计算出错误位置并进行数据的输出。
一种ECC系统,包括BCH编码器和BCH译码器,所述BCH译码器为如上所述的译码器。
本发明提供的BCH译码器及其译码方法、ECC系统,可以根据预先获得的误码率灵活设定BCH译码器的纠错能力,通过控制BCH译码器中具有与预设误码率相匹配的纠错能力的部分电路工作、其他电路不工作,在满足实际需要的纠错能力的情况下,大幅度降低了BCH译码器和ECC系统的功耗。
以上是本发明的核心思想,为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考图3,图3为本发明实施例提供的一种BCH译码器的结构示意图,该BCH译码器包括伴随式计算模块30、错误位置方程生成模块31、错误位置求解模块32、纠错能力控制模块33和错误个数判断模块34;其中,伴随式计算模块30包括多个伴随式计算单元,错误位置求解模块32包括多个钱搜索运算单元。
其中,纠错能力控制模块33用于根据预先获得的误码率控制伴随式计算模块30中具有相应纠错能力的伴随式计算单元处于工作状态、控制错误位置方程生成模块31进行相应迭代次数的运算;
错误个数判断模块34用于根据错误位置方程生成模块31输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,并将错误的个数输出至纠错能力控制模块33;
纠错能力控制模块33还用于根据错误的个数控制错误位置求解模块32中相应个数的钱搜索运算单元处于工作状态,以使所述BCH译码器的纠错能力与所述预先获得的误码率相匹配。
本实施例中,错误个数判断模块34是根据错误位置方程生成模块31输出的错误位置多项式方程的系数中最高阶的非零系数,获得的待译码数据中包含的错误的个数。即错误的个数等于错误位置方程生成模块31输出的错误位置多项式方程的系数中最高阶的非零系数。
本实施例中,纠错能力控制模块33还用于根据预先获得的误码率配置伴随式计算模块30中伴随式计算单元的运行参数,根据错误的个数配置错误位置求解模块32中钱搜索运算单元的运行参数。
需要说明的是,本发明实施例中的预先获得的误码率可以是人为输入的预先设定的误码率,也可以是BCH译码器自动匹配的误码率。此外,本发明实施例中的伴随式计算单元包括至少一个伴随式计算电路,伴随式计算单元的纠错能力与其包括的伴随式计算电路的个数成正比,且纠错能力大的伴随式计算单元会复用纠错能力小的伴随式计算单元的全部伴随式计算电路。
如图4所示,图4为本发明实施例提供的一种伴随式计算模块30的结构示意图,假设整个伴随式计算模块30的纠错能力为T,则可将伴随式计算模块30分为两个纠错能力为T/2的伴随式计算单元、四个纠错能力为T/4的伴随式计算单元、八个纠错能力为T/8的伴随式计算单元等,其中,纠错能力为T/2的伴随式计算单元可以复用两个纠错能力为T/4的伴随式计算单元中的全部伴随式计算电路、纠错能力为T/4的伴随式计算单元可以复用两个纠错能力为T/8的伴随式计算单元中的全部伴随式计算电路。
基于此,若预先获得的误码率对应的是纠错能力为T/8的伴随式计算单元,即纠错能力为T/8的伴随式计算单元可对具有所述预先获得的误码率的输入数据进行纠错,则纠错能力控制模块33会控制伴随式计算模块30中纠错能力为T/8的伴随式计算单元处于工作状态,其他伴随式计算单元处于不工作状态。需要说明的是,关于纠错能力T/2、T/4、T/8和T的划分在本发明实施例中仅仅以举例的形式体现,并不作限定。
由于在译码过程中有很多伴随式计算电路是重复出现的,只是配置参数不同,因此,本发明实施例中采用伴随式计算电路复用的方式,只增加少量逻辑控制便可实现伴随式计算模块30纠错能力可配置的功能,同时在低误码率情况下大幅度降低BCH译码器的功耗,并且,通过复用伴随式计算电路,不会使得芯片面积增加。
如图5所示,图5为本发明实施例提供的一种伴随式计算电路的结构示意图,伴随式计算电路包括但不限定于由GF乘法器和D触发器组成,通过使能控制信号EN_i控制该伴随式计算电路是否处于工作状态。其中,参数配置信号可以配置相对应的GF乘法器的运行参数,以实现伴随式计算模式30的不同纠错能力。
本实施例中,纠错能力控制模块33根据预先获得的误码率控制错误位置方程生成模块31的迭代次数,即控制错误位置方程生成模块31的递归运算深度,结合伴随式计算模块30输出的伴随式多项式的系数通过错误位置方程生成模块31计算错误位置多项式方程,输出错误位置多项式方程的系数。
错误位置方程生成模块31通常采用BM算法或者某种优化的BM算法来计算错误位置多项式方程,目的是生成如下多项式:
σ(x)=σ0+σ1x+σ2x2+…+σixi+…+σTxT
其中,σi是该错误位置多项式方程的系数,也是错误位置方程生成模块31主要进行运算求解的对象,如果能根据伴随式计算模块30输出的伴随式系数求解出越多的系数σi,则纠错能力越强。
在判断错误位置方程生成模块31的递归运算深度时,将当前递归深度i与纠错能力控制电路模块的输出J进行比较,从而可以按照不同的纠错能力需要使算法达到不同的递归深度,以实现纠错能力可配置的错误位置方程生成模块31。
纠错能力控制模块33根据预先获得的误码率控制错误位置方程生成模块31的迭代次数的过程如下所示:
步骤S101:初始化所有相关参数变量:
i=-1;d-1=1;d1=S1;dq(-1)=1;
σ(-1)(x)=1;σ(1)(x)=1;D(-1)(x)=1;
步骤S102:将迭代计数变量i(即递归深度i)加2表示进行了一次迭代:
i=i+2;
步骤S103:判断di是否值为0,其中di表示d的第i次迭代时的值:
若di=0,则执行步骤S104:
D(i)(x)=x2D(i-2)(x);
dq(i)=dq(i-2);
σ(i+2)(x)=σ(i)(x);
若di≠0,则执行步骤S105:
D(i)(x)=σ(i)(x);
dq(i)=di;
步骤S106:计算下一次迭代时的di值:
其中,S为伴随式计算模块30的输出;
S107:判断迭代深度是否满足纠错能力控制模块33的限定J:
i<J;
若i<J,则返回步骤S102,继续进行迭代;
若i≥J,则执行步骤S108,输出σ(x)=σ(i+2)(x)的值,即为结果。
本实施例中,如图6所示,图6为本发明实施例提供的一种错误位置求解模块32的结构示意图,假设错误位置求解模块32包括n个钱搜索运算单元、错误个数判断模块34获得的错误的个数为i,则纠错能力控制模块33控制错误位置求解模块32中第1个钱搜索运算单元至第i个钱搜索运算单元处于工作状态、其他钱搜索运算单元处于不工作状态。
其中,每一个钱搜索运算单元为一个并行GF域乘法器,该并行GF域乘法器包括但不限定于通过以下计算式求解:
σ(x)=σ0+σ1x+σ2x2+…+σixi+…+σTxT
其中,σi是错误位置多项式方程的系数值,通过钱搜索运算单元把对应的BCH码的每个码元带入上述方程,当解为0时,表示相对应的根所指向的位置发生了错误。
需要说明的是,错误位置求解模块32的纠错能力与上述方程中的项数有关,项数越多错误位置求解模块32的纠错能力就越强,消耗的钱搜索运算单元资源就越多,运行时功耗就越大。那么,在面对低误码率时,只需要计算上述多项式的前几项即可,而不是计算完整的多项式,实现方式是通过配置来减少工作的钱搜索运算单元的数量,进而降低功耗。
本发明实施例还提供了一种BCH译码器的译码方法,如图7所示,包括:
S701:纠错能力控制模块根据预先获得的误码率控制伴随式计算模块中具有相应纠错能力的伴随式计算单元处于工作状态,以使处于工作状态的伴随式计算单元计算伴随式多项式,并输出伴随式多项式的系数;
S702:纠错能力控制模块根据预先获得的误码率控制错误位置方程生成模块根据处于工作状态的伴随式计算单元输出的伴随式多项式的系数,进行相应迭代次数的错误位置多项式方程计算,并输出错误位置多项式方程的系数;
S703:错误个数判断模块根据错误位置方程生成模块输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,并将错误的个数输出至纠错能力控制模块;
S704:纠错能力控制模块根据错误的个数控制错误位置求解模块中相应个数的钱搜索运算单元处于工作状态,以使处于工作状态的钱搜索运算单元计算出错误位置并进行数据的输出。
之后,还包括:
将错误位置求解模块输出的数据与原始数据进行异或,以对数据中的错误进行修正,并输出修正后的数据。
其中,错误个数判断模块根据错误位置方程生成模块输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,包括:
错误个数判断模块根据错误位置方程生成模块输出的错误位置多项式方程的系数中最高阶的非零系数,获得待译码数据中包含的错误的个数。
此外,纠错能力控制模块根据预先获得的误码率控制伴随式计算模块中具有相应纠错能力的伴随式计算单元处于工作状态之前,还包括:
纠错能力控制模块根据预先获得的误码率配置伴随式计算模块中伴随式计算单元的运行参数。
纠错能力控制模块根据错误的个数控制错误位置求解模块中相应个数的钱搜索运算单元处于工作状态之前,还包括:
纠错能力控制模块根据错误的个数配置错误位置求解模块中钱搜索运算单元的运行参数。
下面结合图3对BCH译码器处理待译码数据的过程进行说明。在BCH译码器处理待译码数据之前,需向纠错能力控制模块33输入模式选择信号,该模式选择信号包括预先获得的误码率。
纠错能力控制模块33根据预先获得的误码率生成使能控制信号,并将使能控制信号发送至伴随式计算模块30,同时,纠错能力控制模块33还向伴随式计算模式30发送参数配置信号,即对伴随式计算模块30中相对应的伴随式计算单元的运行参数进行配置,该参数配置信号依据预先获得的误码率生成。
伴随式计算模块30接收到使能控制信号后,使能控制信号控制伴随式计算模块30中具有相应纠错能力的伴随式计算单元处于工作状态,即控制伴随式计算模块30中部分伴随式计算电路处于工作状态、其他伴随式计算电路处于不工作状态,处于工作状态的伴随式计算电路计算伴随式多项式,并输出伴随式多项式的系数。
然后,纠错能力控制模块33根据预先获得的误码率控制错误位置方程生成模块31的迭代次数,即控制错误位置方程生成模块31的递归运算深度,结合伴随式计算模块30输出的伴随式多项式的系数通过错误位置方程生成模块31计算错误位置多项式方程,输出错误位置多项式方程的系数。
之后,错误个数判断模块34根据错误位置方程生成模块31输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,并将错误的个数输出至纠错能力控制模块33;
纠错能力控制模块33根据错误的个数生成使能控制信号,并将使能控制信号发送至错误位置求解模块32,同时,纠错能力控制模块33还向错误位置求解模块32发送参数配置信号,即对错误位置求解模块32中相对应的钱搜索运算单元的运行参数进行配置,该参数配置信号依据错误的个数生成的。
错误位置求解模块32接收到使能控制信号后,使能控制信号控制错误位置求解模块32中相应个数的钱搜索运算单元处于工作状态、其他的钱搜索运算单元处于不工作状态,其中,处于工作状态的钱搜索运算单元的个数等于错误的个数。处于工作状态的钱搜索运算单元计算出错误位置并输出后,再结合数据FIFO中的原始数据进行纠错译码,最后输出纠错后的数据。
本发明实施例还提供了一种ECC系统,包括BCH编码器和BCH译码器,所述BCH译码器为如上任一实施例提供的BCH译码器。
本发明提供的BCH译码器及其译码方法、ECC系统,可以根据预先获得的误码率灵活设定BCH译码器的纠错能力,通过控制BCH译码器中具有与预设误码率相匹配的纠错能力的部分电路工作、其他电路不工作,在满足实际需要的纠错能力的情况下,大幅度降低了BCH译码器和ECC系统的功耗。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种BCH译码器,其特征在于,包括伴随式计算模块、错误位置方程生成模块、错误位置求解模块、纠错能力控制模块和错误个数判断模块;所述伴随式计算模块包括多个伴随式计算单元,所述错误位置求解模块包括多个钱搜索运算单元;
所述纠错能力控制模块用于根据预先获得的误码率控制所述伴随式计算模块中具有相应纠错能力的伴随式计算单元处于工作状态、控制所述错误位置方程生成模块进行相应迭代次数的运算;
所述错误个数判断模块用于根据所述错误位置方程生成模块输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,并将所述错误的个数输出至所述纠错能力控制模块;
所述纠错能力控制模块还用于根据所述错误的个数控制所述错误位置求解模块中相应个数的钱搜索运算单元处于工作状态,以使所述BCH译码器的纠错能力与所述预先获得的误码率相匹配。
2.根据权利要求1所述的BCH译码器,其特征在于,所述错误个数判断模块根据所述错误位置方程生成模块输出的错误位置多项式方程的系数中最高阶的非零系数,获得待译码数据中包含的错误的个数。
3.根据权利要求1所述的BCH译码器,其特征在于,所述纠错能力控制模块还用于根据所述预先获得的误码率配置所述伴随式计算模块中伴随式计算单元的运行参数,根据所述错误的个数配置所述错误位置求解模块中钱搜索运算单元的运行参数。
4.根据权利要求1所述的BCH译码器,其特征在于,所述伴随式计算单元包括至少一个伴随式计算电路;
所述伴随式计算单元的纠错能力与其包括的伴随式计算电路的个数成正比,且纠错能力大的所述伴随式计算单元会复用纠错能力小所述伴随式计算单元的全部伴随式计算电路。
5.一种BCH译码器的译码方法,其特征在于,应用于权利要求1~4任一项所述的BCH译码器,包括:
纠错能力控制模块根据预先获得的误码率控制伴随式计算模块中具有相应纠错能力的伴随式计算单元处于工作状态,以使处于工作状态的伴随式计算单元计算伴随式多项式,并输出伴随式多项式的系数;
所述纠错能力控制模块根据预先获得的误码率控制错误位置方程生成模块根据所述处于工作状态的伴随式计算单元输出的伴随式多项式的系数,进行相应迭代次数的错误位置多项式方程计算,并输出所述错误位置多项式方程的系数;
错误个数判断模块根据所述错误位置方程生成模块输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,并将所述错误的个数输出至所述纠错能力控制模块;
所述纠错能力控制模块根据所述错误的个数控制所述错误位置求解模块中相应个数的钱搜索运算单元处于工作状态,以使所述处于工作状态的钱搜索运算单元计算出错误位置并进行数据的输出。
6.根据权利要求5所述的方法,其特征在于,所述错误个数判断模块根据所述错误位置方程生成模块输出的错误位置多项式方程的系数,获得待译码数据中包含的错误的个数,包括:
所述错误个数判断模块根据所述错误位置方程生成模块输出的错误位置多项式方程的系数中最高阶的非零系数,获得待译码数据中包含的错误的个数。
7.根据权利要求5所述的方法,其特征在于,所述纠错能力控制模块根据预先获得的误码率控制伴随式计算模块中具有相应纠错能力的伴随式计算单元处于工作状态之前,还包括:
所述纠错能力控制模块根据所述预先获得的误码率配置所述伴随式计算模块中伴随式计算单元的运行参数。
8.根据权利要求5所述的方法,其特征在于,所述纠错能力控制模块根据所述错误的个数控制所述错误位置求解模块中相应个数的钱搜索运算单元处于工作状态之前,还包括:
所述纠错能力控制模块根据所述错误的个数配置所述错误位置求解模块中钱搜索运算单元的运行参数。
9.根据权利要求5所述的方法,其特征在于,还包括:
将所述错误位置求解模块输出的数据与原始数据进行异或,以对所述数据中的错误进行修正,并输出修正后的数据。
10.一种ECC系统,其特征在于,包括BCH编码器和BCH译码器,所述BCH译码器为权利要求1~4任一项所述的译码器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811283752.8A CN111130568B (zh) | 2018-10-31 | 2018-10-31 | 一种bch译码器及其译码方法、ecc系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811283752.8A CN111130568B (zh) | 2018-10-31 | 2018-10-31 | 一种bch译码器及其译码方法、ecc系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111130568A CN111130568A (zh) | 2020-05-08 |
CN111130568B true CN111130568B (zh) | 2023-05-23 |
Family
ID=70485141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811283752.8A Active CN111130568B (zh) | 2018-10-31 | 2018-10-31 | 一种bch译码器及其译码方法、ecc系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111130568B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286716A (zh) * | 2020-10-21 | 2021-01-29 | 天津津航计算技术研究所 | 一种1024字节的存储系统差错控制模块 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459431A (zh) * | 2008-12-30 | 2009-06-17 | 北京大学 | 一种信道纠错码bch码和rs码的译码方法 |
CN102170327A (zh) * | 2011-04-06 | 2011-08-31 | 烽火通信科技股份有限公司 | 超强前向纠错的硬件译码方法及装置 |
WO2016090621A1 (zh) * | 2014-12-12 | 2016-06-16 | 华为技术有限公司 | 数据存储的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806308B2 (en) * | 2013-01-07 | 2014-08-12 | Freescale Semiconductor, Inc. | Bose-Chaudhuri-Hocquenghem (BCH) decoder |
-
2018
- 2018-10-31 CN CN201811283752.8A patent/CN111130568B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459431A (zh) * | 2008-12-30 | 2009-06-17 | 北京大学 | 一种信道纠错码bch码和rs码的译码方法 |
CN102170327A (zh) * | 2011-04-06 | 2011-08-31 | 烽火通信科技股份有限公司 | 超强前向纠错的硬件译码方法及装置 |
WO2012136047A1 (zh) * | 2011-04-06 | 2012-10-11 | 烽火通信科技股份有限公司 | 超强前向纠错的硬件译码方法及装置 |
WO2016090621A1 (zh) * | 2014-12-12 | 2016-06-16 | 华为技术有限公司 | 数据存储的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111130568A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | Error correction for multi-level NAND flash memory using Reed-Solomon codes | |
CN102045071B (zh) | 改善用于低功率应用的ldpc解码器中的功耗 | |
WO2015139160A1 (zh) | 一种动态阈值比特翻转的ldpc码硬判决译码方法 | |
US9450615B2 (en) | Multi-bit error correction method and apparatus based on a BCH code and memory system | |
CN107239362B (zh) | 一种并行crc校验码的计算方法及系统 | |
US10790857B1 (en) | Systems and methods for using decoders of different complexity in a hybrid decoder architecture | |
JP2009278686A (ja) | 循環冗長符号シグネチャ比較を行うターボ復号器 | |
MXPA04007076A (es) | Mensajeria en bloque de componente intra-decodificador. | |
US20230412196A1 (en) | Low-power block code forward error correction decoder | |
CN103929211B (zh) | 一种bch编码方案自适应调整方法及系统 | |
Cho et al. | Efficient software-based encoding and decoding of BCH codes | |
CN101296053A (zh) | 计算循环冗余校验码之方法及系统 | |
CN111130568B (zh) | 一种bch译码器及其译码方法、ecc系统 | |
US10826534B2 (en) | Encoding method, encoder, and decoder for dynamic power consumption control | |
CN106537787A (zh) | 译码方法和译码器 | |
CN111416626B (zh) | 一种ldpc码的译码方法、装置、设备及存储介质 | |
CN102045073B (zh) | 一种bch码译码方法和装置 | |
CN103354101A (zh) | 一种用于快闪存储器纠错的ldpc码解码装置 | |
CN107688506B (zh) | 一种流水结构的bch译码系统 | |
KR20140099820A (ko) | 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더 | |
CN108683425B (zh) | 一种bch译码器 | |
JP2007174057A (ja) | 演算回路 | |
Anantharaman et al. | Hardware implementation analysis of min-sum decoders | |
CN101931415B (zh) | 编码装置及方法、译码装置及方法和纠错系统 | |
Veshala et al. | FPGA based design and implementation of modified Viterbi decoder for a Wi-Fi receiver |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |