首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种用于连续MBU检测的Hsiao编码校验矩阵生成方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:中国航天科技集团公司第九研究院第七七一研究所

摘要:本发明公开了一种用于连续MBU检测的Hsiao编码校验矩阵生成方法,该方法首先根据汉明不等式确定所需的校验码位宽L,然后列出基于L位校验码、符合Hsiao编码规范的列向量形成搜索空间,并根据列向量中1的个数对搜索空间优先级排列;其次初始化校验矩阵,再次根据实际需要检测的连续翻转位数i,分别利用搜索和判别函数尽量从高优先级搜索空间取得合法的列向量补充到校验矩阵中,最后生成符合要求的校验矩阵。基于此校验矩阵的纠检错电路,在未增加传统SEC-DED校验电路的延迟的前提下,可检测连续多位数据翻转,应对宇航用处理器Cache的MBU现象,适宜Cache可靠性加固方案的应用。

主权项:一种用于连续MBU检测的Hsiao编码校验矩阵生成方法,其特征在于,包括如下步骤:1根据汉明不等式2r≤k+r+1确定k位信息位所需的校验码位宽r;2列出符合Hsiao编码规范的所有L维列向量,所述L维列向量总数等于2n+1为L维列向量中二进制1的个数,根据L维列向量中1的个数将其归属到搜索空间A2n+1,所述搜索空间A2n+1包括个L维列向量,n为整数且n[1,L-12,]]L=r+1;3初始化L×M维的二进制校验矩阵C,其中,M=k+L,二进制校验矩阵C的前k个列向量均为零向量,后L个列向量由L阶单位矩阵组成,则二进制校验矩阵C的列向量形式为C=[d1 d2 … dk c1 … cL];4判断所需检测的连续翻转位数i,当所需检测的连续翻转位数i≤L+1时,则确定搜索函数Func1及搜索函数Func2,其中,搜索函数Func1保证从搜索空间A2n+1中取出的新向量b与二进制校验矩阵C中已存在的任一列向量不重复,搜索函数Func2保证从搜索空间A2n+1中取出的新向量b与其在二进制校验矩阵C中相邻的l个列向量线性无关,其中,l∈[3,i],从搜索空间A2n+1中取出满足搜索函数Func1和搜索函数Func2的列向量填充到二进制校验矩阵C的对应位置以替代初始化中的零向量,得Hsiao编码校验矩阵;5当所需检测的连续翻转位数i>L+1时,则生成能够检测L+1位连续翻转的校验矩阵C1,确定判决函数Func3,通过判决函数Func3对校验矩阵C1进行检测,判断校验矩阵C1中任意连续的x个列向量是否线性相关,其中,x∈[L+2,i],当任意连续的x个列向量线性相关时,则对搜索空间A2n+1中的列向量随机排列,随机颠倒列向量的位置;6重复步骤5直到校验矩阵C1满足任意连续的x个列向量线性无关为止,然后将校验矩阵C1赋值给校验矩阵C,得Hsiao编码校验矩阵。

