[发明专利]一种基于汇编指令的动态同步单粒子软错误防护方法在审
| 申请号: | 201510310153.0 | 申请日: | 2015-06-08 |
| 公开(公告)号: | CN104932950A | 公开(公告)日: | 2015-09-23 |
| 发明(设计)人: | 高翔;赖晓玲;王健;龚科;袁雅婧 | 申请(专利权)人: | 西安空间无线电技术研究所 |
| 主分类号: | G06F11/08 | 分类号: | G06F11/08 |
| 代理公司: | 中国航天科技专利中心 11009 | 代理人: | 陈鹏 |
| 地址: | 710100 陕*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 汇编 指令 动态 同步 粒子 错误 防护 方法 | ||
1.一种基于汇编指令的动态同步单粒子软错误防护方法,其特征在于包括如下步骤:
(1)按照系统软件的用户需求书将系统软件划分为N个功能模块,记为v1,v2,v3…vN,然后对各个功能模块进行汇编指令级编程,得到每个功能模块对应的汇编指令的指令序列,根据系统软件各个功能模块的执行流程建立有向图V={v1,v2,v3…vi…vN},任意确定功能模块vi的静态标识位Si,其中,N为正整数且N≥2,N个静态标识位Si各不相同,i=1,2,3…N;
(2)复制功能模块vi对应的汇编指令的指令序列中的中间变量,将复制得到的中间变量记为第二中间变量,然后使用中间变量执行功能模块vi对应的汇编指令的指令序列得到结果数据data1,使用第二中间变量执行功能模块vi对应的汇编指令的指令序列得到结果数据data2;所述的中间变量为在指令序列执行过程中用于生成其它变量的变量的值,其中,i的初值为1;
(3)比较结果数据data1、结果数据data2,如果两者结果相同,则将数据data1作为功能模块vi的运算结果并存储,转入步骤(5),如果两者结果不相同,则转入步骤(4);
(4)复制功能模块vi对应的汇编指令的指令序列中的中间变量,记为第三中间变量,并使用第三中间变量执行功能模块vi对应的汇编指令的指令序列,得到结果数据data3,将data3分别与步骤(2)得到的结果数据data1和结果数据data2比较,如果结果数据data3与结果数据data1或者结果数据data2中一个相同,则将结果数据dada3作为功能模块vi的运算结果并存储,然后转入步骤(5),否则重复复制功能模块vi对应的汇编指令的指令序列中的中间变量,并执行功能模块vi对应的汇编指令的指令序列过程,直至出现两个相同的结果数据,并将该结果数据作为功能模块vi的运算结果并存储转入步骤(5);
(5)计算功能模块vi跳转进入的功能模块vm的动态签名值Gm,并与功能模块vm的静态标识位Sm对比,如果两者相同则转入步骤(6),否则读取功能模块vi对应的汇编指令的指令序列中的中间变量,重新执行功能模块vi进行跳转直至功能模块vi的结果数据与步骤(4)得到的功能模块vi的运算结果相同且功能模块vm的动态签名值Gm与功能模块vm的静态标识位Sm相同,然后转入步骤(6),其中,使用有向图判断功能模块vm存在多扇入模块还是单扇入模块,如果功能模块vm存在多扇入模块,则Gm=Si⊕Ai⊕dm,Ai=Si⊕Sj,dm=Sj⊕Sm;如果功能模块vm存在单扇入模块,则Gm=Si⊕dm,dm=Si⊕Sm,⊕为异或运算符号,Sj为功能模块vm的多扇入模块中的起始功能模块vj的静态标识位,起始功能模块vj为功能模块vm的多扇入模块中的一个功能模块;
(6)i=i+1,重复步骤(2)-步骤(5),直至i=N。
2.根据权利要求1所述的一种基于汇编指令的动态同步单粒子软错误防护方法,其特征在于:所述的起始功能模块vj为从功能模块vm的多扇入模块中任意选择得到的一个功能模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安空间无线电技术研究所,未经西安空间无线电技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510310153.0/1.html,转载请声明来源钻瓜专利网。





