一种基于fpga的抗多位错误翻转rs码检错纠错系统的制作方法

文档序号:7515710阅读:244来源:国知局
专利名称:一种基于fpga的抗多位错误翻转rs码检错纠错系统的制作方法
技术领域
本发明涉及一种检错纠错系统,特别涉及一种可以纠正基于SRAM的存储器多位错误翻转的基于FPGA的抗多位翻转RS码检错纠错系统。
背景技术
基于SRAM的存储器器件已经广泛应用于各类航天器件以及卫星上,但是由于太空中的高能粒子撞击以及电磁辐射等恶劣的环境,将导致基于SRAM的存储器件逻辑状态发生翻转原来存储位的"0"变为"I",或者"I"变为"0",造成系统功能紊乱。而随着工艺尺寸进入纳米时代,芯片上晶体管的密度越来越高,密度的增高使得存储单元之间的距离逐渐减小,距离的减小意味着以上这种错误可能造成多个单元的状态发生错误的翻转,这就是多位错误翻转(Multiple Bits Up sets, MBUs)。美国NASA宇航局的JPL实验室通过一系列的试验发现在Virtex-4 (90nm)系列的FPGA中MBUs的发生概率几乎是 Virtex-II (130nm)系列的3倍,是Virtex(220nm)系列的69倍,这证明了随着工艺尺寸的降低,FPGA中MBUs的发生概率会越来越高,而FPGA中包含大量的SRAM存储单元,它们对于尺寸的变化所导致的MBUs更为敏感。很多的辐射实验也表明存储器中MBUs与工艺密切相关,在90nm时,存储器中2位MBUs的发生概率约为60%,当工艺为65nm时,3位和4位MBUs的概率达到了 45%,而且随着工艺进入亚微米量级(小于90mm)时,MBUs引起的错误翻转位数已经达到13位。为了对抗存储器数据的多位错误翻转,有人发明了一种可用于大容量存储器的RS (256,252)码纠错译码芯片(公开号CN 1773863A)。该纠错译码芯片的乘法和求逆运算运用查表和模加运算实现,由于是在GF(28)域,查表法需要大量的资源,以大量的面积获取速度,有些得不偿失;其次,没有考虑到当信息位无错码时,可以停止chien搜索,终止纠错,因为没必要纠错;再次,没有考虑到当错码个数大于纠错能力时,可以放弃纠错,因为会越纠越错;最后,没有系统的RS编码,RS码只有在数据编码之后才可以译码纠错,这个发明的芯片并不能做到即插即用。还有人发明了相似的一种基于FPGA的高速RS编译码器实现方法(CN 102122964A),采用三级流水线实现译码,使用双时钟驱动,以及大量的常系数乘法器,这些方法虽然能在一定程度上提高速度,但是对于最重要的最耗资源的关键方程求解部分却未有改善,虽然将常数乘法器转换为纯组合逻辑的异或运算,但是多级的纯组合逻辑只会拖慢系统速度,大大影响系统的速度和性能,这并不适合实际的工程应用。因而,设计一个能够从数据写入存储器之初就开始进行编码防护,直到从存储器读出数据时,再进行译码保护的、即插即用的、耗费资源少、效率较高的、可以用来加固容易发生多位错误翻转的存储器的检错纠错系统显得尤为必要,本发明基于FPGA的抗多位错误翻转RS码检错纠错系统就应运而生。

