本发明涉及抗辐射加固电路领域,具体涉及一种基于4位相邻和3位突发纠错码的sram存储器加固方法及存储器系统。
背景技术:
电子器件可靠性是空间应用的重要指标之一。作为数据存储组件的存储器在电子系统中起着重要作用。它们广泛应用于片上系统(systemonachip,soc)和专用集成电路(applicationspecificintegratedcircuits,asic)中。在这些应用中,存储器面积是整个电路面积的主要组成部分。这使得存储器比其他组件遭受更多的空间辐射。因此,存储器的辐射敏感度已成为确保电子系统可靠性的关键问题。
在现代静态随机存取存储器(staticrandomaccessmemories,sram)中,单粒子翻转(singleeventupset,seu)和多位翻转(multiplebitupset,mbu)是辐射诱导软错误发生的两个主要原因。对于具有大特征尺寸的晶体管,辐射事件只影响一个存储单元,这意味着只有seu发生。这种情况下使用具有纠正一位错误检测两位错误(singleerrorcorrection-doubleerrordetection,sec-ded)的编码足以保护存储器免受辐射。随着半导体技术进入深亚微米(deepsubmicron,dsm)时代,临界电荷持续下降,并且存储单元的面积持续缩小,这使得更多的内存单元受到空间辐射的影响,示意图如图1所示。具有纠正相邻位错误或多位突发错误的错误纠正码(errorcorrectioncodes,ecc)逐渐受到青睐。虽然多位错误纠错码可以纠正不限于相邻位的任何错误模式中的多位错误,但是解码的复杂性和编码矩阵纬度的大小限制了它们的使用。同时,从mbus的生成原理来看,mbus的发生取决于二级粒子的初始入射角和散射角,因此在mbus中相邻位错误是主要错误模式。因此,具有相邻位错误纠正能力的ecc在存储器加固设计中成为主流。
很多具有相邻位校正能力的编码被提出,主要有:双相邻纠错(doubleadjacenterrorcorrection,daec),三相邻纠错(tripleadjacenterrorcorrection,taec)和3位突发纠错码(bursterrorcorrection,bec)几种类型。如图1所示,特征尺寸由dsm进入udsm范围,存储器单元面积进一步缩小,甚至存在具有原子尺寸晶体管的存储器。离子的离化范围可以包括在字线方向上三个以上的存储单元。这意味着sec-daec-taec编码可能无法保证存储器的可靠性。需要具有更高纠正能力的编码。而且在一般情况下,纠正能力与校验位数量具有正相关性,这使得编解码电路复杂度大大增加。
技术实现要素:
本发明的目的是为了解决现有技术的编码电路复杂、难以保证存储器可靠性的缺点,而提出一种基于4位相邻和3位突发纠错码的sram存储器加固方法及存储器系统。
一种基于4位相邻和3位突发纠错码的sram存储器加固方法,包括:
步骤一、构建维度(n-k)×(n-k)的单位矩阵作为初始矩阵h;
步骤二、从2n-k-1种待选列中选择列向量添加到初始矩阵h的右侧;
步骤三、将新添加的列与初始矩阵h中所有列向量进行错误模式计算,得到校正子;
步骤四、判断所述校正子是否在校正子集中;若否,则将初始矩阵h与新添加的列共同作为新的初始矩阵;若是,则从2n-k-1种待选列中重新选择一个未选择过的列向量进行添加;若从2n-k-1种待选列中所有的列都在校正子集中,则将上一次成功添加的列和与其对应的校正子分别从h矩阵和校正子集中出去,然后执行步骤二;直到满足预设的矩阵的维度。
一种基于4位相邻和3位突发纠错码的抗辐射加固sram存储器系统,包括依次连接的输入端、编码器、sram存储器、译码器以及输出端;所述编码器与解码器中使用的奇偶校验矩阵通过权利要求3所述的基于4位相邻和3位突发纠错码的sram存储器加固方法得到。
一种基于4位相邻和3位突发纠错码的sram存储器加固方法,包括:
步骤一、构建权重向量(a0,a1,……an-k-1),每个元素表示;列向量的权重为列向量中值为1的元素的个数;a1,……an-k-1的初值均为n-k;将权重向量中的元素记为ai,其中i的初值为0,ai的初值为2。
步骤二、,从2n-k-1种待选列中选择权重不大于ai的列向量,作为备选列向量。
步骤三、将备选列向量加到维度为(n-k)×(n-k)的初始矩阵h的右侧;初始矩阵为单位矩阵。
步骤四、将新添加的列与初始矩阵h中所有列向量进行错误模式计算,得到校正子;
步骤五、判断所述校正子是否在校正子集中。
若否,则将初始矩阵h与新添加的列共同作为新的矩阵;并判断新的矩阵是否满足维度要求,如果满足,则将当前矩阵作为目标矩阵进行输出;如果不满足,则将ai+1的权重设置为2,令i加1,存储当前的权重向量,并返回执行步骤二;当前的权重向量用于记忆当前的搜索状态。
若是,则从2n-k-1种待选列中重新选择一个未选择过且符合权重条件的列向量进行添加,直至判断结果为否。
若从2n-k-1种待选列中所有的列都在校正子集中,则将ai的值加1,然后返回步骤二执行。
步骤六、将与sram存储器连接的编码器和译码器所基于的奇偶校验矩阵设置为目标矩阵,以实现加固。
本发明提出了一种在不增加额外的奇偶校验位的情况下将3位突发纠错(bec)码扩展为四位相邻纠错(quadrupleadjacenterrorcorrection,qaec)码的技术并利用此技术对存储器进行加固的技术。首先,规定了设计规则,然后基于传统的递归回溯算法,开发了具有权重限制功能和搜索状态记忆的新算法来查找符合这些规则的编码的h矩阵。利用该算法找到了16、32和64位数据位的qaec码的h矩阵。其中16位数据位的h矩阵是最优化的结果,32位数据位和64位数据位的h矩阵是基于一定计算时间内最优化的结果。最后根据提出的编码h矩阵利用verilog硬件描述语言(hdl)实现编码器与解码器电路,完成对存储器的加固设计。本设计在65nm工艺库下进行综合,结果表明本发明中的编码在实现纠正能力扩展的同时具有中等面积和延迟开销。
本发明的有益效果为:1、能够在不增加额外的奇偶校验位的情况下,即不提高冗余度的情况下,更高纠正能力;2、从面积优化部分可以看出,本发明中编码的编码器面积增加的百分比为10%~20%,编码器面积增加的百分比为25%~34%。从延迟优化部分可以看出,本发明中编码的编码器延迟增加的百分比为18%~28%,解码器延迟增加百分比为6%~13%。
附图说明
图1为粒子影响单元随集成电路工艺变化的示意图;箭头方向代表演化顺序;方形区域代表存储单元,圆形区域代表粒子的影响范围;
图2为本发明具体实施方式一的流程图;
图3为本发明具体实施方式九的流程图;
图4为本发明具体实施方式四的基于4位相邻和3位突发纠错码的sram存储器系统的结构示意图。
具体实施方式
具体实施方式一:本实施方式的基于4位相邻和3位突发纠错码的sram存储器抗辐射加固方法,如图2所示,包括:
步骤一、构建维度(n-k)×(n-k)的单位矩阵作为初始矩阵h。
步骤二、从2n-k-1种待选列中选择列向量添加到初始矩阵h的右侧。
步骤三、将新添加的列与初始矩阵h中所有列向量进行错误模式计算,得到校正子。
步骤四、判断所述校正子是否在校正子集中;若否,则将初始矩阵h与新添加的列共同作为新的初始矩阵;若是,则从2n-k-1种待选列中重新选择一个未选择过的列向量进行添加;若从2n-k-1种待选列中所有的列都在校正子集中,则将上一次成功添加的列和与其对应的校正子分别从h矩阵和校正子集中除去,然后执行步骤二;直到矩阵h满足预设的维度,并将满足预设维度的矩阵作为目标矩阵进行输出。
步骤五、将与sram存储器连接的编码器和译码器所基于的奇偶校验矩阵设置为目标矩阵,以实现加固。
下面针对编码设计对本发明做进一步的解释。
编码设计是本发明的核心部分,基于编码加固存储器技术的核心就是对所用编码的设计,编码的设计是否优化决定了编码纠正能力的高低和硬件开销的多少。本发明中,通过提出的搜索算法,得到了具有4位相邻和3位突发错误纠正能力的编码。
目标编码是二进制线性编码,遵循二进制线性编码规则。奇偶校验矩阵h与校正子s有以下关系:如果接收到的编码第i位发生错误,则校正子等于h矩阵对应第i列。如果接受到的编码中有多位错误,则校正子s等于这几位对应的h矩阵中几列的异或。所以如果一个编码可以被纠正或者发现,它遵循以下规则:
1)可纠正的限制:相应的校正子矢量在校正子集合中是唯一的。
2)可检测的限制:相应的校正子矢量不为零。本发明中的编码设计技术如下:
具有低冗余性的qaec编码设计技术从两个方面进行了说明:第一个部分为错误空间的可满足性问题。另一个部分为校正子唯一性可满足性问题。
1)错误空间的可满足性问题
对于具有k个数据位和c个校验位的编码,其输入取值有2k种二进制值。如果发生一位错误,有k+c种位置,一位单个错误的输出空间有(k+c)*2k种取值。如果发生相邻的错误,有k+c-1种位置,一位相邻错误的输出空间有(k+c-1)*2k种取值。如果连续发生n位错误,有k+c-(n-1)种位置,一位相邻错误的输出空间有(k+c-(n-1))*2k种取值。为了获得能够纠正这些错误类型的编码,各种错误类型的输出空间总和要小于等于总的输出空间值2k+c。本发明中的编码,要纠正3位突发和四位相邻的错误,总体错误类型的输出空间为((k+c-3)+(k+c-2)+(k+c-1)+(k+c)+(k+c-2))*2k,分别对应错误模式(…,1111,…)、(…,111,…)、(…,11,…)、(…,1,…)、和(…,101,…)的错误类型输出空间。基于错误空间满足定理,总体错误类型的输出空间与该编码总的输出空间之间的关系满足方程(1)。
2k(5(k+c)-8+1)≤2k+c(1)
本发明中所需的奇偶校验位数量与3位bec编码的相同。16个数据位的编码,校验位的数量为7,32个数据位的编码为8,64个数据位的编码为9。选择的奇偶校验位的数量符合方程(1)的要求。
2)校正子唯一性可满足性问题
从二进制线性码的角度来看,如果一种类型的错误模式可以通过使用ecc方法校正,则在该错误模式的校正子集合中,每个错误对应的校正子应该是唯一的。在本发明中可以纠正的错误模式有:(…,1,…)、(…,11,…)、(…,111,…)、(…,1111,…)和(…,101,…)几种类型。因此校正子唯一性的可满足性可以用以下公式表示:
s0i≠s0js1i≠s1js2i≠s2js3i≠s3js4i≠s4j(2)
s0i≠s1j≠s2k≠s3l≠s4m(3)
其中s0i代表一位错误的校正子,s1i代表相邻错误的校正子,s2i代表相邻三位错误的校正子,s3i代表突发三位错误的校正子,s4i代表相邻四位错误的校正子,校正子变量s0i,s1i,s2i,s3i,s4i是符合以下等式中的规则的h矩阵列的线性组合:
s0i=hi(4)
i,j∈[1,n],i≠j,等式(4)-(8)表示校正子和h矩阵列之间的具体关系。它也是用于设计校正子计算电路的依据。
从集成电路设计的角度考虑,优化ecc的解码器复杂度和解码延迟可以使用以下两个方案:1)最小化h的汉明重量:该方案通常可以通过在编码器和解码器的合成过程中使用最低数量的逻辑门来完成。2)最小化h最重行的汉明重量:编码和解码过程中的逻辑深度取决于具有最大延迟的逻辑路径。最小化最重行的汉明重量可以减少编码器和解码器的延迟。
递归回溯算法:首先,构建n-k维的单位矩阵作为初始矩阵。然后将相应错误模式的校正子添加到校正子集,具体过程为从具有2n-k-1种待选列中选择列向量添加到初始矩阵的右侧。此过程定义为添加操作,作为新添加列的校正子与目前h矩阵中所有列向量进行相应错误模式的计算,如果计算所得的校正子与校正子集中的校正子没有重合,则该列添加成功,否则重新选择一列进行添加。如果进行列添加操作时所有的待选列均失败,先前的一列和相应的校正子分别从h矩阵和校正子集中除去,继续进行列添加操作,直到生成完整的h矩阵,编码的设计过程如图2所示。通常,递归回溯算法需要大量的计算资源和计算时间。为了加快算法运算速度,首先我们采用十进制运算而不是二进制矩阵运算,将列向量转换成一个十进制数。一般来说,如果我们预期的代码存在,很容易获得第一个解决方案,但不一定是最优的。通过不同的优化标准,可以得到更好的解决方案。但是,搜索最佳解决方案需要整个搜索过程的完整结果,这在当前的计算条件下需要很长的时间。在本发明中由于16位数据位qaec编码位数较少,其h矩阵是用该遍历方法搜索。当编码位数增加时,可以使用在合理的计算时间内的最佳结果代替最佳方案,比如说本发明中后续给出的32位与64位数据位qaec编码的h矩阵。为了尽可能找到最优化的h矩阵,可以规定一些限定条件,比如说通过列权重限制方法减少添加到基础矩阵的列的数量,从而计算操作可以迅速覆盖整个周期列表,该查找过程的性能对于具有位数少的编码是非常有效的。但当数据位数达到32位或64位时,计算时间仍然很大。因此开发了基于搜索状态记忆的列权重限制算法来缩短搜索目标编码的时间成本。详细的算法流程如图3所示。如果解决方案存在,记录和更新被限制位的状态,进行下一位对应列重的设置。否则将列重ai设置为ai+1,随着程序约束的增加,目标编码将会生成。
根据以上优化规则利用基于搜索状态记忆的算法计算得到16位数据位、32位数据位和64位数据位的h矩阵。其中16个数据位的qaec编码(23,16)计算中遍历了所有情况,得到了符合要求的h矩阵集合,从集合中选出密度最低的h矩阵,分别为:
以及
在本发明中提到的针对16位的编码矩阵是最优的结果。但是对于32位与64位数据位的qaec编码,遍历所有情况所需的时间过长,所以本发明中所给出的矩阵是在一段合理的计算时间内所给出的最优化的结果。32个数据位的qaec编码(40,32)的奇偶校验矩阵分别为
以及
其中前一个32个数据位的矩阵是最小化h矩阵汉明重量的优化结果,后一个32个数据位的矩阵是最小化最大行重的优化结果。64个数据位的qaec编码(73,64)的奇偶校验矩阵为:
下面对本发明中的编码与文献[1]中的3位bec编码从冗余和复杂度两方面进行比较。
在冗余和复杂度方面,本发明中所提出的编码与现有技术中的编码保持相同数量的校验位。虽然新编码被优化以具有更高级的校正能力,但是冗余保持不变,并且存储器中校验位的区域仍然与之前相同。
具体实施方式二:本实施方式与具体实施方式一不同的是:初始矩阵h的列向量与列向量对应的校正子的关系为:如果接收到的编码第i位发生错误,则校正子等于h矩阵对应第i列;如果接受到的编码中有多位错误,则校正子s等于矩阵h中这几位对应的h矩阵中对应列向量的异或。
其它步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式与具体实施方式一或二不同的是:步骤三中,能够得到的校正子包括s0i,s1i,s2i,s3i,s4i,其中i表示矩阵h的第i列:校正子与矩阵h的列向量的关系为:
s0i=hi
其中s0i代表一位错误的校正子,s1i代表相邻错误的校正子,s2i代表相邻三位错误的校正子,s3i代表突发三位错误的校正子,s4i代表相邻四位错误的校正子,hi为h矩阵的第i列的列向量;⊕为异或运算。校正子在校正子集中的形式应当为s01或s23等将i带入为具体数值的形式。
其它步骤及参数与具体实施方式一或二相同。
具体实施方式四:本实施方式提供一种基于4位相邻和3位突发纠错码的sram存储器系统,如图4所示,包括依次连接的输入端、编码器、sram存储器、译码器以及输出端,编码器与解码器中使用的奇偶校验矩阵通过权利要求3所述的基于4位相邻和3位突发纠错码的sram存储器加固方法得到。
本实施方式利用编码设计部分得到的编码进行编码器和译码器设计,输入信息在编码器中进行编码,存储器接收并存储编码器对输入信息编码的结果,完成编码部分。在译码过程中,译码器对从存储器中读出的码字进行译码,并对存储器中的错误进行纠正。
根据具体实施方式一中的优化方案,递归回溯算法,分别找到了16位、32位和64位数据位的qaec码的h矩阵。需要注意的是本发明中所需的奇偶校验位数量与3位bec编码的相同。16个数据位的编码,校验位的数量为7,32个数据位的编码为8,64个数据位的编码为9。
使用时,在译码过程中,首先计算校正子,如果它为零,则说明码字正确,如果不等于零,等于某几列的异或,那么错误就发生在这几列对应的数据位和冗余位。发现错误位之后,将这些位取反,即得到正确的码字。
具体实施方式五:本实施方式与具体实施方式一至四之一不同的是:
编码器与解码器中使用的奇偶校验矩阵为:
其它步骤及参数与具体实施方式一至四之一相同。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是:
编码器与解码器中使用的奇偶校验矩阵为:
其它步骤及参数与具体实施方式一至五之一相同。
具体实施方式七:本实施方式与具体实施方式一至六之一不同的是:
编码器与解码器中使用的奇偶校验矩阵为:
其它步骤及参数与具体实施方式一至六之一相同。
具体实施方式八:本实施方式与具体实施方式一至七之一不同的是:
编码器与解码器中使用的奇偶校验矩阵为:
其它步骤及参数与具体实施方式一至七之一相同。
具体实施方式九:本实施方式与具体实施方式一至八之一不同的是:
编码器与解码器中使用的奇偶校验矩阵为:
其它步骤及参数与具体实施方式一至八之一相同。
具体实施方式五和六是16位数据位数据位的qaec码的h矩阵,类似地,具体实施方式七和八对应32位数据位的qaec码的h矩阵,具体实施方式九对应64位数据位的qaec码的h矩阵。
具体实施方式十:本实施方式提供一种基于4位相邻和3位突发纠错码的sram存储器加固方法,包括:
步骤一、构建权重向量(a0,a1,……an-k-1),每个元素表示;列向量的权重为列向量中值为1的元素的个数;a1,……an-k-1的初值均为n-k;将权重向量中的元素记为ai,其中i的初值为0,ai的初值为2。
步骤二、,从2n-k-1种待选列中选择权重大于ai的列向量,作为备选列向量。
步骤三、将备选列向量加到维度为(n-k)×(n-k)的初始矩阵h的右侧;初始矩阵为单位矩阵。
步骤四、将新添加的列与初始矩阵h中所有列向量进行错误模式计算,得到校正子。
步骤五、判断所述校正子是否在校正子集中。
若否,则将初始矩阵h与新添加的列共同作为新的矩阵;并判断新的矩阵是否满足维度要求,如果满足,则将当前矩阵作为目标矩阵进行输出;如果不满足,则将ai+1的权重设置为2,令i加1,存储当前的权重向量,并返回执行步骤二;当前的权重向量用于记忆当前的搜索状态。
若是,则从2n-k-1种待选列中重新选择一个未选择过且符合权重条件的列向量进行添加,直至判断结果为否。
若从2n-k-1种待选列中所有的列都在校正子集中,则将ai的值加1,然后返回步骤二执行。
步骤六、将与sram存储器连接的编码器和译码器所基于的奇偶校验矩阵设置为目标矩阵,以实现加固。
本实施方式在具体实施方式一中有相应的记载,其区别是从2n-k-1种待选列中选择列向量时不再是随意选取,而是设置列权重,优先选择权重较低的列向量,这样能够使得矩阵的汉明重量较小,并缩短搜索目标编码的时间成本。并且本实施方式的方法具有搜索记忆功能,步骤五中记录的权重向量能够记录当前的搜索状态。
<效果对比>
下面对本发明中的编码与文献[1]中的3位bec编码进行比较。比较从面积和延迟的实际开销进行比较。
面积和延迟的实现开销方面,随着校正能力的提高,h矩阵的汉明重量和最重行的重量也增加。这使得编码和解码过程更加复杂。编码器和解码器在verilog中进行了建模,并在65nm的库下进行了综合。为了获得更好的比较,每种编码在面积和延迟的不同优化约束下综合两次分别进行比较。从面积优化部分可以看出,本发明中编码的编码器面积增加的百分比为10%~20%,编码器面积增加的百分比为25%~34%。从延迟优化部分可以看出,本发明中编码的编码器延迟增加的百分比为18%~28%,解码器延迟增加百分比为6%~13%。可以看到扩展校正能力带来的复杂性的提高引起的面积和延迟的增加的开销是适度的。这表明设计人员可以有效地使用所提出的具有qaec功能的3位bec在最多四位相邻错误的情况下来保护sram存储器免受辐射影响和减轻对mcu影响。
本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。