基于二维纠错码的内存加固方法及电路技术

技术编号:15437075 阅读:42 留言:0更新日期:2017-05-25 19:16
本发明专利技术公开了一种基于二维纠错码的内存加固方法及电路,该方法将存储器分为程序存储区和数据存储区,对它们进行了分区加固,并根据存储区的各自特点通过存储器自诊断技术(Memory Self‑diagnose Method,MSDM)实现对存储内容的诊断和对错误的纠正,进行纠错报警。在纠错过程中,MSDM既可以纠正任意给定宽度内的连续故障和非连续故障;又可以判断存储器是否产生了超过纠错码纠错能力的故障。当存储器产生纠错码不能纠正的错误时,MSDM产生报警信号。

Memory consolidation method and circuit based on two-dimensional error correcting code

The invention discloses a reinforcement method and circuit error correcting codes based on two-dimensional memory, the memory is divided into program memory and data memory, they are partitioned according to their own characteristics and reinforcement, storage area through the memory self diagnosis technology (Memory Self diagnose Method, MSDM) in the diagnosis of the contents of memory and to correct the error, error correction alarm. In the process of error correction, MSDM can not only correct the continuous and discontinuous faults at any given width, but also can judge whether the memory has exceeded the error correcting capability of the error correcting code. The MSDM generates an alarm signal when the memory generates an error that cannot be corrected by the error correcting code.