全文数据:一种用于连续MBU检测的Hsiao编码校验矩阵生成方法技术领域[0001]本发明属于宇航用处理器可靠性领域,涉及一种用于连续MBU检测的Hsiao编码校验矩阵生成方法。背景技术[0002]当代微处理器和SoC芯片中嵌入式存储器面积分别超过30%和60%,因此片上存储器的可靠性至关重要。由于空间单粒子效应的影响,宇航用处理器Cache中的数据易发生翻转,且随着集成电路工艺进步,错误图样由传统的单位翻转SBU向多位翻转MBU发展。太空和地面单粒子实验发现,重粒子可引起90nmSRAM中10〜15个连续存储位的翻转连续多位翻转是MBU的重要特征)。基于此,当前片上存储体主要依靠高阶纠错码(如RS、BCH码等实现系统级容错,高阶纠错码拥有纠正和检测多位翻转的能力,但其校验过程复杂,校验过程中的编解码往往需要数个时钟周期,故使用高阶纠错码会大大延长存储器的读写访问周期。Cache的读写访问周期会严重影响处理器性能,高阶纠错码的高延迟特性使其无法应用在Cache的加固保护方案。[0003]为了最大程度上降低Cache的读写周期,通常采用SEC-DED编码或奇偶校验等延迟较小的加固方案对Cache数据进行保护,当处理器发现Cache数据存在可纠正错误时,则进行纠正,当发现不可纠正错误时,则强制Cache不命中,从主存中读取Cache的相应数据副本。然而SEC-DED或奇偶校验均不能有效应对Cache中的MBU现象,即无法恢复或检测空间单粒子引起的Cache存储单元中数据的连续多位翻转,一旦Cache数据无法100%的恢复或检测数据翻转,处理器将使用发生连续多位翻转的指令或数据,可能造成“跑飞”等不可预知的情况。[0004]为了应对宇航用处理器Cache的MBU问题,必须构造一种低延迟、可纠正或者检测连续多位翻转的纠错码,基于此纠错码的HMC电路在不增加Cache访问延迟的前提下,保证Cache数据的可靠性,维持宇航用处理器的可靠运行。发明内容[0005]本发明的目的在于克服上述现有技术的缺点,提供了一种用于连续MBU检测的Hsiao编码校验矩阵生成方法,该方法生成的Hsiao编码校验矩阵中的任一列向量满足Hsiao编码规范以方便优化硬件延迟。[0006]为达到上述目的,本发明所述的用于连续MBU检测的Hsiao编码校验矩阵生成方法包括如下步骤:[0007]1根据汉明不等式21·彡k+r+Ι确定k位信息位所需的校验码位宽r;[0008]2列出符合Hsiao编码规范的所有L维列向量,所述L维列向量总数等于2n+l为L维列向量中二进制1的个数,根据L维列向量中1的个数将其归属到搜索空间A2n+1,所述搜索空间A2n+1包括个L维列向量,η为整数且[0009]3初始化LXM维的二进制校验矩阵C,其中,M=k+L,二进制校验矩阵C的前k个列向量均为零向量,后L个列向量由L阶单位矩阵组成,则二进制校验矩阵C的列向量形式为C=[did2···dkci···cl];[0010]4判断所需检测的连续翻转位数i,当所需检测的连续翻转位数iL+1时,则生成能够检测L+1位连续翻转的校验矩阵C1,确定判决函数Func3,通过判决函数Func3对校验矩阵C1进行检测,判断校验矩阵C1中任意连续的X个列向量是否线性相关,其中,xe[L+2,i],当任意连续的X个列向量线性相关时,则对搜索空间知„+1中的列向量随机排列,随机颠倒列向量的位置;[0012]6重复步骤5直到校验矩阵C1满足任意连续的X个列向量线性无关为止,然后将校验矩阵C1赋值给校验矩阵C,得Hsiao编码校验矩阵。[0013]所述的搜索函数Funcl满足遍历二进制校验矩阵C中所有列向量,任意一个列向量与搜索空间知„+1中取出的新向量b均不相同。[0014]所述的搜索函数Func2满足从A2n+1中取出的新向量b能够填充到二进制校验矩阵C内第1〜第k列中的任意一列中;同时,搜索函数Func2的列向量指数p从M-L-i+l递减i,对于M-L-i+Ι到i中的任一个列向量指数p,取包括列向量p在内的i-Ι个列向量,通过所述i-1个列向量从搜索空间Α2η+ι查找合法的新向量b,并保证所述i-1个列向量和新向量b中任意相邻的1个列向量线性无关。[0015]所述判决函数Func3满足判决函数Func3的搜索指数r从1递增到Μ-i+l,从任一个决函数Func3的搜索指数r对应的列向量中取连续抽取i个列向量,判决函数Func3能够满足这i个向量中任意相邻的X个列向量线性无关。[0016]步骤4中所述从搜索空间A2n+1中取出满足搜索函数Func1和搜索函数Func2的列向量填充到二进制校验矩阵C的对应位置以替代初始化中的零向量的具体操作为:搜索函数Func2首先从尚优先级的A3进行搜索,当A3无法满足,则将搜索空间扩展Α2η+ι为A3+A5,当A3+A5依然无法满足,则一次逐渐扩大搜索空间A2n+1,直到二进制校验矩阵C转变为不含零向量的LXM维矩阵为止。[0017]本发明具有以下有益效果:[0018]本发明所述用于连续MBU检测的Hsiao编码校验矩阵生成方法先根据汉明不等式确定所需的校验码位宽,然后列出基于L位校验码及符合Hsiao编码规范的列向量形成搜索空间A2n+1,并根据列向量中1的个数对搜索空间A2n+1优先级排列;其次初始化校验矩阵,根据实际需要检测的连续翻转位数i分别利用搜索函数和判别函数尽量从高优先级搜索空间取得合法的列向量补充到校验矩阵中,得Hsiao编码校验矩阵,本发明生成的Hsiao编码校验矩阵中任一列向量均满足Hsiao编码规范化以方便硬件优化,基于所述Hsiao编码校验矩阵可以设计面向宇航用处理器Cache的EDAC电路,当EDAC电路检测到Cache中数据发生翻转时,则强制Cache不命中,迫使Cache控制器向主存请求数据向处理器传递,并使用主存返回的数据更新Cache实现Cache错误数据的纠正,该EDAC电路并未增加传统SEC-DED校验电路的延迟,适宜Cache可靠性加固方案的应用。附图说明[0019]图1为本发明的校验矩阵生成方法流程图。具体实施方式[0020]下面结合具体实施例及附图对本发明做进一步详细描述,[0021]本发明所述的用于连续MBU检测的Hsiao编码校验矩阵生成方法包括如下步骤:[0022]1根据汉明不等式f^k+r+l确定k位信息位所需的校验码位宽r;[0023]2列出符合Hsiao编码规范的所有L维列向量,所述L维列向量总数等于2n+l为L维列向量中二进制1的个数,根据L维列向量中1的个数将其归属到搜索空间A2n+1,所述搜索空间A2n+1包括Cf+1个L维列向量,η为整数且[0024]3初始化LXM维的二进制校验矩阵C,其中,M=k+L,二进制校验矩阵C的前k个列向量均为零向量,后L个列向量由L阶单位矩阵组成,则二进制校验矩阵C的列向量形式为C=[did2···dkci···cl];[0025]4判断所需检测的连续翻转位数i,当所需检测的连续翻转位数iL+1时,则生成能够检测L+1位连续翻转的校验矩阵C1,确定判决函数Func3,通过判决函数Func3对校验矩阵C1进行检测,判断校验矩阵C1中任意连续的X个列向量是否线性相关,其中,xe[L+2,i],当任意连续的X个列向量线性相关时,则对搜索空间知„+1中的列向量随机排列,随机颠倒列向量的位置;[0027]6重复步骤5直到校验矩阵C1满足任意连续的X个列向量线性无关为止,然后将校验矩阵C1赋值给校验矩阵C,得Hsiao编码校验矩阵。[0028]所述的搜索函数Funcl满足遍历二进制校验矩阵C中所有列向量,任意一个列向量与搜索空间知„+1中取出的新向量b均不相同。[0029]所述的搜索函数Func2满足从A2n+冲取出的新向量b能够填充到二进制校验矩阵C内第1〜第k列中的任意一列中;同时,搜索函数Func2的列向量指数p从M-L-i+l递减i,对于M-L-i+Ι到i中的任一个列向量指数p,取包括列向量p在内的i-Ι个列向量,通过所述i-1个列向量从搜索空间Α2η+ι查找合法的新向量b,并保证所述i-1个列向量和新向量b中任意相邻的1个列向量线性无关。[0030]所述判决函数Func3满足判决函数Func3的搜索指数r从1递增到Μ-i+l,从任一个决函数Func3的搜索指数r对应的列向量中取连续抽取i个列向量,判决函数Func3能够满足这i个向量中任意相邻的X个列向量线性无关。[0031]步骤4中所述从搜索空间A2n+冲取出满足搜索函数Funcl和搜索函数Func2的列向量填充到二进制校验矩阵C的对应位置以替代初始化中的零向量的具体操作为:搜索函数Func2首先从尚优先级的A3进行搜索,当A3无法满足,则将搜索空间扩展Α2η+ι为A3+A5,当A3+A5依然无法满足,则一次逐渐扩大搜索空间A2n+1,直到二进制校验矩阵C转变为不含零向量的LXM维矩阵为止。[0032]实施例一[0033]利用本发明给出的校验矩阵生成方法流程图,分别对32位信息位生成能检测连续8位和连续25位翻转的两个校验矩阵。[0034]包括以下步骤:[0035]1根据汉明不等式f多k+r+Ι确定32位信息位所需的校验码位宽6,本发明公开的校验矩阵所需的校验码位宽等于7。[0036]Step2:根据Hsiao编码规范符合其要求的7维列向量(二进制向量)共有56个(,其中,高优先级搜索空间A3中包含的元素如表1所示,次优先级搜索空间A5中包含的元素如表2所示,为方便表达,表1及表2中的元素均为二进制行向量,对每个元素转置可变为列向量。[0037]表1[0040]表2[0042]3初始化LXM维的二进制校验矩阵C,其中M=k+L,二进制校验矩阵C前面k个列向量均为零向量,最后L个列向量由L阶单位矩阵组成,本实例生成一个7x39的二进制校验矩阵C,其中二进制校验矩阵C的后7列为7阶单位矩阵,前面32列为零向量,同时也是待搜索函数填充的区域,初始化矩阵如下所示。[0044]4判断所需检测的连续翻转位数,本实施例中对32位信息位生成能检测连续8位翻转的校验矩阵,因为887+1;[0045]5确定校验矩阵的搜索函数。Funcl搜索函数遍历二进制校验矩阵C中所有列向量本实例中为39个),若其中任一个列向量与搜索空间知„+1中取出的新向量b相同,则该函数不满足,返回值为0C3Fuik^搜索函数从搜索空间知„+1中取出的新向量b可能填充到二进制校验矩阵C中第1〜第k列中的任意一列,搜索函数Func2遍历的列向量指数p从39递减8,对于从39到8的任一个列向量指指数p,取包括列向量p在内的i-Ι个列向量包括p,p-l,p-2,…,ρ-i+l,利用这i-Ι列向量去搜索空间知„+1查找一个合法的新向量b,并保证i-Ι列向量和新向量b组合的i个向量中任意相邻的1个列向量线性无关le[3,i],保证i个向量中任意相邻的1个列向量线性无关需要i-1+l个方程。[0046]6从搜索空间A2n+1中取出满足Func1搜索函数和Func2搜索函数的列向量填充到i个向量中c的对应位置,替代初始化中的零向量,首先从高优先级的A3进行搜索,A3的搜索指数P从1递增1至35,得到可检测连续8位数据翻转的校验矩阵为:[0048]实施例二[0049]实施例一中步骤4中当对32位信息位生成可检测连续25位翻转的校验矩阵时,则1〜4与实施例一完全相同;[0050]5生成能8个连续翻转的校验矩阵C1,假设校验矩阵C1与实施例1中的矩阵相同。[0051]6确定判决函数Func3。判决函数Func3的搜索指数r从1到Μ-i+l本实施例对应39-25+1=14,对于从1到14任一个搜索指数r对应的列向量,取包括列向量r在内的r个列向量,判决函数Func3保证这i个向量中任意相邻的1个列向量线性无关,保证i个向量中任意相邻的1个列向量线性无关需要i-1+l个方程。[0052]7假设利用判决函数Func3对校验矩阵C1进行判断,发现其无法检测连续的16位翻转校验矩阵C1中存),然后对搜索空间A2n+冲A3的列向量随机排列,随机颠倒列向量的位置;[0053]8然后重新执行7,直到校验矩阵C1满足任意连续的X个列向量线性无关,将校验矩阵C1赋值给校验矩阵C,得连续25位翻转的校验矩阵。[0054]所述连续25位翻转的校验矩阵如下:[0056]本发明专利公开了一种用于连续MBU检测的Hsiao编码校验矩阵生成方法,该方法生成的Hsiao编码校验矩阵不增加传统纠一检二EDAC电路的硬件消耗,可以检测存储器中连续MBU多位翻转)的现象。在不增加Cache访问延迟的前提下,为应对Cache的MBU现象提供了一种有效的低开销编码方案,可直接替代当前Cache保护方案中使用的EDAC电路或者奇偶fe验电路。