发明内容
本发明的目的在于,提供一种对存储器的多位错误翻转进行检错纠错的RS码检错纠错系统,使得写入存储器中的数据首先通过RS码检错纠错系统编码后存入存储器,当存储器遭受多位错误翻转时,RS码检错纠错系统能够通过译码将错误检测出来并纠正。本发明的技术方案是一种基于FPGA的抗多位错误翻转RS码检错纠错系统,它包括控制电路、编码器、存储器、译码器;其中译码器包括校验子计算电路、chien搜索电路、关键方程求解电路、错码个数计数电路、错误图样FIFO、纠错电路。控制电路与编码器、译码器的错码个数计数电路、以及chien搜索电路相连接,控制数据的读写操作,以及根据错码个数计数电路的输出产生控制信号。在待保护数据写入存储器之前,控制电路首先控制待保护数据经过RS编码器,产生校验数据,将校验数据置于待保护数据后面一起写入存储器;k位信息位置于第(n-1)位到第(n-k)位,(n-k)位校验位置于第(n_k_l)位到第0位。编码器采用以生成多项式g(x)为模的除法电路,利用线性反馈移位寄存器实现,用于对待保护数据进行编码产生相应的校验位;其中的乘g。,gl,g2,. . .,g2t-!运算采用常数乘法器实现。存储器为SRAM型,用于存储待保护数据和相应的校验位,且校验位位于待保护信息数据后面。校验子计算电路,采用Horner准则-嵌套的乘累加实现,校验子计算电路的乘法器采用加D触发器分割的常数乘法器实现,用于计算校验子的值,并将校验子序列S串行输出到关键方程求解电路。关键方程求解电路,采用改进的无逆BM迭代算法实现,用于计算错误位置多项式O (X)和错误值多项式《 (x)的系数;关键方程求解电路的乘法运算采用基于弱对偶基的比特并行乘法器实现,关键方程求解电路的平方运算采用常规基实现;其中的改进的无逆的BM迭代算法采用反向时钟控制,即在时钟上升沿计算A (k+1),在时钟下降沿计算A(k+1),以便在求出A(k+1)的值后,能够马上用于计算A(k+1) ;chien搜索电路用于搜索使错误位置多项式O (X) =0的根。错码个数计数电路用于计数使错误位置多项式O (X) =0的根的个数,并根据错码情况向控制电路输出相应的信息。错误图样FIFO,在FPGA上直接实现,用于把错误值计算模块计算出的错误值依次缓存到FPGA芯片的错误图样FIFO中。错误值计算电路,采用Forney算法实现,其中的有限域元素求逆和求幂运算,均采用查ROM表方法实现。编码器和译码器均是在一片Xilinx Virtex-4系列器件XC4VLX15上实现的。本发明具有积极的效果(I)采用错码个数计数电路,避免了错码个数大于纠错能力时,出现越纠越错的现象;避免了信息位无错时,花费资源进行chien搜索,纠正没必要的错误,提高了系统运行速度和系统可靠性;(2)针对不同的编译码步骤,使用最适合的乘法器,使效率最高,易于在FPGA上快速高效可靠的实现;(3)本发明的RS(8,4)码检错纠错系统在GF(24)域上,可以纠正最多连续Sbits错误,可靠性比较高,且比较适合计算机的字长;并且可以即插即用。


图I为本发明提供的一种基于FPGA的抗多位错误翻转RS码检错纠错系统总体结构图。图2为本发明提供的一种基于FPGA的抗多位错误翻转RS码检错纠错系统编码模块图。图3为本发明提供的GF(24)域中常数乘法器乘a 2电路结构图。图4为本发明提供的校验子计算模块实现电路结构图。、
图5为本发明提供的对偶基实现的比特并行乘法器框图。图6为本发明提供的chien搜索模块判断Iv1是否为错误位置的电路结构图。
具体实施例方式请参阅图1,本发明所述的一种基于FPGA的抗多位错误翻转RS码检错纠错系统包括控制电路、编码器、译码器、存储器;其中译码器包括校验子计算电路、chien搜索电路、关键方程求解电路、错码个数计数电路、错误图样FIFO、纠错电路。请参阅图2,本发明中,所述的编码器,采用以生成多项式g(x)为模的除法电路,利用线性反馈移位寄存器实现编码,其求余运算用(n-k)级移位寄存器实现。当控制电路控制待保护数据写入存储器时,首先控制待保护的数据进入编码器。编码具体步骤为(I)首先寄存器Rtl R2w全部清0,即寄存器Rtl R3全部清0,当时钟信号到来时,开关接通A点,同时开关C闭合,输入待编码数据,并将之分成两路,一路直接输出,另一路送入除法电路进行移位求余运算,每个时钟周期移位一个字节;(2)当已经经历k个时钟信号的时候, 待编码的信息全部输入,完成求余运算,此时移位寄存器R0 R3里存的就是所求的余数,即为RS码的校验位;(3)当k+1个时钟信号到来的时候,开关接通B点,同时开关C断开,寄存器中的数据依次移位输出,在经过2t个时钟周期后,寄存器中数据全部移出,这2t个校验位跟在原来输入原始信息数据的后面,组成RS (n,k)码输出,完成一组RS码编码;(4)下一个时钟到来的时候,寄存器全部清零,重复步骤(I) (2) (3) (4),完成下一组数据的编码。编码完毕后,将信息位与产生的校验位一起写入所述的SRAM型存储器。(注2t = n-k, t为最大可纠错码字个数,k为每个码字包含的二进制个数,(n-k)为校验码字个数)请参阅图3,本发明中,所述的编码模块的乘法器采用常数乘法器组成。对于GF (24)域的RS编解码,GF (24)域中每个元素都可以表示成它的自然基底{1,a , a2, a3}的线性组合a = a0+ax a +a2 a 2+a3 a 3,由GF (24)域的本原多项式P (x) = 1+x+x4,得1+ a =a 4,在a乘以a 2后,则其乘积项a 2 (a0+a! a +a2 a 2+a3 a 3) = a0 a 2+a: a 3+a2 a 4+a3 a 5= a0 a 2+a: a 3+a2 (1+ a ) +a3 ( a + a 2)= a2+ (a2+a3) a + (a0+a3) a 2+a1 a 3— a, o+&f I a +£if 2 a +£if 3 ct其中,
口。— “2
a.=a0 + a,j , at=a0+ O3这样,即把复杂的乘法器转换成常数乘法器,电路转换成用异或门电路构成。这样的常数乘法器可以大大节约硬件资源,提高系统的运行速度。请参阅图4,本发明中,所述的校验子计算模块,其中的校验子S的计算方式是采用Horner准则,利用嵌套的乘累加运算计算校验子。校验子计算公式Sj = R( a J) = rn_j ( a J)n_1+rn_2 ( a J)n^2+. +!T1 a +r0
= ( ((rn_! a J+rn_2) a J+rn_2) a J+. +r:) a J+r0将n = 8带入上式,校验子为


