[发明专利]用于并行BCH编码的电路、编码器及方法有效
申请号: | 200810065971.9 | 申请日: | 2008-01-22 |
公开(公告)号: | CN101227194A | 公开(公告)日: | 2008-07-23 |
发明(设计)人: | 彭洪 | 申请(专利权)人: | 炬力集成电路设计有限公司 |
主分类号: | H03M13/15 | 分类号: | H03M13/15;H04L1/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 519085广东省珠海市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 并行 bch 编码 电路 编码器 方法 | ||
技术领域
本发明涉及对数据进行纠错编码的技术领域,尤其涉及一种用于并行BCH编码的电路、编码器及方法。
背景技术
在各种各样的传输系统和网络中,为保证数据在对等端点间正确传输,需要一定的纠检错编码。在通信领域和消费类电子领域经常使用BCH码作为检错或纠错的依据。需要纠错或检错的数据通过BCH编码器生成校验码,并将校验码和原码同时发送出,然后在解码端解码并同时纠错或检错。所述BCH码取自Bose、Ray-Chaudhuri与Hocquenghem的缩写,是纠正多个随机错误的循环码,可以用生成多项式g(x)的根描述。对数据进行BCH编码的方式主要有两种,一种是串行编码方式,另一种是并行编码方式。
图1是一种常规的串行BCH编码器的原理图。其中输入序列为二进制序列m1 m2 m3…mK-2 mK-1 mK,Di为移位寄存器。ci是反馈序列的抽头系数,它的值为0或1,是BCH码的生成多项式g(x)=xN-K+1+cN-K-1xN-K+…+c1x+1中的系数。二进制序列的多项式表达式:比如输入序列为100100...001,mi代表的是0或者1,xi代表mi在序列中的位置,(i的范围是0~N-1)。图中符号为GF(2)的乘法器,为GF(2)的加法器,为选通控制器,GF是伽罗华域的意思,GF(2)指的是1位二进制占用的域元素空间。二进制序列m1 m2 m3…mK-2 mK-1 mK一位一位的输入编码器,输出完成以后寄存器序列D0…DN-K-1中保存的值就是校验码,此时选通控制器输出校验码序列。
但由于高速通信或者闪存控制器的数据传输速率非常快。例如闪存控制器向闪存芯片写入数据的时候,极限情况可以达到50MHz*8bit每秒,这时常规的BCH编码器的工作速度高达400MHz,并且运算的延迟很大(例如bch(8191,8048,23)至少要8191个时钟周期才能够完成编码),因此串行编码在速度要求很高的地方是不行的。其中bch(8191,8048,23)即bch(N,k,r)中具体的取值,其中N是码字的长度,也就是编码器输出的序列长度;K是有效信息序列的长度,也就是进入编码器的序列长度;r是最小半径。
而如果采用并行的方式对数据进行BCH编码,则可以在更短的时钟周期内完成编码,因此,现有技术中又出现了基于查找表的并行算法及相关的改进方法,其基本思路是:将长度为N的输入序列作为一个符号,这个符号有2N种组合。把这2N种序列的组合输入移位寄存器产生出对应的2N种输出序列。把这些输出序列作成一个表,以后运算时不再通过移位寄存器来运算,而是通过查表的方式来获得结果。
但此种方法在校验位比较多的时候,生成多项式g(x)的项数非常多(例如bch(8191,8048,23)的校验g(x)项数就有143个),如果输入序列的长度N=8191,则相对应的序列有28191种组合。生成序列的位宽为143位。因此需要28191*143位才能保存各种组合产生的序列。这种方法在实际上是不可能实现的。
在此基础上出现了进一步改进的方法,其方法是将输入序列的长度N减小(比如将长度减小到8),则新的查找表大小为2N·(N-K),其中(N-K)是移位寄存器的长度。再通过移位和异或等组合逻辑操作完成迭代运算。其原理如下:
1.假设输入序列的长度为K,用多项式可以表达为:
m(x)=mK-1xK-1+mK-2xk-2+…+m1x1+m0 (B1)
其中mi为1或者0,(i=0,1,2,3…k-1)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于炬力集成电路设计有限公司,未经炬力集成电路设计有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810065971.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:多功能高度可调保健枕头
- 下一篇:幕布盒
- 同类专利
- 专利分类