System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于系统单粒子软错误可靠性评估,涉及一种基于动态指令流的高效多核处理器故障注入方法。
技术介绍
1、在空间应用中,嵌入式处理器系统在高速数传、信号通信、导航处理等数据信息处理和控制领域得到广泛应用,然而由于空间单粒子辐射效应的存在,单粒子软错误对处理器运行状态的影响,其故障形式表现为以下两类:(1)系统运行状态异常或者跑飞、死循环,此类故障称为症状型故障,当观测到故障发生时,系统已经奔溃;(2)系统结果出错,此类由于状态出错造成结果故障,称为状态错误故障,此时整个程序状态表面正常运行,但输出结果错误,进而可引起系统连锁错误指示。上述状态错误引发的系统故障由于具备随机性、隐蔽性特点,难以及时观测和恢复,但又是易发性故障,因此通过采用地面模拟故障注入方法,实现对系统单粒子翻转敏感动态指令流进行故障注入,模拟空间辐照环境下的系统工作稳定性,提前进行故障预判分析,降低系统故障发生的几率,提升系统在轨可靠性运行。
2、当前的技术多基于修改指令层级代码进行故障注入行为的表述,或者基于硬件故障方式注入,其注入行为往往需要预编译,并且属于粗放型注入,在实现过程中无法模拟单粒子翻转效应进行实时、有效和精确故障注入,造成了故障注入测试范围、检测效率降低等缺点,。因此,当前技术在设计的覆盖性、有效性和检测效率等方面依然有改善提升空间。
技术实现思路
1、本专利技术解决的技术问题是:克服现有技术的不足,提出一种基于动态指令流的高效多核处理器故障注入方法。
2、本专利技术解
3、一种基于动态指令流的高效多核处理器故障注入方法,包括:
4、确定多核处理器的核心id;
5、根据确定的处理器核心id,提取原始指令流;
6、将提取到的原始指令流格式化为动态指令流;
7、基于动态指令流,筛选易受单粒子翻转影响的指令,生成筛选后的动态指令流文件;
8、以筛选后的动态指令流文件进行随机分布截取动态指令,将gdb调试器切换到要注入的处理器核心id;
9、读取编译后带调试功能的应用程序源文件,提供gdb调试器的断点调试信息;
10、根据截取的动态指令,创建故障注入断点,根据注入指令的执行次数确定停止位置;
11、注入故障到相应资源处,恢复多核同步执行,继续执行应用程序。
12、优选的,根据确定的处理器核心id,提取原始指令流的方法如下:
13、对于每条运行的指令,利用gdb调试器的断点功能,将应用程序运行于指令入口处暂停,供后续gdb调试;
14、通过gdb调试器单步执行功能让处理器核心的应用程序汇编指令按单指令逐步执行;
15、在逐条运行的指令断点处,通过命令查看pc寄存器获取当前的汇编指令信息,并生成动态运行的原始指令流。
16、优选的,将提取到的原始指令流格式化为动态指令流,格式化内容如下:
17、<coreid,curindex,machcode,func+offset,asmcode>
18、其中,coreid是指当前注入的处理器核心id,curindex是指当前指令的运行序号,代表其在总的指令执行流程中的第几次执行;machcode是指当前指令的机器码;func+offset代表指令在运行过程中提供给故障注入的断点位置;asmcode是指当前指令的汇编指令。
19、优选的,易受单粒子翻转影响的指令,包括加载与存储指令、整数与浮点运算指令、逻辑运算指令以及跳转指令。
20、优选的,以筛选后的动态指令流文件进行随机分布截取动态指令,将gdb调试器通过thread命令切换到要注入的处理器核心id。
21、优选的,根据截取的动态指令,创建故障注入断点,根据注入指令的执行次数确定停止位置,实现方法如下:
22、根据随机分布获得需要注入的寄存器编号及寄存器翻转位;
23、通过gdb调试器的set指令进行故障注入,注入的故障是采用位翻转的方式实现的,故障掩码为在数据位宽中只有故障注入位为1,其余位都为0的掩码数值。
24、优选的,位翻转的实现是通过目标资源值与故障掩码进行按位异或实现的,根据按位异或的二进制加法特性,当注入位的值与1异或运算,会将对寄存器当前值进行0或1的翻转,而其他值保持原始值,从而实现按位翻转的故障注入。
25、优选的,注入故障后,通过应用程序执行结果,判断故障注入对系统运行影响,评估系统设计可靠性。
26、本专利技术与现有技术相比的有益效果是:
27、(1)本专利技术依据多核处理器的加存运算与指令跳转特性,筛选出单粒子翻转敏感的动态指令流,通过模拟注入方式实现了程序受单粒子翻转影响的故障工作模式;
28、(2)本专利技术故障注入采用了伴随程序指令执行时间尺度的断点动态注入方式,单条指令粒度的精细故障注入,具有可控精确的注入时机,有效避免了注入时机选择对注入错误的生效,最大程度避免了无效注入,有效提高覆盖性、有效性和检测效率,;
29、(3)本专利技术实现了对多核处理器的故障注入,相比单核扩展了故障注入的适用范围;
30、(4)本专利技术不单纯依靠单粒子辐照试验对系统单粒子防护可靠性评估,从而减少对单粒子试验的依赖,提升评估系统抗seu评估效率。
本文档来自技高网...【技术保护点】
1.一种基于动态指令流的高效多核处理器故障注入方法,其特征在于,包括:
2.根据权利要求1所述的一种基于动态指令流的高效多核处理器故障注入方法,其特征在于,根据确定的处理器核心ID,提取原始指令流的方法如下:
3.根据权利要求1所述的一种基于动态指令流的高效多核处理器故障注入方法,其特征在于,将提取到的原始指令流格式化为动态指令流,格式化内容如下:
4.根据权利要求1所述的一种基于动态指令流的高效多核处理器故障注入方法,其特征在于,易受单粒子翻转影响的指令,包括加载与存储指令、整数与浮点运算指令、逻辑运算指令以及跳转指令。
5.根据权利要求1所述的一种基于动态指令流的高效多核处理器故障注入方法,其特征在于,以筛选后的动态指令流文件进行随机分布截取动态指令,将GDB调试器通过thread命令切换到要注入的处理器核心ID。
6.根据权利要求1所述的一种基于动态指令流的高效多核处理器故障注入方法,其特征在于,根据截取的动态指令,创建故障注入断点,根据注入指令的执行次数确定停止位置,实现方法如下:
7.根据权利要求6
8.根据权利要求1所述的一种基于动态指令流的高效多核处理器故障注入方法,其特征在于,注入故障后,通过应用程序执行结果,判断故障注入对系统运行影响,评估系统设计可靠性。
...【技术特征摘要】
1.一种基于动态指令流的高效多核处理器故障注入方法,其特征在于,包括:
2.根据权利要求1所述的一种基于动态指令流的高效多核处理器故障注入方法,其特征在于,根据确定的处理器核心id,提取原始指令流的方法如下:
3.根据权利要求1所述的一种基于动态指令流的高效多核处理器故障注入方法,其特征在于,将提取到的原始指令流格式化为动态指令流,格式化内容如下:
4.根据权利要求1所述的一种基于动态指令流的高效多核处理器故障注入方法,其特征在于,易受单粒子翻转影响的指令,包括加载与存储指令、整数与浮点运算指令、逻辑运算指令以及跳转指令。
5.根据权利要求1所述的一种基于动态指令流的高效多核处理器故障注入方法,其特征在于,以筛选后的动态指令流文件进行随机分布截取动态指令,将gdb...
【专利技术属性】
技术研发人员:高翔,赖晓玲,翟盛华,巨艇,朱启,
申请(专利权)人:西安空间无线电技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。