摘要
控制流检测技术是防止由于瞬时故障造成程序错误运行的有效手段之一,在ARGOS卫星上测试过的基于汇编语言的软件控制流检测算法CFCSS具有较高的错误检测能力和较低的冗余指令开销,实用性较强,但此算法存在检测混淆和检测出错现象.为此,首先阐述了CFCSS算法中存在的检测混淆和检测出错现象;接下来根据汇编语言特点,修改了基础基本块的选择方法和多调整签名值赋值语句的插入位置,提出了改进的ICFCSS控制流检测算法;为了在ICFCSS算法基础上进一步提高错误检测能力、降低故障延迟时间和冗余指令开销,提出了软硬结合的ICFCSSHS控制流检测方法,此方法在编译程序时只增加了和签名有关的信息,在程序运行时通过译码阶段判指令类型来触发相应的硬件完成控制流检测.实验表明,此方法的冗余代码空间开销比CFCSS算法减少了21.5%,平均未检测出错误率仅为1.5%,具有一定的使用价值.
The control flow checking(CFC) technique is one of the effective ways to avoid programs down caused by transient fault.The control flow checking by software signatures(CFCSS) based on assemble code which has been tested on ARGOS satellite,has not only the relatively high error detecting ability and lower cost in redundant instructions,but also more practicability.However,there are still some detection loopholes and mistaken checking in this algorithm.Firstly the detection loopholes and mistaken checking are explained in CFCSS.Then according to the character of assemble,an improved CFCSS algorithm is presented,which modifies the basic-block selecting method and the insert position of multi-adjusting signature value assign instructions.Furthermore,In order to improve the detecting ability and reduce the cost in redundant instructions on the basis of the improved algorithm,an improved CFCSS using hardware software(ICFCSSHS) algorithm is presented.In this algorithm,only the information about signature is generated in compiler and the control flow checking hardware units are triggered by judging the instruction types in the ID stage.Experimental results show that the redundant code memory overhead of this algorithm is 21.5% lower than that of CFCSS algorithm,and the undetected error rate is only 1.5%.It has strong practical value.
出处
《计算机研究与发展》
EI
CSCD
北大核心
2010年第8期1481-1489,共9页
Journal of Computer Research and Development
基金
国家自然科学基金项目(60973035)
中央高校基本科研业务费专项资金资助项目(HEUCF100606
HEUCF100604
C2009Z028J)~~
关键词
可靠性
硬件故障容错
控制流检测技术
控制流图
基本块
reliability
hardware fault tolerance
control flow checking technique
control flow graph
basic block