权利要求:I.一种用于连续MBU检测的Hsiao编码校验矩阵生成方法,其特征在于,包括如下步骤:1根据汉明不等式k+r+1确定k位信息位所需的校验码位宽r;2列出符合Hsiao编码规范的所有L维列向量,所述L维列向量总数等于为L维列向量中二进制1的个数,根据L维列向量中1的个数将其归属到搜索空间A2n+1,所述搜索空间知„+1包括CfM个L维列向量,η为整数且3初始化LXM维的二进制校验矩阵C,其中,M=k+L,二进制校验矩阵C的前k个列向量均为零向量,后L个列向量由L阶单位矩阵组成,则二进制校验矩阵C的列向量形式为C=[Cl1cb···dkCi···cl];4判断所需检测的连续翻转位数i,当所需检测的连续翻转位数iL+1时,则生成能够检测L+1位连续翻转的校验矩阵C1,确定判决函数Func3,通过判决函数Func3对校验矩阵C1进行检测,判断校验矩阵C1中任意连续的X个列向量是否线性相关,其中,xe[L+2,i],当任意连续的X个列向量线性相关时,则对搜索空间知„+1中的列向量随机排列,随机颠倒列向量的位置;6重复步骤5直到校验矩阵C1满足任意连续的X个列向量线性无关为止,然后将校验矩阵C1赋值给校验矩阵C,得Hsiao编码校验矩阵;所述的搜索函数Func2满足从Α2η+ι中取出的新向量b能够填充到二进制校验矩阵C内第1〜第k列中的任意一列中;同时,搜索函数Func2的列向量指数p从M-L-i+l递减i,对于M-L-i+Ι到i中的任一个列向量指数p,取包括列向量p在内的i-Ι个列向量,通过所述i-Ι个列向量从搜索空间Α2η+ι查找合法的新向量b,并保证所述i-1个列向量和新向量b中任意相邻的1个列向量线性无关;步骤4中所述从搜索空间A2n+1中取出满足搜索函数Funcl和搜索函数Func2的列向量填充到二进制校验矩阵C的对应位置以替代初始化中的零向量的具体操作为:搜索函数Func2首先从尚优先级的A3进行搜索,当A3无法满足,则将搜索空间扩展A2n+1为A3+A5,当A3+A5依然无法满足,则依次逐渐扩大搜索空间A2n+1,直到二进制校验矩阵C转变为不含零向量的LXM维矩阵为止;所述判决函数Func3满足判决函数Func3的搜索指数r从1递增到Μ-i+l,从任一个判决函数Func3的搜索指数r对应的列向量中取连续抽取i个列向量,判决函数Func3能够满足这i个向量中任意相邻的X个列向量线性无关。

百度查询: 中国航天科技集团公司第九研究院第七七一研究所 一种用于连续MBU检测的Hsiao编码校验矩阵生成方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。