【技术实现步骤摘要】
基于二维纠错码的内存加固方法及电路
本专利技术属于集成电路
,特别涉及通过二维纠错码进行内存安全防护的方法及电路。
技术介绍
集成电路已经应用于人民生活的各个领域,为了保证人身和财产安全,要求集成电路设备有很高的可靠性。存储器的可靠性对集成电路的可靠性有直接影响。经研究系统中绝大部分的失效是由存储器引起的。所以,提高存储器的可靠性对保证集成电路系统有较高可靠性和无故障运行非常重要。有以下几点原因。首先,集成电路工艺尺寸和供电电压持续降低,存储器的抗干扰能力也随之减弱。存储器由于空间辐射环境和地面噪声环境而产生的软错误比以往更多、更容易。其次,在集成电路中,相对与逻辑电路而言,存储器更容易受到环境影响而产生故障。在受到相同强度的干扰时,存储器比逻辑电路更容易产生故障。再次,存储器在芯片中占有的面积较大,有些甚至占到了集成电路系统级芯片(SoC)60%以上的芯片面积。因此,存储器更容易受到干扰的影响。最后,在存储器中,尤其是RAM中存储了CPU执行的程序和程序需要用到的数据。当程序和数据遭到破坏后,会严重影响CPU的执行,可能引起集成电路数据错误、指令错误、逻辑错误,甚至会导致软件程序执行故障或者系统崩渍。针对存储器的防护设计既可以增加集成电路的使用寿命,也可以提高集成电路的可靠性,尤为重要。目前,存储器的故障逐渐由单比特故障转变为多比特故障(MultipleBitUpsets,MBU)。这种情况下,针对多比特故障的内存加固技术受到广泛的重视。集成电路在正常工作时存储器的多比特故障遵循一定的故障率,即在一般情况下,固定时间内引起故障比特数小于一个固定的值。在一些特殊情况下,如攻击情况下,存储器的产生故障的比特数会大于故障率。目前针对存储器多比特故障的防护研究已经开展的较为深入。其中,三模冗余(TripleModuleRedundancy,TMR)是应用最广泛的硬件冗余防护方法,优点是速度快,且可以迅速提高系统的可靠性,缺点是面积和功耗都很大;刷洗(Scrubbing)是FPGA定期对RAM重新写一遍原来是数据的方法,可以保证RAM内容的可靠性且实现简单,但是会对系统性能产生一定影响;纠错码是一种检测、纠正数据在存储、传输过程中发生改变的强大技术,在应用中,汉明码是常用的纠错码,能修正一位、探测两位错误,但是无法修正多位翻转。目前纠错方法都是针对特定的故障模型而设计的,它们的纠错能力都有限。所以它们都有一个致命缺点,就是无法判断存储器中的错误是否超过了自身的纠错能力。当存储器的错误已经超过了纠错方法的纠错能力时,现有的纠错方法都无法判断,而是将错误的数据按照纠错方法进行纠错。因为错误超过了纠错能力,所以,纠错的结果也是错误的。由于无法判断该结果是错误的,所以,这个错误的结果往往会被系统当作是正确的指令或数据,参与执行。从而导致系统失效等问题。目前的纠错方法已经难以满足存储器的应用需求。急需一种在存储器产生严重错误,且错误超过了自身的纠错能力时,能评估故障类型和纠错能力,并发出报警信号通知系统的纠错方法。
技术实现思路
针对上述问题,本专利技术提供了一种基于二维纠错码的内存加固方法及电路,该方法及电路既可以对抗SEU引起的故障率范围内的影响,又可以评估信息存储器的故障类型和纠错手段纠错能力,可以保证存储器在正常工作时,绝大部分故障都可以被纠正,进而保证系统有较高的工作效率,又可以在存储器产生了严重故障,不能由加固技术的容错方法纠正时,向CPU发出报警信号。本专利技术的另一个目的在于提出一种基于二维纠错码的内存加固方法及电路,该方法及电路实现简便,安全可靠,低功耗、高效率,且不影响运算效率,适应高速存储器的应用。为实现上述目的,本专利技术的技术方案为:一种基于二维纠错码的内存加固方法,该方法将存储器分为程序存储区和数据存储区,对它们进行了分区加固,并根据存储区的各自特点通过存储器自诊断技术(MemorySelf-diagnoseMethod,MSDM)实现对存储内容的诊断和对错误的纠正,进行纠错报警。在纠错过程中,MSDM既可以纠正任意给定宽度内的连续故障和非连续故障;又可以判断存储器是否产生了超过纠错码纠错能力的故障。当存储器产生纠错码不能纠正的错误时,MSDM产生报警信号。MSDM(MemorySelf-diagnoseMethod,MSDM)利用程序和数据的不同特点,将存储器划分成不同的区,并将程序和数据存储在不同的区块中,一个被称为程序存储区,另一个是数据存储区。MSDM方法在写数据和读数据时实现不同的功能,并对两个存储区,采用相异的处理报警流程。MSDM的过程可以分为:MSDM写流程、程序存储区MSDM读流程和数据存储区MSDM读流程。对于程序存储区和数据存储区,MSDM在写数据时先计算数据的纠错码,再将数据和纠错码存入存储区的相应区域。MSDM在读数据时计算读出数据的纠错码,并和写数据时存储的纠错码一起评估当前数据的故障类型和纠错能力,再判断数据的故障类型是否超过了纠错能力。如果没有超过,则表示故障可以被纠正,纠正数据,并将纠正后的数据从存储区中读出。否则,表示故障类型超过了纠错码的纠错能力,故障不能被纠正,发出报警信号。对程序存储区和数据存储区,MSDM采用了相异的方法来响应和处理报警信号。由于程序存储区的故障对FPGA的重构过程有严重影响,所以,MSDM在发出报警信号后,关闭程序存储区的读写权限,并将程序存储区清零,等待程序重新加载。程序存储区MSDM读流程如下:101、读出数据;102、计算二维纠错码;103、评估故障类型和纠错能力;104、判断是否超过纠错能力,如果没超过,则进行纠错,纠正数据,进行正确数据的读出;如果超过纠错能力,则进行下一步;105、发出报警信号,关闭程序存储区读写权限;106、程序存储区清零,判断是否需要重新加载;107、重新加载程序。与程序故障会引起CPU产生难以预料的操作不同,数据故障会在控制流上传播,导致结果错误、路径错误等错误,这些错误可以被追踪、回溯并纠正,不需要产生报警信号时立刻终止重构过程。而且,数据在重构过程中不停变化,如果对数据存储区采用和程序存储区一样的方法来响应报警信号,会影响系统的效率。所以,对于数据存储区,MSDM在发出报警信号的同时读出有故障的数据。CPU接到报警后可以继续执行,也可以跳转到前面一个能够正确执行的检查点重新执行。为了判断数据存储区的故障是否影响多个存储单元的严重错误,MSDM自动检测相邻存储单元中的数据是否有故障,如果其他数据没有故障,则说明故障的影响较小,系统将继续执行,如果检测到若干个存储单元的故障都不可纠正,则可以判断该故障为严重故障。MSDM给CPU发出报警信号,同时对存储器中的数据清零,结束对FPGA的重构,并等待重新加载数据。数据存储区MSDM读流程具体如下:201、读出数据;202、计算二维纠错码;203、评估故障类型和纠错能力;204、判断是否超过纠错能力,如果没超过,则进行纠错,纠正数据,进行正确数据的读出;如果超过纠错能力,则进行下一步;205、发出报警信号,读出数据;206、检测相邻的多个存储单元;207、判断有无多个报警,无则结束,有则继续下一步;208、数据存储区清零,进行攻击报警;209、判断是否需本文档来自技高网
...
基于二维纠错码的内存加固方法及电路

