背景技术
嵌入式产品的数据存储和管理是嵌入式产品开发中一项必不可少的研究课题。随着Flash Memory存储器速度快、容量大、成本低的特点被越来越多的企业所认可,Flash Memory被广泛的用作各种嵌入式产品的存储器件。并且针对不同的产品应用,Flash Memory作为当前嵌入式系统的主流存储设备,以各种各样不同的形式被广泛应用于人们的生活当中。但是Flash Memory的快速发展,也使数据存储安全成为当前各种嵌入式产品发展的瓶颈。由于Flash Memory制造工艺与芯片集成度的提高,日常生活中使用的Flash Memory的存储阵列有可能出现数据错误,如数据在写入和读出的过程中可能会由于信号干扰发生错误;又如有些数据位可能会因为没有达到阈值电压而产生错误。因此,需要对Flash Memory中的数据使用ECC校验的方法确保其内部数据区的数据安全性。
在Flash的差错类型测试中显示错误是以位的形式分散在整个数据块中的,所以具有可控、随机错误纠错能力的BCH码适于Flash Memory的纠错。由于当前Flash Memory制造工艺以及芯片集成度的提高,比特错误率也在不断增大。在研究Flash Memory错误率的过程中可以发现,随着内部数据区比特错误率的不断提高,页错误率(Page Error Ratio , PER)也在不断提高,为满足数据区的安全需求,必须提高ECC校验模块的纠错能力。
BCH串行编码电路每次只能处理一个比特位的数据,面对大规模数据的处理能力非常低,所以无法满足Flash Memory传输效率的要求。针对以上缺点,设计一种BCH并行编码电路可以一次处理多比特位的数据,使其满足Flash Memory传输效率的要求。
发明内容
本发明要解决的技术问题是提供一种BCH并行编码电路,对闪存中可能出现随机错误的问题提出了行之有效的解决方案。
本发明采用如下技术方案实现发明目的:
一种BCH并行编码电路,其特征在于,包括:
8位信息输入端mi,0<=i<8;
一组校验码寄存器bj,1=<j<=t,t为校验码寄存器的个数;
一组异或电路组S1j,1=<j<=t,t为校验码寄存器的个数,所述每组异或电路组S1j都包括8个异或电路;
所述8位信息输入端mi分别都连接到异或电路组S1j;
所述校验码寄存器bj按照每8个一组的顺序分为t组Bj,1=<j<=t,所述每组校验码寄存器组Bj对应连接到所述异或电路组S1j,所述异或电路组S1j的输出端对应分别连接到选择组器Gj,1=<j<=t,所述选择器组Gj的输出端对应连接到异或电路组二S2j,1=<j<=t,所述每组校验码寄存器组Bj的上一组校验码寄存器组Bj-1的最后一个校验码寄存器也对应连接到所述异或电路S2j,所述异或电路S2j的输出端对应连接到校验码寄存器组Bj中对应的校验码寄存器上。
作为对本技术方案的进一步限定,所述校验码寄存器组Bj具体为[b1,b2,…b8] 、[b2,b3,…b9] 、…[bj,bj+1,…bj+7],当j+7>t时,再依次循环选取校验码寄存器b1、b2、b3、…b7,形成一个闭合的循环,直到将所述校验码寄存器bj分为t组。
与现有技术相比,本发明的优点和积极效果是:本发明可以在一个时钟周期内同时处理8位信息比特位,将8比特位数据输入并行编码电路中,其对应的校验码寄存器将会进行更新,当所有的信息码字输入结束以后,得到的校验码寄存器值即为生成的校验码。对闪存中的随机错误进行纠错,改进后的BCH并行编码电路在编码效率上获得了显著的提高,满足了Flash Memory传输效率的要求。
具体实施方式
下面结合附图和优选实施例作更进一步的详细描述。
参见图1,首先介绍BCH串行编码算法:
BCH串行编码电路是系统循环码的一种,所以从原理上可以通过系统编码电路进行实现,而一个系统编码电路从原理上将经过以下三个步骤进行译码:
(1)将信息码字m(x)左移
n-k位,即用
乘以消息多项式
m(
x),即
,其中, m(x)是关于x的多项式,将m(x)中的关于x的各项系数左移
n-
k位,相当于x
n-k m(x);
其次,介绍BCH码生成多项式g(x)的生成公式:
设
是
(
表示有限域GF(2)的m次扩域,m由纠错能力t决定)的本原域元素,那么存在以
,
,…,
为根的二进制BCH码的生成多项式
式中,
是
i为自然数,的最小多项式,
t为BCH码的纠错能力。所谓最小多项式,首先必然是不可约多项式,其次最小多项式的根必然是
上的元素,满足这两个条件的以
为根的,
上的次数最低的首一不可约多项式,称为最小多项式。
设计一个BCH并行编码算法可以在一个时钟周期内同时处理8位信息比特位,那么其在一个时钟周期内处理8比特位后的校验码寄存器应与串行编码器处理8个时钟后的校验码寄存器结果一致。而并行编码电路的关键就是求出时刻T与时刻T+8之间检验码寄存器与并行输入的8位比特信息码字之间的关系,求出整个关系矩阵,就可以得到并行BCH编码电路的构造方法。
根据BCH串行编码算法推导出8位比特位并行关系矩阵。
假设
T 1时刻为当前并行编码电路的输入初始时刻,
T 2时刻为一个8位信息比特位输入后的结束时刻,
,
,…,
,
分别表示
l个校验码寄存器在
T 1时刻的存储内容,
,
,…,
,
分别表示
l个校验码寄存器在
T 2时刻的存储内容,
l为校验码寄存器的数量。由图1串行编码电路的连接关系我们可以看到某一校验码寄存器的更新,只与其对应的生成多项式系数g
i、该寄存器左边紧接的校验码寄存器内容以及输入的信息比特位有关,且存在如下关系:
,其中
表示
T 2时刻
b i 寄存器的存储内容,
表示从
T 1时刻到
T 2时刻所输入的信息比特位,
g i 为
b i 寄存器所对应的生成多项式系数,如图1所示。根据图1所示的反馈电路的连接关系,T
2时刻的校验码寄存器应更新为:
将其改写成矩阵形式如式(3)所示:
由上述矩阵所示,除了第一列是生成多项式的系数,其余剩下的矩阵阵列是一个
阶的矩阵。这个矩阵阵列的前
l-1行是一个
的单位矩阵,最后一行全零。所以这个关系矩阵的关键元素是生成多项式的系数,只要生成多项式的系数确定,关系矩阵
F也就随之确定。
为简化表达,分别设:
。
则上述矩阵可表示为:
式 (4)
上式是时钟T 2时刻校验码寄存器的值与输入信息码字M(T 2)以及时钟T1时刻的校验码寄存器值的关系式。根据这个关系式,可以推导出并行8比特位输入结束时钟T+8时刻的校验码寄存器的值与时钟T时刻到T+8时刻的各个输入信息M(T+i)(1≤i≤T2-T1)以及时钟T时刻的校验码寄存器值的关系如下:
可以用数学归纳法证明Fi与Fi-1之间存在如下关系:
式(6)
式(6)表示F
i的第一列由
确定,F
i剩下的L-1列与F
i-1对应的L-1列相同。
根据上述式(5)和式(6)可以得到一个迭代公式:
式(7)中F8即为需要求出的BCH并行编码电路的关系矩阵,b(T)为T时刻校验码寄存器值,M(T)为输入的8比特位数据。当前下面解释怎样求出该关系矩阵F8,即计算出矩阵F8的各行各列值。由于矩阵F的各行各列值为生成多项式g(x)的各项系数,所以F中g 0,g 1,…,g l-1都是已确定的生成多项式的从低到高的各项系数。由此可以计算出关系矩阵F8,且F8应为阶矩阵。由上关系式可以设计合适的BCH编码电路。
一种BCH并行编码电路,其特征在于,包括:
8位信息输入端mi,0<=i<8;
一组校验码寄存器bj,1=<j<=t,t为校验码寄存器的个数;
一组异或电路组S1j,1=<j<=t,t为校验码寄存器的个数,所述每组异或电路组S1j都包括8个异或电路;
所述8位信息输入端mi分别都连接到异或电路组S1j;
所述校验码寄存器bj按照每8个一组的顺序分为t组Bj,1=<j<=t,所述每组校验码寄存器组Bj对应连接到所述异或电路组S1j,所述异或电路组S1j的输出端对应分别连接到选择组器Gj,1=<j<=t,所述选择器组Gj的输出端对应连接到异或电路组二S2j,1=<j<=t,所述每组校验码寄存器组Bj的上一组校验码寄存器组Bj-1的最后一个校验码寄存器也对应连接到所述异或电路S2j,所述异或电路S2j的输出端对应连接到校验码寄存器组Bj中对应的校验码寄存器上。
所述校验码寄存器组Bj具体为[b1,b2,…b8] 、[b2,b3,…b9] 、…[bj,bj+1,…bj+7],当j+7>t时,再依次循环选取校验码寄存器b1、b2、b3、…b7,形成一个闭合的循环,直到将所述校验码寄存器bj分为t组。
BCH编码电路的设计就是求出校验位的过程,假设需要求出的BCH校验位为 t位,那么可以根据式(7)设计t个BCH编码子电路,且每个编码子电路的设计如图3所示,图中k为当前所要求出的校验位处于全部检验位中的位置,mi(0<=i<8)表示并行输入的8位信息码字, bk表示第k位校验码寄存器的当前值,gk表示校验码寄存器bk对应关系矩阵F8第k列的各项系数,Gj为根据关系矩阵F8每列系数制作的选择器,并行8位编码电路的工作流程如下:
(1)输入编码电路的8位信息码字mi首先与以bk为最高位的8个校验码寄存器当前值进行一次异或运算;
(2)根据关系矩阵的各项系数gk选取异或的结果,选取对应关系矩阵系数gk为1的异或结果,并将其再进行一次异或运算;
(3)将(2)中得到的异或结果与bk-8进行最后一次异或可得到bk值。
如上所述,将8比特位数据输入并行编码电路中,其对应的校验码寄存器将会进行更新,当所有的信息码字输入结束以后得到的校验码寄存器值即为生成的t位校验码。
当然,上述说明并非对本发明的限制,本发明也不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也属于本发明的保护范围。