CN1561005A - 快速纠双错bch码译码器 - Google Patents
快速纠双错bch码译码器 Download PDFInfo
- Publication number
- CN1561005A CN1561005A CNA2004100057773A CN200410005777A CN1561005A CN 1561005 A CN1561005 A CN 1561005A CN A2004100057773 A CNA2004100057773 A CN A2004100057773A CN 200410005777 A CN200410005777 A CN 200410005777A CN 1561005 A CN1561005 A CN 1561005A
- Authority
- CN
- China
- Prior art keywords
- error
- errors present
- bch
- counting circuit
- code
- 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
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种快速纠双错BCH码译码器,所述的译码器工作在有限域GF(25)上,由伴随式计算电路、错误数目判断电路、错误位置计算电路组成,并为顺序连接,译码器中BCH码为BCH(N,N-10),码长N是11~31中任意整数。本发明利用BCH码纠双错的特点,给出了一种无需Chien搜索法,也不用查找表ROM,直接从伴随式结果即可计算出错误位置的快速译码算法。具有译码结构简单,硬件复杂度低、控制信号简单、译码速度快并且不受码长影响等优点。非常适合于要求产品功耗低、吞吐率快及可靠性高的应用系统中,如便携式FLASH存储系统产品中。
Description
技术领域
本发明是涉及一种在数字通信、数据存储、网络数据传输等技术领域内进行纠错的一种芯片装置。
背景技术
在数字通信系统和数据存储系统中,错误控制编码(Error ControlCoding)技术作为数据完整性保护的重要手段,得到广泛应用。数字影音光碟(DVD),数字式广播(DVB)、大容量存储(Mass-Storage)等系统多采用BCH码作为错误控制编码来提高数据的可靠性与完整性。
一些消费类应用系统(如采用FLASH存储器的Mass-Storage系统)基于产品的性能和成本的考虑,以纠双错的BCH码作为差错控制编码,保证数据的可靠性和安全性。它们希望BCH码的译码电路计算速度快,硬件实现代价小。
目前,对于纠正两位错误的BCH码的译码电路通常采用两种方法:第一种是用Berlekamp-Massey算法(或者Euclidian算法)和Chien搜索算法确定错误的具体位置。这种方法通用性好,但是算法复杂,硬件实现代价高。Chien搜索法需要花费正比于码长的运算时间,译码速度慢。第二种方法是查找表(look-up-table),它是把预先算好的结果存放在只读存储器(ROM)中,确定错误的位置比较快。但是,当码长较长时,ROM的容量较大,硬件实现成本高。
通常的BCH码的译码过程包括三个步骤:
1.伴随式(Syndrome)的计算;
2.利用伴随式计算错误寻址多项式(error-locator polynomial);
3.根据错误寻址多项式计算出错误位置(error locations);
步骤2的求解,通常采用Berlekamp-Massey算法或者Euclidian算法。实现Berlekamp-Massey算法或者Euclidian算法电路的硬件复杂度和码长有关,和纠错的数目无关。第3步错误位置的求解通常采用Chien搜索算法实现,算法的迭代次数正比于码长。这些译码算法都未能充分利用纠错个数较少的特点,实现的硬件代价大,运算速度慢。
步骤2和3的确定错误位置也可以用查找表技术实现,它是利用预先在ROM中存放错误位置的查找表。这样可以较快地得出发生错误的位置,但是当码长较长时,需要大容量的ROM,硬件代价大。
发明内容
针对目前纠正两位错误BCH码译码器的缺点,本发明提出了一种无需Chien搜索法,也不用查找表ROM的直接求解的硬件译码器,该译码器工作在有限域GF(25)上,具有译码速度快,硬件代价小的优点。
一种快速纠双错BCH码译码器,所述的译码器工作在有限域GF(25)上,由伴随式计算电路、错误数目判断电路、错误位置计算电路组成,并为顺序连接;译码器中BCH码为BCH(N,N-10),码长N是11~31中任意整数;
所述的伴随式计算电路,由输入的数据流计算出伴随式S0、S1、S2和S3;
所述的错误数目判断电路,其步骤包括:
(a)由式(1)计算出A、B、C;
B=S1S2+S0S3,
(b)根据S0、S1、S2、S3、A、B和C的值判断发生错误数目;
所述的错误位置计算电路,是根据发生错误数目分别计算出错误位置,根据计算出的错误位置,取反数据得到纠正后的正确值。
单个错误情形下:所述的错误位置计算电路对错误位置的计算,其方法是根据式X1=S1/S0计算。
两个错误情形下:所述的错误位置计算电路对错误位置的计算,其方
Z1[4]=Z2[4]=K[0];
Z1[3]=Z2[3]=K[4]K[2]K[1];法是采用符合式 Z1[2]=Z2[2]=K[4]K[0]; 的硬件电路直接求解
Z1[1]=Z2[1]=K[4]K[2];
Z1[0]=0,Z2[0]=1;
z2+z+K=0根Z1和Z2,用式
计算出σ1,再用式X1=σ1Z1,X2=σ1Z2得到两个错误位置X1和X2。
本发明利用BCH码纠双错的特点,给出了一种无需Chien搜索法,也不用查找表ROM,直接从伴随式结果即可计算出错误位置的快速译码算法。具有译码结构简单,硬件复杂度低、控制信号简单、译码速度快并且不受码长影响等优点。非常适合于要求产品功耗低、吞吐率快及可靠性高的应用系统中,如便携式FLASH存储系统产品中。
附图说明
图1有限域GF(25)二次方程Z2+z+K=0根的求解电路框图。
图2有限域GF(25)二次方程z2+z+K=0的根求解电路的一种实现方式。
图3快速BCH译码器整体电路框图。
图4BCH(31,21)码的数据格式图。
图5有限域GF(25)BCH(31,21)译码器电路框图。
具体实施方式
设在有限域GF(25)可纠正两个错误的BCH码的一般形式为:
BCH(N,N-10)
其中N(10<N≤31)为码长;N-10为信息元长度;码距d=5。
设r(x)、c(x)和e(x)分别表示接收多项式、码字(code word)多项式和错误多项式。那么,它们之间满足:
r(x)=c(x)+e(x) (1)
定义伴随式为Si(i=0,1,2,3),那么
假设两个错误的位置为i1和i2,令
定义寻址多项式σ(x)为:
σ(x)=(x-X1)(x-X2)=x2+σ1x+σ0 (3)
其中,σ1=X1+X2,σ0=X1X2
(4)
所以,
S2=S1σ1+S0σ0 (5)
S3=S2σ1+S1σ0 (6)
可以得出:
BCH码错误数据检测、错误位置的求解方法如下:
1.如果没有错误发生,那么
S0=S1=S2=S3=0 (9)
2.如果单个错误发生,假设错误的位置为i1,计算A、B和C如下:
所以:
S0=1≠0,S1=X1≠0,
A=0,B=0,C=0
那么,可以求出错误的位置为:
X1=S1 (12)
3.如果两个错误发生,假设两个错误的位置为i1和i2,那么:
S0=0
S1=X1+X2≠0
将x=σ1z代入寻址多项式σ(x)中,可得:
z2+z+K=0 (15)
式中,
式(15)的两个根Z1、Z2和K之间的关系式为:
Z1[4]=Z2[4]=K[0];
Z1[3]=Z2[3]=K[4]K[2]K[1];
Z1[2]=Z2[2]=K[4]K[0]; (16)
Z1[1]=Z2[1]=K[4]K[2];
Z1[0]=0,Z2[0]=1;
图1为求解二次方程z2+z+K=0根的电路框图,其中K[4:0]为方程的常数,Z1[4:0]和Z2[4:0]为求出的两个根。
图2是有限域GF(25)二次方程z2+z+K=0两个根的求解电路形式中的一种电路,图中的逻辑门均为异或门。
求出Z1和Z2后,可以求出错误位置X1和X2的值:
X1=σ1Z1,X2=σ1Z2 (17)
对错误位置的数取反,就得到纠正后的数据,这样完成了纠正两个错误BCH码的译码过程。
图3为本发明快速BCH译码器的整体电路框图。图中I为伴随式计算电路,它从输入的译码数据计算得到S0、S1、S2、S3;II为错误数目判断电路,它根据伴随式的值之间的关系,判断出错误发生的数目Error_Number;III为错误位置计算电路,它是根据发生错误的数目,分别计算得到错误的位置X1和X2。
以BCH(31,21)码为例说明本发明的具体实施方法。
BCH(31,21)码,采用有限域GF(25),可纠正t=2个随机错误。数据的格式如图4所示。
最高的10位为校验位,后面21位为信息位。
BCH(31,21)译码器的框图如图5所示,图5中左边为输入信号,DataIn[7:0]为输入的译码数据,CLK为工作时钟。右边为译码输出结果,E_Count[1:0]为发生错误的数目,ErrAdr1[4:0]为第一个错误的地址,ErrAdr2[4:0]为第二个错误的地址。
一、没有错误时的译码结果
输入的31位数据(二进制表示)为:
0000100_00101110_00100010_00111011
其中最前面的10位数据为校验位,后面的21位为信息位。所以校验位和信息位分别为:
校验位:0000100001;
信息位:01110_00100010_00111011(十六进制为0E223B);
1.译码结果为:
E_Count=0;
Err_Adr1=0;
Err_Adr2=0;
2.结果分析
译码结果表明没有错误发生。
二、单个错误时的译码结果
输入的31位数据(二进制表示)为:
0000100_00101110_01100010_00111011
其中最前面的10位数据为校验码,后面的21位为信息码。所以校验码和信息码分别为:
校验码:0000100001;
信息码:01110_01100010_00111011(十六进制为0E623B);
1.译码结果为:
E_Count=1;
Err_Adr1=0E;
Err_Adr2=0;
2.结果分析
此时有一个错误发生。错误的位置在第14位,将第14位数据取反后的信息码为0110_00100010_00111011(十六进制为0E223B)。
三、两个错误时的译码结果
输入的31位数据(二进制表示)为:
0000100_00101110_01100011_00111011
其中最前面的10位数据为校验码,后面的21位为信息码。所以校验码和信息码分别为:
校验码:0000100001;
信息码:01110_01100011_00111011(十六进制为0E633B);
1.译码结果为:
E_Count=1;
Err_Adr1=0E;
Err_Adr2=08;
2.结果分析
此时有两个错误发生。错误的位置在第14位和第8位,将第14位和第8位的数据取反后的信息码为0110_00100010_00111011(十六进制为0E223B)。
Claims (3)
1.一种快速纠双错BCH译码器,其特征在于:所述的译码器工作在有限域GF(25)上,由伴随式计算电路(I)、错误数目判断电路(II)、错误位置计算电路(III)组成,并为顺序连接;译码器中BCH码为BCH(N,N-10),码长N是11~31中任意整数;
所述的伴随式计算电路,由输入的数据流计算出伴随式S0、S1、S2和S3;
所述的错误数目判断电路,其步骤包括:
(a)由式(1)计算出A、B、C,
(b)根据S0、S1、S2、S3、A、B和C的值判断发生错误数目;
所述的错误位置计算电路,是根据发生错误数目分别计算出错误位置,根据计算出的错误位置,取反数据得到纠正后的正确值。
2.根据权利要求1所述的一种快速纠双错BCH译码器,其特征在于:在单个错误情形下:
所述的错误位置计算电路(III)对错误位置的计算,其方法是根据式X1=S1/S0计算。
3.根据权利要求1所述的一种快速纠双错BCH译码器,其特征在于:在两个错误情形下:
所述的错误位置计算电路(III)对错误位置的计算,其方法是采用符合
Z1[4]=Z2[4]=K[0];
Z1[3]=Z2[3]=K[4]K[2]K[1];
式Z1[2]=Z2[2]=K[4]K[0];的硬件电路直接求解z2+z+K=0根Z1
Z1[1]=Z2[1]=K[4]K[2];
Z1[0]=0,Z2[0]=1;和Z2,用式
计算出σ1,再用式X1=σ1Z1,X2=σ1Z2得到两个错误位置X1和X2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410005777 CN1561005B (zh) | 2004-02-20 | 2004-02-20 | 快速纠双错bch码译码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410005777 CN1561005B (zh) | 2004-02-20 | 2004-02-20 | 快速纠双错bch码译码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1561005A true CN1561005A (zh) | 2005-01-05 |
CN1561005B CN1561005B (zh) | 2010-12-08 |
Family
ID=34439690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410005777 Expired - Fee Related CN1561005B (zh) | 2004-02-20 | 2004-02-20 | 快速纠双错bch码译码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1561005B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252361B (zh) * | 2007-10-11 | 2011-12-21 | 国民技术股份有限公司 | 一种支持预搜索的面积紧凑型bch并行译码电路 |
CN102045073B (zh) * | 2009-10-26 | 2013-04-17 | 成都市华为赛门铁克科技有限公司 | 一种bch码译码方法和装置 |
US9906240B2 (en) | 2015-06-03 | 2018-02-27 | SK Hynix Inc. | One-shot decoder for two-error-correcting BCH codes |
CN111030709A (zh) * | 2019-12-31 | 2020-04-17 | 中科院计算技术研究所南京移动通信与计算创新研究院 | 基于bch译码器的译码方法、bch译码器及应用其的电路 |
CN111224741A (zh) * | 2018-11-23 | 2020-06-02 | 中国科学院微电子研究所 | 卫星导航用bch码译码方法、译码器及卫星导航接收机 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5323402A (en) * | 1991-02-14 | 1994-06-21 | The Mitre Corporation | Programmable systolic BCH decoder |
JP2824474B2 (ja) * | 1992-02-17 | 1998-11-11 | 三菱電機株式会社 | 誤り訂正方式及びこの誤り訂正方式を用いた復号器 |
US5710782A (en) * | 1995-12-28 | 1998-01-20 | Quantum Corporation | System for correction of three and four errors |
GB9622539D0 (en) * | 1996-10-30 | 1997-01-08 | Discovision Ass | Galois field multiplier for reed-solomon decoder |
-
2004
- 2004-02-20 CN CN 200410005777 patent/CN1561005B/zh not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252361B (zh) * | 2007-10-11 | 2011-12-21 | 国民技术股份有限公司 | 一种支持预搜索的面积紧凑型bch并行译码电路 |
CN102045073B (zh) * | 2009-10-26 | 2013-04-17 | 成都市华为赛门铁克科技有限公司 | 一种bch码译码方法和装置 |
US9906240B2 (en) | 2015-06-03 | 2018-02-27 | SK Hynix Inc. | One-shot decoder for two-error-correcting BCH codes |
CN111224741A (zh) * | 2018-11-23 | 2020-06-02 | 中国科学院微电子研究所 | 卫星导航用bch码译码方法、译码器及卫星导航接收机 |
CN111224741B (zh) * | 2018-11-23 | 2022-08-12 | 中国科学院微电子研究所 | 卫星导航用bch码译码方法、译码器及卫星导航接收机 |
CN111030709A (zh) * | 2019-12-31 | 2020-04-17 | 中科院计算技术研究所南京移动通信与计算创新研究院 | 基于bch译码器的译码方法、bch译码器及应用其的电路 |
Also Published As
Publication number | Publication date |
---|---|
CN1561005B (zh) | 2010-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9007241B2 (en) | Reduced polar codes | |
CN1993892A (zh) | 用于编码和解码块低密度奇偶校验码的装置和方法 | |
CN101039119A (zh) | 编码与解码的方法及系统 | |
CN1228888A (zh) | 具有防差错的可变长度编码 | |
CN1705237A (zh) | 解码设备和解码电路 | |
CN1886898A (zh) | 使用基于子码元的代码来保护数据不被删除 | |
CN1714512A (zh) | 速率兼容的低密度奇偶校验(ldpc)码 | |
CN1146116C (zh) | 截短法尔码的差错捕获译码方法和装置 | |
CN1894857A (zh) | 使用Galois域乘法查询表的Reed-Solomon码的编码和解码 | |
CN1527499A (zh) | 用于低密度奇偶校验码解码的方法与系统 | |
CN1823474A (zh) | 解码装置及解码方法 | |
CN1348631A (zh) | 高效迭代解码 | |
CN101032083A (zh) | 用于编码和解码数据的方法和设备 | |
CN1976479A (zh) | 在无线网络中发送数据的方法和设备 | |
CN1757165A (zh) | 译码器内的部件块消息传送 | |
CN1623280A (zh) | 纠错译码器中的双chien搜索块 | |
CN101047391A (zh) | 低密度奇偶校验编码方法、装置及奇偶校验矩阵生成方法 | |
CN1572059A (zh) | 用于有信息的解码器的增强编码 | |
CN1254921C (zh) | 改进的哈夫曼译码方法和装置 | |
CN1467918A (zh) | 里得-索罗门解码器 | |
CN1165143C (zh) | 在通信系统中生成编码 | |
CN1822530A (zh) | 一种检测和纠正数据误码的方法及系统 | |
CN1561005A (zh) | 快速纠双错bch码译码器 | |
CN1317828C (zh) | 里德索洛蒙码或扩展里德索洛蒙码的译码方法和译码器 | |
CN1815940A (zh) | 检测和纠正经通信信道传输的码字里的数据位错误的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101208 Termination date: 20110220 |