【技术保护点】
一种基于二维纠错码的内存加固方法,该方法将存储器分为程序存储区和数据存储区,对它们进行了分区加固,并根据存储区的各自特点通过MSDM实现对存储内容的诊断和对错误的纠正,进行纠错报警;当存储器产生纠错码不能纠正的错误时,MSDM产生报警信号。

【技术特征摘要】
1.一种基于二维纠错码的内存加固方法,该方法将存储器分为程序存储区和数据存储区,对它们进行了分区加固,并根据存储区的各自特点通过MSDM实现对存储内容的诊断和对错误的纠正,进行纠错报警;当存储器产生纠错码不能纠正的错误时,MSDM产生报警信号。2.如权利要求1所述的基于二维纠错码的内存加固方法,其特征在于MSDM将存储器划分成不同的区,并将程序和数据存储在不同的区块中,一个被称为程序存储区,另一个是数据存储区。3.如权利要求2所述的基于二维纠错码的内存加固方法,其特征在于对于程序存储区和数据存储区,MSDM在写数据时先计算数据的纠错码,再将数据和纠错码存入存储区的相应区域;MSDM在读数据时计算读出数据的纠错码,并和写数据时存储的纠错码一起评估当前数据的故障类型和纠错能力,再判断数据的故障类型是否超过了纠错能力;如果没有超过,则表示故障可以被纠正,纠正数据,并将纠正后的数据从存储区中读出;否则,表示故障类型超过了纠错码的纠错能力,故障不能被纠正,发出报警信号。4.如权利要求3所述的基于二维纠错码的内存加固方法,其特征在于程序存储区MSDM读流程如下:101、读出数据;102、计算二维纠错码;103、评估故障类型和纠错能力;104、判断是否超过纠错能力,如果没超过,则进行纠错,纠正数据,进行正确数据的读出;如果超过纠错能力,则进行下一步;105、发出报警信号,关闭程序存储区读写权限;106、程序存储区清零,判断是否需要重新加载;107、重新加载程序。5.如权利要求3所述的基于二维纠错码的内存加固方法,其特征在于数据存储区MSDM读流程具体如下:201、读出数据;202、计算二维纠错码;203、评估故障类型和纠错能力;204、判断是否超过纠错能力,如果没超过,则进行纠错,纠正数据,进行正确数据的读出;如果超过纠错能力,则进行下一步;205、发出报警信号,读出数据;206、检测相邻的多个存储单元;207、判断有无多个报警,无则结束,有则继续下一步;208、数据存储区清零,进行攻击报警;209、判断是否需要重新加载数据;210、重新加载数据。6.如权利要求1所述的基于二维纠错码的内存加固方法,其特征在于MSDM是利用二维纠错码纠正多位...

【专利技术属性】
技术研发人员:张景
申请(专利权)人:深圳前海生生科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1