CN109634797A - 一种用寄存器屏蔽窗口分析寄存器架构敏感因子的方法 - Google Patents
一种用寄存器屏蔽窗口分析寄存器架构敏感因子的方法 Download PDFInfo
- Publication number
- CN109634797A CN109634797A CN201811550639.1A CN201811550639A CN109634797A CN 109634797 A CN109634797 A CN 109634797A CN 201811550639 A CN201811550639 A CN 201811550639A CN 109634797 A CN109634797 A CN 109634797A
- Authority
- CN
- China
- Prior art keywords
- register
- instruction
- bit
- effect
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,包括如下步骤:步骤S1,将单事件翻转SEU在寄存器中的屏蔽效应分为指令内屏蔽效应和指令间屏蔽效应,并确定相应的屏蔽机理,进行相应的计算;步骤S2,采用寄存器屏蔽窗口表示寄存器中SEU被屏蔽的比特位集合,利用寄存器屏蔽窗口的并集、交集运算计算寄存器中SEU的屏蔽因子;步骤S3,于程序运行时,动态构建寄存器屏蔽窗口关系图;步骤S4,于程序运行结束后,根据所述寄存器屏蔽窗口关系图计算寄存器架构敏感因子AVF,通过本发明,可提高寄存器的AVF值评估精度。
Description
技术领域
本发明涉及通用寄存器技术领域,特别是涉及一种利用寄存器屏蔽窗口分析AVF(Architectural Vulnerability Factor,寄存器架构敏感因子)的方法。
背景技术
随着大规模集成电路的特征尺寸缩小到数个纳米量级,集成电路设计制造面临着越来越严重的可靠性问题。其中SEU(Single Event Upset,单粒子)成为影响可靠性的重要因素。SEU是由高能粒子轰击CMOS(Complementary Metal Oxide Semiconductor)器件导致,其中高能粒子来自空间辐射或芯片封装。高能粒子释放的电荷在CMOS器件中积聚,表现出在该器件的漏端叠加了一个短脉冲。对于一个存储部件来说,叠加的短脉冲能量足够高的时候,就会翻转存储部件中的内容,即SEU。所述SEU可能对程序的正确运行没有影响,即所述SEU被屏蔽;也可能使程序的运行结果出错,或者使程序跑飞,即所述SEU不能被屏蔽。量化处理器中通用寄存器对SEU的敏感度,即其AVF值,有助于实现高效的寄存器部分保护技术。一般地,计算寄存器AVF值最准确的方法是故障注入,其方法为程序执行的任意时刻随机翻转某个寄存器的比特位,并观察程序执行结果,统计引起程序执行出错的故障注入数量占总的故障注入数量的比值即为该寄存器的AVF值。要使故障注入的结果准确,必须进行大量的故障注入实验,以覆盖所有的故障空间,将耗费几百万至几亿倍的程序执行时间。
为了缩短寄存器AVF评估时间,可以采用静态分析的方法。处理器在运行应用程序时会对寄存器进行一系列的读写操作。一般对一个寄存器进行写操作后,后续指令会对该寄存器进行若干次读操作。两次写操作之间的时间称作寄存器的一个生命周期。在该生命周期内,从写操作到读操作或者从读操作到读操作之间的时间称为寄存器的ACE区间,从最后一次读操作到该生命周期结束为un-ACE区间。基本静态分析方法假定发生在寄存器ACE区间的SEU都会影响程序执行结果,统计出程序运行期间寄存器的总的ACE区间占程序运行时间的比值即可得到该寄存器的AVF值。
由于系统中存在着各种逻辑屏蔽效应,基本的静态分析方法是保守估计,与故障注入相比,基本的静态分析方法得到的寄存器AVF值偏高。为了准确的评估寄存器对SEU的敏感度,需要分析SEU在寄存器中的传播与屏蔽效应,即在ACE区间某些比特位上发生的SEU不会引起程序执行结果出错,该ACE区间的屏蔽因子即为SEU被屏蔽的比特位的总数占寄存器总比特位数的比值,该ACE区间的有效区间长度为其实际区间长度与屏蔽因子的乘积,统计出程序运行期间寄存器的有效ACE区间占程序运行时间的比值可以得到准确的AVF值。
目前计算ACE区间屏蔽因子的时候一般只考虑指令内屏蔽效应,如逻辑与屏蔽效应、逻辑或屏蔽效应、移位屏蔽效应,然而,忽略延迟屏蔽效应将低估ACE区间屏蔽因子,忽略故障传播效应将高估ACE区间屏蔽因子。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,通过考虑指令内屏蔽效应的未使用比特位屏蔽效应、比较指令屏蔽效应、不等屏蔽效应以及指令间屏蔽效应的延迟屏蔽效应以及故障传播效应,实现了比现有的寄存器AVF静态分析方法更高的准确度。
为达上述及其它目的,本发明提出一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,包括如下步骤:
步骤S1,将单事件翻转SEU在寄存器中的屏蔽效应分为指令内屏蔽效应和指令间屏蔽效应,并确定相应的屏蔽机理,进行相应的计算,其中所述指令内屏蔽效应包括逻辑与屏蔽效应、逻辑或屏蔽效应、移位屏蔽效应、未使用比特位屏蔽效应、比较指令屏蔽效应、不等屏蔽效应,所述指令间屏蔽效应包括延迟屏蔽效应与故障传播效应;
步骤S2,采用寄存器屏蔽窗口表示寄存器中SEU被屏蔽的比特位集合,利用寄存器屏蔽窗口的并集、交集运算计算寄存器中SEU的屏蔽因子;
步骤S3,于程序运行时,动态构建寄存器屏蔽窗口关系图;
步骤S4,于程序运行结束后,根据所述寄存器屏蔽窗口关系图计算寄存器架构敏感因子AVF。
优选地,所述未使用比特位屏蔽效应指汇编指令仅对源寄存器的部分比特位操作,源寄存器未使用的比特位不受SEU影响。
优选地,所述比较指令屏蔽效应指的是比较指令中源寄存器对SEU的屏蔽效应,其计算方法为:比较所述比较指令中的两个源寄存器中存储的二进制值,从最高位开始逐位比较,找到第一个二进制值不相等的比特位,所述源寄存器中所述比特位的下一个低位到最低比特位上发生的SEU都将被屏蔽。
优选地,于所述比较指令屏蔽效应计算中,对于二进制值大的源寄存器,从所述第一个二进制值不相等的比特位到最高位之间二进制值为0的比特位上发生的SEU将被屏蔽,对于二进制值小的源寄存器,从所述第一个二进制值不相等的比特位到最高位之间二进制值为1的比特位上发生的SEU将被屏蔽。
优选地,所述不等屏蔽效应指的是汇编指令中包含比较两个源寄存器是否相等的操作时,所述两个源寄存器对SEU的屏蔽效应,其计算方法为:若所述两个源寄存器中存储的二进制值相等,则所述两个源寄存器中的所有比特位上发生的SEU都不能被屏蔽;若所述两个源寄存器中存储的二进制值只有一个比特位不相等,则所述两个源寄存器中除所述不相等的比特位外的所有比特位上发生的SEU都被屏蔽;若所述两个源寄存器中存储的二进制值有两个或两个以上的比特位不相等,则所述两个源寄存器中的所有比特位上发生的SEU都被屏蔽。
优选地,所述延迟屏蔽效应为汇编指令中由目的寄存器引起的对源寄存器中某些比特位上发生的SEU的屏蔽效应,其屏蔽机理为:将指令中源寄存器的某个比特位电平翻转引起的目的寄存器中电平翻转的比特位的集合称为该比特位在目的寄存器中的影响区域,若指令中源寄存器的某个比特位在其目的寄存器中的影响区域中的所有比特位上发生的SEU都将被屏蔽,则该比特位上发生的SEU将被屏蔽。
优选地,在计算延迟屏蔽效应时,必须先决定源寄存器中的比特位与其在目的寄存器中的影响区域之间的映射关系,对于汇编指令集中按位操作的指令,所述映射关系为直接映射;对于汇编指令集中移位操作或旋转操作的指令,所述映射关系为移位映射;对于汇编指令集中加法或减法操作的指令,所述映射关系为行波进位映射;对于汇编指令集中的其他指令,所述映射关系为全映射。
优选地,于步骤S2中,所述寄存器屏蔽窗口定义为寄存器在ACE区间内对SEU有屏蔽效应的比特位的集合,寄存器在ACE区间上对SEU的屏蔽因子为寄存器屏蔽窗口中包含的比特位数量与寄存器包含的比特位数量的比值;
若ACE区间的屏蔽效应仅由指令内屏蔽效应决定,则ACE区间的屏蔽窗口为由指令内屏蔽效应决定的屏蔽窗口;
若ACE区间的屏蔽效应由指令内屏蔽效应和延迟屏蔽效应共同决定,则所述ACE区间的屏蔽窗口为由指令内屏蔽效应决定的屏蔽窗口与由延迟屏蔽效应决定的屏蔽窗口的并集;
若ACE区间的屏蔽效应由指令内屏蔽效应和故障传播效应共同决定,则所述ACE区间的屏蔽窗口为由指令内屏蔽效应决定的屏蔽窗口与下一个ACE区间的屏蔽窗口的交集;
若ACE区间的屏蔽效应由指令内屏蔽效应、延迟屏蔽效应和故障传播效应共同决定,则所述ACE区间的屏蔽窗口为由指令内屏蔽效应决定的屏蔽窗口与由延迟屏蔽效应决定的屏蔽窗口的并集,所得屏蔽窗口与下一个ACE区间的屏蔽窗口的交集。
优选地,于步骤S3中,将所述寄存器屏蔽窗口关系图的节点分为源节点和目的节点两类,所述源节点记录当前指令执行周期,指令中源寄存器的寄存器名称,与由指令内屏蔽效应决定的寄存器屏蔽窗口。目的节点记录当前指令执行周期,指令中目的寄存器的寄存器名称,源寄存器中的比特位与其在目的寄存器中的影响区域之间的映射关系;
于执行程序时,取出当前运行指令,分析其源寄存器和目的寄存器,构建源节点和目的节点,源节点的父节点为最近构建的有相同寄存器名称的节点,若目的节点不满足情况(b)且满足情况(c),则将目的节点作为源节点的子节点加入所述寄存器屏蔽窗口关系图;否则将所述目的节点作为单独的节点加入所述寄存器屏蔽窗口关系图,其中情况(b)为指令的源寄存器中的比特位与其在目的寄存器中的影响区域之间的映射关系为全映射,所述情况(c)为指令的目的寄存器对SEU有屏蔽效应。
优选地,于步骤S4中,从所述寄存器屏蔽窗口关系图的叶子节点向根节点方向遍历每一个节点,每一个节点只访问一次,当一个节点的所有子节点都被访问过时该节点才能被访问;对于每一个源节点,其对应的ACE区间的末端为该节点所记录的指令执行周期,其对应的ACE区间的起始端为该节点的父节点所记录的指令执行周期,其对应的ACE区间的屏蔽因子可以根据子节点数目与类型根据步骤S2计算得到,统计每个寄存器的总的有效ACE区间长度,再除以程序总的运行时间,即为寄存器的AVF值。
与现有技术相比,本发明一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法通过利用寄存器屏蔽窗口关系图静态计算寄存器AVF值,改进了已有AVF值静态分析方法,其考虑了更多指令内屏蔽效应,同时加入了延迟屏蔽效应和故障传播效应的计算方法,用寄存器屏蔽窗口的交集、并集运算计算三种SEU屏蔽效应,提高了寄存器的AVF值评估精度,更接近故障注入得到的准确值,且其仅需一次仿真即可完成运算,所耗时间远小于故障注入需要的时间。
附图说明
图1为本发明一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法的步骤流程图;
图2为本发明实施例中SEU在寄存器中的传播与屏蔽效应示意图;
图3为本发明实施例中加法类指令下目的寄存器对源寄存器的延迟屏蔽效应示意图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图1为本发明一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法的步骤流程图。如图1所示,本发明一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,包括如下步骤:
步骤S1,将单事件翻转(Single Event Upset,简称SEU)在寄存器中的屏蔽效应分为指令内屏蔽效应和指令间屏蔽效应,并确定相应的屏蔽机理,进行相应的计算。
如图2所示,指令内屏蔽效应指的是由当前执行指令的操作数引起的一个源寄存器对另一个源寄存器的屏蔽效应。指令内屏蔽效应包括逻辑与屏蔽效应、逻辑或屏蔽效应、移位屏蔽效应、未使用比特位屏蔽效应、比较指令屏蔽效应、不等屏蔽效应。
指令间屏蔽效应包括延迟屏蔽效应与故障传播效应。其中,延迟屏蔽效应指的是目的寄存器对SEU的屏蔽效应引起的源寄存器对SEU的屏蔽效应;故障传播效应是指后续ACE区间对SEU的屏蔽效应对当前ACE区间对SEU屏蔽效应的影响。由于逻辑与屏蔽效应、逻辑或屏蔽效应、移位屏蔽效应的机理与现有技术相同,在此不予赘述。以下仅介绍本发明指令内屏蔽效应的未使用比特位屏蔽效应、比较指令屏蔽效应、不等屏蔽效应的屏蔽机理:
未使用比特位屏蔽效应,具体指汇编指令若仅对源寄存器的部分比特位操作,则在源寄存器未使用的比特位上发生的SEU将被屏蔽;
比较指令屏蔽效应,指的是比较指令中源寄存器对SEU的屏蔽效应,其机理为:若一个源寄存器中某个比特位的电平翻转不影响两个源寄存器中存储的二进制值的相对大小,则该比特位上发生的SEU将被屏蔽。其具体计算方法为:比较所述比较指令中的两个源寄存器中存储的二进制值,从最高位开始逐位比较,找到第一个二进制值不相等的比特位,所述源寄存器中所述比特位的下一个低位到最低比特位上发生的SEU都将被屏蔽。对于二进制值大的源寄存器,从所述第一个二进制值不相等的比特位到最高位之间二进制值为0的比特位上发生的SEU将被屏蔽;对于二进制值小的源寄存器,从所述第一个二进制值不相等的比特位到最高位之间二进制值为1的比特位上发生的SEU将被屏蔽。
不等屏蔽效应,指的是汇编指令中包含比较两个源寄存器是否相等的操作时,所述两个源寄存器对SEU的屏蔽效应,其机理为:若一个源寄存器中某个比特位的电平翻转不影响两个源寄存器中存储的二进制值是否相等,则该比特位上发生的SEU将被屏蔽。其具体计算方法为:若所述两个源寄存器中存储的二进制值相等,则所述两个源寄存器中的所有比特位上发生的SEU都不能被屏蔽;若所述两个源寄存器中存储的二进制值只有一个比特位不相等,则所述两个源寄存器中除所述不相等的比特位外的所有比特位上发生的SEU都被屏蔽;若所述两个源寄存器中存储的二进制值有两个或两个以上的比特位不相等,则所述两个源寄存器中的所有比特位上发生的SEU都被屏蔽。
以下介绍指令间屏蔽效应的延迟屏蔽效应与故障传播效应的屏蔽机理:
延迟屏蔽效应的屏蔽机理如下:指令中源寄存器的某个比特位电平翻转引起的目的寄存器中电平翻转的比特位的集合称为该比特位在目的寄存器中的影响区域,若指令中源寄存器的某个比特位在其目的寄存器中的影响区域中的所有比特位上发生的SEU都将被屏蔽,则该比特位上发生的SEU将被屏蔽。
为了计算延迟屏蔽效应,必须先决定源寄存器中的比特位与其在目的寄存器中的影响区域之间的映射关系。对于汇编指令集中按位操作的指令,所述映射关系为直接映射,即所述比特位在目的寄存器中的影响区域为相同的比特位;对于汇编指令集中移位操作或旋转操作的指令,所述映射关系为移位映射,若汇编指令为左移k位的操作,则所述影响区域为所述比特位左移k位后的比特位,若汇编指令为右移k位的操作,则所述影响区域为所述比特位右移k位后的比特位;对于汇编指令集中加法或减法操作的指令,所述映射关系为行波进位映射,进位停止位定义为所述指令中两个源寄存器中存储的二进制值相等的比特位,所述影响区域为目的寄存器中从低位往高位方向所述比特位到离其最近的进位停止位之间的比特位集合,对于汇编指令集中的其他指令,所述映射关系为全映射,即所述比特位在目的寄存器中的影响区域为目的寄存器中的所有比特位。
故障传播效应具体表现在同一个寄存器在其某个生命周期中,后续ACE区间的软错误屏蔽效应对当前ACE区间的软错误屏蔽效应的影响。如图2中,假设该寄存器的某个生命周期内一共有N个ACE区间,其第i个ACE区间发生的软错误是否被屏蔽,不仅取决于第i个ACE区间的屏蔽窗口,还取决于第i+1到第N个ACE区间的屏蔽窗口。若第i个ACE区间内该寄存器的某个比特位翻转,该故障会传播到后续ACE区间。只有当前ACE区间和后续所有ACE区间对该比特位上发生的软错误都屏蔽时,当前ACE区间该比特位上发生的软错误才能被屏蔽。
具体地说,图中在t2时刻有个op操作对寄存器R1和R2运算,运算结果存储于寄存器R3中,若寄存器R1在ACE1区间发生软错误,则该软错误可能通过3种路径影响程序最终执行结果,图中标示为M1到M3。第一个屏蔽源是t2时刻的指令内屏蔽,第二个屏蔽源是目的寄存器R3的ACE1区间内产生的屏蔽,即故障延迟屏蔽效应M2,第三个屏蔽源是寄存器R1的ACE2区间,即故障传播效应M3。
故障延迟屏蔽效应M2:一个指令中源操作数中的比特位和目的操作数中的比特位存在某种映射关系,因而目的操作数的下一个ACE区间的屏蔽效果等效于对源操作数中相应位的屏蔽。例如,如果在第3个指令周期之前寄存器R0中出现了软错误,其有可能被第3个指令周期的寄存器R11通过逻辑或屏蔽机制屏蔽。同时其目的操作数R10在第11个指令周期被读取,若R10的某些位在该ACE区间被屏蔽,则我们可以知道R0的相同比特位也被屏蔽,因为第3个指令周期的指令是逻辑或指令,源操作数与目的操作数之间的位对应关系为一一对应关系。R0在第3个指令周期前的ACE区间屏蔽效应表现为R11对其产生的逻辑或屏蔽和R10对其产生的延迟故障屏蔽效应之和。
步骤S2,采用寄存器屏蔽窗口表示寄存器中SEU被屏蔽的比特位集合,利用寄存器屏蔽窗口的并集、交集运算计算寄存器中SEU的屏蔽因子。
本发明引入寄存器屏蔽窗口的概念,并用寄存器屏蔽窗口的交集、并集操作综合考虑SEU的三种屏蔽效应。
寄存器屏蔽窗口定义为寄存器在ACE区间内对SEU有屏蔽效应的比特位的集合。寄存器在ACE区间上对SEU的屏蔽因子为寄存器屏蔽窗口中包含的比特位数量与寄存器包含的比特位数量的比值。
考虑如下可能情况:(a)指令包含目的寄存器;(b)指令的源寄存器中的比特位与其在目的寄存器中的影响区域之间的映射关系为全映射;(c)指令的目的寄存器对SEU有屏蔽效应;(d)ACE区间为源寄存器对应生命周期的最后一个ACE区间,即下一次对该源寄存器的操作是写操作。
若ACE区间的屏蔽效应仅由指令内屏蔽效应决定,则ACE区间的屏蔽窗口为由指令内屏蔽效应决定的屏蔽窗口。所述情况满足如下条件:(1)不满足所述情况(a),或者满足所述情况(b),或者不满足所述情况(c);(2)满足所述情况(d)。
若ACE区间的屏蔽效应由指令内屏蔽效应和延迟屏蔽效应共同决定,则所述ACE区间的屏蔽窗口为由指令内屏蔽效应决定的屏蔽窗口与由延迟屏蔽效应决定的屏蔽窗口的并集。所述情况满足如下条件:(1)满足所述情况(a),且不满足所述情况(b),且满足所述情况(c);(2)满足所述情况(d)。
若ACE区间的屏蔽效应由指令内屏蔽效应和故障传播效应共同决定,则所述ACE区间的屏蔽窗口为由指令内屏蔽效应决定的屏蔽窗口与下一个ACE区间的屏蔽窗口的交集。所述情况满足如下条件:(1)不满足所述情况(a),或者满足所述情况(b),或者不满足所述情况(c);(2)不满足所述情况(d)。
若ACE区间的屏蔽效应由指令内屏蔽效应、延迟屏蔽效应和故障传播效应共同决定,则所述ACE区间的屏蔽窗口为由指令内屏蔽效应决定的屏蔽窗口与由延迟屏蔽效应决定的屏蔽窗口的并集,所得屏蔽窗口与下一个ACE区间的屏蔽窗口的交集。所述情况满足如下条件:(1)满足所述情况(a),且不满足所述情况(b),且满足所述情况(c);(2)不满足所述情况(d)。
步骤S3,于程序运行时,动态构建寄存器屏蔽窗口关系图;
由于计算源寄存器当前ACE区间的寄存器屏蔽窗口可能会用到源寄存器后续ACE区间的寄存器屏蔽窗口和目的寄存器后续ACE区间的寄存器屏蔽窗口,因此本发明引入寄存器屏蔽窗口关系图,记录程序执行过程中产生的各种屏蔽效应以及他们之间的关系。
在本发明中,图的节点分为两类:源节点和目的节点。源节点记录当前指令执行周期,指令中源寄存器的寄存器名称,与由指令内屏蔽效应决定的寄存器屏蔽窗口,目的节点记录当前指令执行周期,指令中目的寄存器的寄存器名称,源寄存器中的比特位与其在目的寄存器中的影响区域之间的映射关系。
当处理器执行程序时,取出当前运行指令,分析其源寄存器和目的寄存器,构建源节点和目的节点,源节点的父节点为最近构建的有相同寄存器名称的节点,若目的节点不满足情况(b)且满足情况(c),则将目的节点作为源节点的子节点加入所述寄存器屏蔽窗口关系图;否则将所述目的节点作为单独的节点加入所述寄存器屏蔽窗口关系图。
步骤S4,程序运行结束后,根据所述寄存器屏蔽窗口关系图计算寄存器架构敏感因子(Architectural Vulnerability Factor,简称AVF)。
具体地,从所述寄存器屏蔽窗口关系图的叶子节点向根节点方向遍历每一个节点,每一个节点只访问一次,当一个节点的所有子节点都被访问过时该节点才能被访问。对于每一个源节点,其对应的ACE区间的末端为该节点所记录的指令执行周期,其对应的ACE区间的起始端为该节点的父节点所记录的指令执行周期,其对应的ACE区间的屏蔽因子可以根据子节点数目与类型利用寄存器屏蔽窗口的交集与并集运算计算得到,统计每个寄存器的总的有效ACE区间长度,再除以程序总的运行时间,即为寄存器的AVF值。
可见,本发明通过利用寄存器屏蔽窗口关系图静态计算寄存器AVF值,改进了已有AVF值静态分析方法,考虑了更多指令内屏蔽效应,同时加入了延迟屏蔽效应和故障传播效应的计算方法,用寄存器屏蔽窗口的交集、并集运算计算三种SEU屏蔽效应,提高了寄存器的AVF值评估精度,更接近故障注入得到的准确值,且其仅需一次仿真即可完成运算,所耗时间远小于故障注入需要的时间。
以下将通过几个实施例来说明本发明:在本发明实施例中,基于PowerPC 32位指令集,有32个32位的通用寄存器,其二进制值的存储方式为小端,即最高位为第0个比特位,最低位为第31个比特位。
实施例一
本实施例实现未使用比特位屏蔽效应的计算方法。
(1)指令extsbx rA,rS的含义为将源寄存器rS中的低8位存储到rA中,所述指令源寄存器高24位上发生的SEU将被屏蔽。
(2)指令cntlzwx rA,rS的含义为将源寄存器rS中存储的二进制值从高位起连续0的个数存储到rA中,所述指令源寄存器从高位起第一个1所在的比特位到所述源寄存器的低位上发生的SEU将被屏蔽。
实施例二
本发明实施例提供比较指令屏蔽效应和不等屏蔽效应的计算方法。
指令cmp rA,rB的含义为比较源寄存器rA与源寄存器rB中所存储的二进制值的大小,其比较结果将影响条件寄存器CR(Condition Register)的LT(小于)、GT(大于)、EQ(等于)位。后续条件跳转指令将根据LT、GT或者EQ的值决定是否发生跳转。假设rA存储的二进制值为32’b0101 0011 1100 1001 0000 1110 1000 1110,rB存储的二进制值为32’b01010011 0100 1000 0000 1000 1111 1000。
若条件跳转指令使用的是LT或GT位,则源寄存器rA和源寄存器rB对SEU的屏蔽效应可以根据比较指令屏蔽效应计算方法来计算。rA和rB的第0个比特位到第7个比特位都相等,rA的第8个比特位为1,rB的第8个比特位为0,因而rA里存储的二进制值大于rB里存储的二进制值。rA和rB的第9个比特位到第31个比特位上发生的SEU都将被屏蔽,同时rA的第2、4、5个比特位上发生的SEU也将被屏蔽,rB的第1、3个比特位上发生的SEU也将被屏蔽。
若条件跳转指令使用的是EQ位,则源寄存器rA和源寄存器rB对SEU的屏蔽效应可以根据不等屏蔽效应计算方法来计算。rA和rB中存储的二进制值有两个以上的比特位不相等,因此rA和rB的所有比特位上发生的SEU都将被屏蔽。
实施例三
本实施例说明延迟屏蔽效应的屏蔽机理。
(1)指令andx rA,rS,rB的含义为将源寄存器rS中存储的二进制值与rB中存储的二进制值进行逻辑与操作后的结果存储到目的寄存器rA中。逻辑与操作是按位操作,源寄存器rS和源寄存器rB中的比特位与其在目的寄存器rA中的影响区域的映射关系为直接映射。若rA中的第3个比特位到第8个比特位上发生的SEU被屏蔽,则由延迟屏蔽效应引起的源寄存器rS和rB中的第3个比特位到第8个比特位上发生的SEU也将被屏蔽。
(2)指令slwx rA,rS,rB的含义是将源寄存器rS中的内容左移源寄存器rB中存储的二进制值个比特位,并将移位后的结果存储到目的寄存器rA中。假设rB中存储的二进制值的大小为2。rS中第i个比特位在rA中的影响区域为第i-2个比特位。因此若rA中第3个比特位到第8个比特位上发生的SEU被屏蔽,则由延迟屏蔽效应引起的源寄存器rS中的第5个比特位到第10个比特位上发生的SEU也将被屏蔽。
(3)指令srwx rA,rS,rB的含义是将源寄存器rS中的内容右移源寄存器rB中存储的二进制值个比特位,并将移位后的结果存储到目的寄存器rA中。假设rB中存储的二进制值的大小为2。rS中第i个比特位在rA中的影响区域为第i+2个比特位。因此若rA中第3个比特位到第8个比特位上发生的SEU被屏蔽,则由延迟屏蔽效应引起的源寄存器rS中的第1个比特位到第6个比特位上发生的SEU也将被屏蔽。
(4)指令addx rD,rA,rB的含义是将源寄存器rA和源寄存器rB中存储的二进制值相加所得结果存储到目的寄存器rD中。如图3所示,rA和rB中二进制值相等的比特位为CSL位,灰色代表该比特位上发生的SEU将被屏蔽,白色代表该比特位上发生的SEU将不被屏蔽。以rA和rB中的第5个比特位为例,该比特位在rD中的影响区域为第5个比特位到往高位方向距离其最近的CSL位,即第5个比特位和第4个比特位,rD中的第4个比特位和第5个比特位上发生的SEU都被屏蔽,因此rA和rB中的第5个比特位也将被屏蔽。
(5)指令mulhwux rD,rA,rB的含义是将源寄存器rA和源寄存器rB中存储的二进制值相乘得到的结果存储到目的寄存器rD中。rA和rB中的比特位与其在rD中的影响区域之间的映射关系属于全映射,因此,rD对SEU的屏蔽效应对rA和rB对SEU的屏蔽效应没有影响。
实施例四
本实施例说明寄存器屏蔽窗口的概念和利用寄存器屏蔽窗口的交集、并集运算计算源寄存器ACE区间的屏蔽因子的方法。
(1)指令andx rA,rS,rB的含义为将源寄存器rS中存储的二进制值与rB中存储的二进制值进行逻辑与操作后的结果存储到目的寄存器rA中。若rA对SEU没有屏蔽效应,且对rS的下一个操作为写操作,则rS对SEU的屏蔽效应仅由指令内屏蔽效应决定,具体是由逻辑与操作引起的rB对rS的屏蔽效应。若rB的第3个比特位到第8个比特位为0,则rS在所述指令处的寄存器屏蔽窗口为第3个比特位到第8个比特位的集合。
(2)对于(1)中的指令,若rA的第5个比特位到第10个比特位上发生的SEU将被屏蔽,即rA的寄存器屏蔽窗口为比特位5到比特位10的集合。此时rS在所述指令处的屏蔽效应由延迟屏蔽效应和指令内屏蔽效应共同决定。所述指令源寄存器比特位与其在目的寄存器中的影响区域的映射关系为直接映射,因此rS中由延迟屏蔽效应引起的寄存器屏蔽窗口为比特位5到比特位10的集合。由(1)可知rS中由指令内屏蔽效应引起的寄存器屏蔽窗口为比特位3到比特位8的集合。因此,rS在所述指令处的寄存器屏蔽窗口为上述两个屏蔽窗口的并集,即比特位3到比特位10的集合。
(3)对于(1)中的指令,若对rS的下一个操作为读操作,则rS在所述指令处的屏蔽效应由指令内屏蔽效应和故障传播效应共同决定。若rS的下一个操作处的寄存器屏蔽窗口为比特位5到比特位10的集合,由(1)可知rS中由指令内屏蔽效应引起的寄存器屏蔽窗口为比特位3到比特位8的集合,因此,rS在所述指令处的寄存器屏蔽窗口为上述两个屏蔽窗口的交集,即比特位5到比特位8的集合。
(4)对于(1)中的指令,若rA对SEU有屏蔽效应,且对rS的下一个操作为读操作则rS在所述指令处的屏蔽效应由指令内屏蔽效应、延迟屏蔽效应和故障传播效应共同决定。假设rS由指令内屏蔽效应引起的寄存器屏蔽窗口为比特位3到比特位8的集合W1,由延迟屏蔽效应引起的寄存器屏蔽窗口为比特位5到比特位10的集合W2,rS在下一个ACE区间的寄存器屏蔽窗口为比特位4到比特位11的集合W3,则rS在所述指令处的寄存器屏蔽窗口为W1与W2的并集,然后再与W3产生交集,结果为比特位4到比特位10的集合。
综上所述,本发明一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法通过利用寄存器屏蔽窗口关系图静态计算寄存器AVF值,改进了已有AVF值静态分析方法,其考虑了更多指令内屏蔽效应,同时加入了延迟屏蔽效应和故障传播效应的计算方法,用寄存器屏蔽窗口的交集、并集运算计算三种SEU屏蔽效应,提高了寄存器的AVF值评估精度,更接近故障注入得到的准确值,且其仅需一次仿真即可完成运算,所耗时间远小于故障注入需要的时间。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (10)
1.一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,包括如下步骤:
步骤S1,将单事件翻转SEU在寄存器中的屏蔽效应分为指令内屏蔽效应和指令间屏蔽效应,并确定相应的屏蔽机理,进行相应的计算,其中所述指令内屏蔽效应包括逻辑与屏蔽效应、逻辑或屏蔽效应、移位屏蔽效应、未使用比特位屏蔽效应、比较指令屏蔽效应、不等屏蔽效应,所述指令间屏蔽效应包括延迟屏蔽效应与故障传播效应;
步骤S2,采用寄存器屏蔽窗口表示寄存器中SEU被屏蔽的比特位集合,利用寄存器屏蔽窗口的并集、交集运算计算寄存器中SEU的屏蔽因子;
步骤S3,于程序运行时,动态构建寄存器屏蔽窗口关系图;
步骤S4,于程序运行结束后,根据所述寄存器屏蔽窗口关系图计算寄存器架构敏感因子AVF。
2.如权利要求1所述的一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,其特征在于:所述未使用比特位屏蔽效应指汇编指令仅对源寄存器的部分比特位操作,源寄存器未使用的比特位不受SEU影响。
3.如权利要求1所述的一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,其特征在于,所述比较指令屏蔽效应指的是比较指令中源寄存器对SEU的屏蔽效应,其计算方法为:比较所述比较指令中的两个源寄存器中存储的二进制值,从最高位开始逐位比较,找到第一个二进制值不相等的比特位,所述源寄存器中所述比特位的下一个低位到最低比特位上发生的SEU都将被屏蔽。
4.如权利要求3所述的一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,其特征在于:于所述比较指令屏蔽效应计算中,对于二进制值大的源寄存器,从所述第一个二进制值不相等的比特位到最高位之间二进制值为0的比特位上发生的SEU将被屏蔽,对于二进制值小的源寄存器,从所述第一个二进制值不相等的比特位到最高位之间二进制值为1的比特位上发生的SEU将被屏蔽。
5.如权利要求1所述的一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,其特征在于,所述不等屏蔽效应指的是汇编指令中包含比较两个源寄存器是否相等的操作时,所述两个源寄存器对SEU的屏蔽效应,其计算方法为:若所述两个源寄存器中存储的二进制值相等,则所述两个源寄存器中的所有比特位上发生的SEU都不能被屏蔽;若所述两个源寄存器中存储的二进制值只有一个比特位不相等,则所述两个源寄存器中除所述不相等的比特位外的所有比特位上发生的SEU都被屏蔽;若所述两个源寄存器中存储的二进制值有两个或两个以上的比特位不相等,则所述两个源寄存器中的所有比特位上发生的SEU都被屏蔽。
6.如权利要求1所述的一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,其特征在于,所述延迟屏蔽效应为汇编指令中由目的寄存器引起的对源寄存器中某些比特位上发生的SEU的屏蔽效应,其屏蔽机理为:将指令中源寄存器的某个比特位电平翻转引起的目的寄存器中电平翻转的比特位的集合称为该比特位在目的寄存器中的影响区域,若指令中源寄存器的某个比特位在其目的寄存器中的影响区域中的所有比特位上发生的SEU都将被屏蔽,则该比特位上发生的SEU将被屏蔽。
7.如权利要求6所述的一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,其特征在于:在计算延迟屏蔽效应时,必须先决定源寄存器中的比特位与其在目的寄存器中的影响区域之间的映射关系,对于汇编指令集中按位操作的指令,所述映射关系为直接映射;对于汇编指令集中移位操作或旋转操作的指令,所述映射关系为移位映射;对于汇编指令集中加法或减法操作的指令,所述映射关系为行波进位映射;对于汇编指令集中的其他指令,所述映射关系为全映射。
8.如权利要求1所述的一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,其特征在于:于步骤S2中,所述寄存器屏蔽窗口定义为寄存器在ACE区间内对SEU有屏蔽效应的比特位的集合,寄存器在ACE区间上对SEU的屏蔽因子为寄存器屏蔽窗口中包含的比特位数量与寄存器包含的比特位数量的比值;
若ACE区间的屏蔽效应仅由指令内屏蔽效应决定,则ACE区间的屏蔽窗口为由指令内屏蔽效应决定的屏蔽窗口;
若ACE区间的屏蔽效应由指令内屏蔽效应和延迟屏蔽效应共同决定,则所述ACE区间的屏蔽窗口为由指令内屏蔽效应决定的屏蔽窗口与由延迟屏蔽效应决定的屏蔽窗口的并集;
若ACE区间的屏蔽效应由指令内屏蔽效应和故障传播效应共同决定,则所述ACE区间的屏蔽窗口为由指令内屏蔽效应决定的屏蔽窗口与下一个ACE区间的屏蔽窗口的交集;
若ACE区间的屏蔽效应由指令内屏蔽效应、延迟屏蔽效应和故障传播效应共同决定,则所述ACE区间的屏蔽窗口为由指令内屏蔽效应决定的屏蔽窗口与由延迟屏蔽效应决定的屏蔽窗口的并集,所得屏蔽窗口与下一个ACE区间的屏蔽窗口的交集。
9.如权利要求1所述的一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,其特征在于:于步骤S3中,将所述寄存器屏蔽窗口关系图的节点分为源节点和目的节点两类,所述源节点记录当前指令执行周期,指令中源寄存器的寄存器名称,与由指令内屏蔽效应决定的寄存器屏蔽窗口。目的节点记录当前指令执行周期,指令中目的寄存器的寄存器名称,源寄存器中的比特位与其在目的寄存器中的影响区域之间的映射关系;
于执行程序时,取出当前运行指令,分析其源寄存器和目的寄存器,构建源节点和目的节点,源节点的父节点为最近构建的有相同寄存器名称的节点,若目的节点不满足情况(b)且满足情况(c),则将目的节点作为源节点的子节点加入所述寄存器屏蔽窗口关系图;否则将所述目的节点作为单独的节点加入所述寄存器屏蔽窗口关系图,其中情况(b)为指令的源寄存器中的比特位与其在目的寄存器中的影响区域之间的映射关系为全映射,所述情况(c)为指令的目的寄存器对SEU有屏蔽效应。
10.如权利要求1所述的一种利用寄存器屏蔽窗口分析寄存器架构敏感因子的方法,其特征在于:于步骤S4中,从所述寄存器屏蔽窗口关系图的叶子节点向根节点方向遍历每一个节点,每一个节点只访问一次,当一个节点的所有子节点都被访问过时该节点才能被访问;对于每一个源节点,其对应的ACE区间的末端为该节点所记录的指令执行周期,其对应的ACE区间的起始端为该节点的父节点所记录的指令执行周期,其对应的ACE区间的屏蔽因子可以根据子节点数目与类型根据步骤S2计算得到,统计每个寄存器的总的有效ACE区间长度,再除以程序总的运行时间,即获得寄存器的AVF值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811550639.1A CN109634797A (zh) | 2018-12-18 | 2018-12-18 | 一种用寄存器屏蔽窗口分析寄存器架构敏感因子的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811550639.1A CN109634797A (zh) | 2018-12-18 | 2018-12-18 | 一种用寄存器屏蔽窗口分析寄存器架构敏感因子的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109634797A true CN109634797A (zh) | 2019-04-16 |
Family
ID=66075160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811550639.1A Pending CN109634797A (zh) | 2018-12-18 | 2018-12-18 | 一种用寄存器屏蔽窗口分析寄存器架构敏感因子的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109634797A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934166A (zh) * | 2022-11-08 | 2023-04-07 | 济南新语软件科技有限公司 | 一种基于可动态构建寄存器的高效操作方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102770777A (zh) * | 2010-03-04 | 2012-11-07 | 罗伯特·博世有限公司 | 用于确定错误屏蔽因素的反向分析的改善 |
CN107817439A (zh) * | 2016-09-13 | 2018-03-20 | 北京航空航天大学 | 一种基于sram型fpga敏感因子的功能失效时间评估方法 |
-
2018
- 2018-12-18 CN CN201811550639.1A patent/CN109634797A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102770777A (zh) * | 2010-03-04 | 2012-11-07 | 罗伯特·博世有限公司 | 用于确定错误屏蔽因素的反向分析的改善 |
CN107817439A (zh) * | 2016-09-13 | 2018-03-20 | 北京航空航天大学 | 一种基于sram型fpga敏感因子的功能失效时间评估方法 |
Non-Patent Citations (3)
Title |
---|
JINLING ZHANG 等: ""GBMW: An Accurate Framework for Exploiting Soft"", 《2017 IEEE 2ND ADVANCED INFORMATION TECHNOLOGY,ELECTRONIC AND AUTOMATION CONTROL CONFERENCE》 * |
张金铃: ""寄存器中软错误屏蔽效应分析和部分加固技术研究"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
焦佳佳: ""处理器中分析模型驱动的高效软错误量化方法研究"", 《中国博士学位论文全文数据库信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934166A (zh) * | 2022-11-08 | 2023-04-07 | 济南新语软件科技有限公司 | 一种基于可动态构建寄存器的高效操作方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101198935B (zh) | 基于位电平错误计数的错误抑制的选择性激活 | |
George et al. | Transient fault models and AVF estimation revisited | |
CN102770777B (zh) | 用于确定错误屏蔽因素的反向分析的改善 | |
US7926021B2 (en) | Insertion of error detection circuits based on error propagation within integrated circuits | |
CN106021040B (zh) | 一种基于线形汇编指令差异性变换的dsp软错误检测方法 | |
Donaldson et al. | Automatic analysis of scratch-pad memory code for heterogeneous multicore processors | |
Bergaoui et al. | A new critical variable analysis in processor-based systems | |
Cardarilli et al. | Bit flip injection in processor-based architectures: a case study | |
Schirmeier | Efficient fault-injection-based assessment of software-implemented hardware fault tolerance | |
Vallero et al. | Cross-layer reliability evaluation, moving from the hardware architecture to the system level: A CLERECO EU project overview | |
CN109634797A (zh) | 一种用寄存器屏蔽窗口分析寄存器架构敏感因子的方法 | |
Păun et al. | Sequentiality induced by spike number in SNP systems: small universal machines | |
JP6045351B2 (ja) | 検証装置及び検証方法 | |
Ebrahimi et al. | Event-driven transient error propagation: A scalable and accurate soft error rate estimation approach | |
Hill et al. | An accurate flip-flop selection technique for reducing logic SER | |
Velazco et al. | Upset-like fault injection in VHDL descriptions: A method and preliminary results | |
Riefert et al. | Identification of critical variables using an FPGA-based fault injection framework | |
Cannon et al. | Multiscale system modeling of single-event-induced faults in advanced node processors | |
CN110007738B (zh) | 适用于敏感电路的抗瞬时电离辐射复位后运行状态重构方法 | |
US20090210839A1 (en) | Timing closure using multiple timing runs which distribute the frequency of identified fails per timing corner | |
Aidemark et al. | Path-based error coverage prediction | |
CN110377924A (zh) | 硬错误模拟及其使用 | |
Restrepo-Calle et al. | Efficient metric for register file criticality in processor-based systems | |
Chen | Soft Error Analysis and Mitigation at High Abstraction Levels | |
Huffelen | Observability of off-the-shelf microarchitectures based on the RISC-V Instruction Set Architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190416 |