校验子计算步骤(I)初始化,寄存器DO D3全部清零。(2)接收码字移入校验子计算电路,每周期移入一位接收码字;(3) 8个时钟周期结束的时候,接收码字全部移入,每个寄存器中存储的就是所求的校验子。所计算出的校验子S如果为零,即无错码,此时直接将原始数据去掉校验位后输出;如果校验子S不为零,则输出sC_done的控制信号,启动下一步关键方程求解电路工作。
请参阅图5,本发明中,译码器电路的乘法器采用弱对偶基实现的比特并行乘法器实现。整个乘法器分成四个部分自然基到弱对偶基坐标变换模块、对偶基系数扩展模块、乘法模块、弱对偶基到自然基坐标变换模块。其中A、B为自然基表示的两个元素,B0 B3为将自然基B转换为弱对偶基表示,C为元素A和元素B的乘积。具体实现电路如下GF (24)域本原多项式为P(x) = 1+x+x4GF(24)域的自然基底为{1, a , a2, a3}对应的最优弱对偶基为{1,a 3,a 2,a }从自然基到弱对偶基的变换可写为
弱对偶基下的扩展系数计算公式为bj = b* +bl+* (I = 0,1,2)可进一步与成
可以得到GF (24)域下弱对偶基乘法公式为

从弱对偶基到自然基的坐标变换关系为cO=cO*
C1 = Ci*< t
C2 =C2
C3 = C1*关键方程求解电路中的平方运算用常规基实现。在GF(2m)域中,对于所有的正整数都存在一个常规基,这个常规基可以由GF(2m)域中的一个元素a来构成一
个基的集合# =卜,《2,《4,...#2°"1,则GF(2m)域中任一元素P可以被唯一表示为
P = b0a + bla2 +b2a4 +,式中 bQ, b1,b2,, Iv1 均是取自于 GF (2m)域中元素且采
用模二加运算。采用# =卜,《2, 4,...,《2-_11作为常规基,有如下的性质(I)对于任意 a, 3 G GF(2m),有(a+3)2 = a2+^2(2)对于任意元素a有a2" =cc(3)若a是GF(2m)域中m阶本原多项式P (x)的一个根,则GF (2m)中的a,a2,a4,...,a2构成P (X)的个完备的根集。由以上的性质可得P1 =b0a2 +bxaA ...+b^a1"= jQr + b0a2 + Ij1Cx4 +... + bm_2a2因此,以常规基来表示元素P时,P2的系数是P的一次循环移位。在关键方程求解电路中,可以用此常规基方法实现平方运算,将平方运算转换成非常适合FPGA实现的循环移位,会大大提高系统运行速率。关键方程求解电路,采用改进的BM算法求错误位置多项式0 (X),即BM算法中的A (x)0这种改进的BM算法避免了复杂的求逆运算,且需要的控制信号少,硬件实现更方便。A(H)(X)即为错误位置多项式,也即是BM迭代算法中的错误位置多项式0 (X)。以下是改进的BM迭代算法步骤(I)初始化A ( ) (X) =1,T(0) (X) =1,L(0) =0,y (0) = I, k = 0
L(k)(2)循环迭代,直到 k = S -I A(k+l\x) = Af S^j
J=O(3) A (k) (X) = Y(k)A (k) (x) - A (k+1)T(k+1) (x) x
(4)= >k \ Aw (x),△_ 本 0,或者2LW < k
⑷广)=丨邮),八(_=0,或者2#〉灸
_ +1 - Lm, Aik+l)本 0,或者< k

