CN1561005B - 快速纠双错bch码译码器 - Google Patents
快速纠双错bch码译码器 Download PDFInfo
- Publication number
- CN1561005B CN1561005B CN 200410005777 CN200410005777A CN1561005B CN 1561005 B CN1561005 B CN 1561005B CN 200410005777 CN200410005777 CN 200410005777 CN 200410005777 A CN200410005777 A CN 200410005777A CN 1561005 B CN1561005 B CN 1561005B
- Authority
- CN
- China
- Prior art keywords
- error
- decoder
- bch
- error position
- 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.)
- Expired - Fee Related
Links
Images
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)根据S0、S1、S2、S3、A、B和C的值判断发生误差数目;
所述的误差位置计算电路,是根据发生误差数目分别计算出误差位置,根据计算出的误差位置,取反数据得到纠正后的正确值。
单个误差情形下:所述的误差位置计算电路对误差位置的计算,其方法是根据式X1=S1/S0计算。
两个误差情形下:所述的误差位置计算电路对误差位置的计算,其方法是采用符合式的硬件电路直接求解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),那么
σ(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,那么:
将x=σ1z代入寻址多项式σ(x)中,可得:
z2+z+K=0 (15)
图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)对误差位置的计算,其方法是采用符合式的硬件电路直接求解z2+z+K=0根Z1和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 CN1561005A (zh) | 2005-01-05 |
| CN1561005B true 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) |
Families Citing this family (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 |
| CN111224741B (zh) * | 2018-11-23 | 2022-08-12 | 中国科学院微电子研究所 | 卫星导航用bch码译码方法、译码器及卫星导航接收机 |
| CN111030709A (zh) * | 2019-12-31 | 2020-04-17 | 中科院计算技术研究所南京移动通信与计算创新研究院 | 基于bch译码器的译码方法、bch译码器及应用其的电路 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02279022A (ja) | 1989-04-20 | 1990-11-15 | Fujitsu Ltd | Bch復号化回路 |
| US5323402A (en) * | 1991-02-14 | 1994-06-21 | The Mitre Corporation | Programmable systolic BCH decoder |
| US5537429A (en) * | 1992-02-17 | 1996-07-16 | Mitsubishi Denki Kabushiki Kaisha | Error-correcting method and decoder using the same |
| CN1176714A (zh) * | 1995-12-28 | 1998-03-18 | 昆腾公司 | 用于三错校正和四错校正的改进系统 |
| CN1181664A (zh) * | 1996-10-30 | 1998-05-13 | 迪维安公司 | 用于里德-索罗门译码器的有限域乘法器 |
-
2004
- 2004-02-20 CN CN 200410005777 patent/CN1561005B/zh not_active Expired - Fee Related
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02279022A (ja) | 1989-04-20 | 1990-11-15 | Fujitsu Ltd | Bch復号化回路 |
| US5323402A (en) * | 1991-02-14 | 1994-06-21 | The Mitre Corporation | Programmable systolic BCH decoder |
| US5537429A (en) * | 1992-02-17 | 1996-07-16 | Mitsubishi Denki Kabushiki Kaisha | Error-correcting method and decoder using the same |
| CN1176714A (zh) * | 1995-12-28 | 1998-03-18 | 昆腾公司 | 用于三错校正和四错校正的改进系统 |
| CN1181664A (zh) * | 1996-10-30 | 1998-05-13 | 迪维安公司 | 用于里德-索罗门译码器的有限域乘法器 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN1561005A (zh) | 2005-01-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11784666B2 (en) | Decoding signals by guessing noise | |
| US10547332B2 (en) | Device, system and method of implementing product error correction codes for fast encoding and decoding | |
| US8799740B2 (en) | Signal segmentation method and CRC attachment method for reducing undetected error | |
| CN103888148B (zh) | 一种动态阈值比特翻转的ldpc码硬判决译码方法 | |
| CN101814922B (zh) | 基于bch码的多位错纠错方法和装置以及存储系统 | |
| US8694872B2 (en) | Extended bidirectional hamming code for double-error correction and triple-error detection | |
| CN111628780B (zh) | 数据编码、解码方法及数据处理系统 | |
| JP2008052743A (ja) | エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置 | |
| US11601139B2 (en) | Methods and apparatus to determine and apply polarity-based error correction code | |
| US7392461B2 (en) | Decoding for algebraic geometric code associated with a fiber product | |
| CN102545914B (zh) | Bch编译码方法及装置 | |
| CN1561005B (zh) | 快速纠双错bch码译码器 | |
| CN107688506B (zh) | 一种流水结构的bch译码系统 | |
| CN101983481A (zh) | 用于发送的设备和方法、用于接收的设备和方法以及程序 | |
| CN101567696A (zh) | 一种参数可变的bch码编码器及译码器 | |
| US20100174966A1 (en) | Device and method providing 1-bit error correction | |
| KR101226439B1 (ko) | 리드-솔로몬 디코더, 이를 포함하는 메모리 시스템 및 디코딩 방법 | |
| US8255777B2 (en) | Systems and methods for locating error bits in encoded data | |
| US8296632B1 (en) | Encoding and decoding of generalized Reed-Solomon codes using parallel processing techniques | |
| CN102201881B (zh) | 一种卷积交织的盲识别方法 | |
| CN1134897C (zh) | 里德-索罗门码的快速译码方法及编译码器 | |
| CN102568607A (zh) | 一种优化的bch解码器 | |
| CN120388598A (zh) | 纠错码电路、修复系统及存储器 | |
| Kumar et al. | High-speed and parallel approach for decoding of binary BCH codes with application to flash memory devices |
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 |