权利要求
1.一种基于FPGA的抗多位错误翻转RS码检错纠错系统,其特征在于,本发明包括控制电路、编码器、存储器、译码器;其中译码器包括校验子计算电路、chien搜索电路、关键方程求解电路、错码个数计数电路、错误图样FIFO、纠错电路。
2.根据权利要求I所述的一种基于FPGA的抗多位错误翻转RS码检错纠错系统,其特征在于,所述的控制电路与编码器、译码器的错码个数计数电路、以及chien搜索电路相连接;控制数据的读写操作,以及根据错码个数计数电路的输出产生控制信号。
3.根据权利要求I所述的一种基于FPGA的抗多位错误翻转RS码检错纠错系统,其特征在于,所述的编码器采用以生成多项式g(x)为模的除法电路,利用线性反馈移位寄存器实现,用于对待保护数据进行编码产生相应的校验位;其中的乘g Q,gl,g2,. . .,g2t-!运算采用常数乘法器实现。
4.根据权利要求I所述的一种基于FPGA的抗多位错误翻转RS码检错纠错系统,其特征在于,所述的存储器为SRAM型,用于存储待保护数据和相应的校验位,且校验位位于待保护信息数据后面。
5.根据权利要求I所述的一种基于FPGA的抗多位错误翻转RS码检错纠错系统,其特征在于,所述的校验子计算电路,采用Homer准则-嵌套的乘累加实现,校验子计算电路的乘法器采用加D触发器分割的常数乘法器实现,用于计算校验子S的值。
6.根据权利要求I所述的一种基于FPGA的抗多位错误翻转RS码检错纠错系统,其特征在于,所述的关键方程求解电路,采用改进的无逆BM迭代算法实现,用于计算错误位置多项式0 (X)和错误值多项式《 (x)的系数;关键方程求解电路的乘法运算采用基于弱对偶基的比特并行乘法器实现,关键方程求解电路的平方运算采用常规基实现;其中的改进的无逆的BM迭代算法采用反向时钟控制,即在时钟上升沿计算A (k+1),在时钟下降沿计算A(k+1),以便在求出A(k+1)的值后,能够马上用于计算A(k+1)。
7.根据权利要求I所述的一种基于FPGA的抗多位错误翻转RS码检错纠错系统,其特征在于,所述的chien搜索电路,乘法运算采用基于对偶基的比特并行乘法器实现,用于搜索使错误位置多项式0 (X) = 0的根。
8.根据权利要求I所述的一种基于FPGA的抗多位错误翻转RS码检错纠错系统,其特征在于,所述的错码个数计数电路,用于计数使错误位置多项式0 (X) =0的根的个数,并根据错码情况向控制电路输出相应的信息。
9.按权利要求I所述的一种基于FPGA的抗多位错误翻转RS码检错纠错系统,其特征在于,所述的错误图样FIFO,在FPGA上直接实现,用于把错误值计算模块计算出的错误值依次缓存到FPGA芯片的错误图样FIFO中。
10.按权利要求I所述的一种基于FPGA的抗多位错误翻转RS码检错纠错系统,其特征在于,所述的错误值计算电路,采用Fomey算法实现,其中的有限域元素求逆和求幂运算,均采用查ROM表方法实现。
11.按权利要求I所述的一种基于FPGA的抗多位错误翻转RS码检错纠错系统,其特征在于,所述的编码器和译码器均是在一片Xilinx Virtex-4系列器件XC4VLX15上实现的。
全文摘要
本发明公开了一种基于FPGA的抗多位错误翻转RS码检错纠错系统,采用GF(24)域的缩短RS(8,4)码,它包括控制电路、编码器、存储器、译码器;在待保护数据写入存储器之前对其进行编码产生校验位,将产生的校验位置于待保护数据信息后面一起写入存储器;从存储器读数据时,首先经过译码模块纠错后再将数据读出。本发明可以纠正基于SRAM存储器的最大连续8bits错误翻转,从而对基于SRAM的存储器进行加固。
文档编号H03M13/15GK102751995SQ20121025610
公开日2012年10月24日 申请日期2012年7月20日 优先权日2012年7月20日
发明者张美杰, 徐飞, 李莹, 王宁, 王巍 申请人:天津工大瑞工光电技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1