高级检索

    汇编级软硬结合的控制流检测方法

    A Hard/Soft Integrated Control Flow Checking Method at Assembly Level

    • 摘要: 控制流检测技术是防止由于瞬时故障造成程序错误运行的有效手段之一,在ARGOS卫星上测试过的基于汇编语言的软件控制流检测算法CFCSS具有较高的错误检测能力和较低的冗余指令开销,实用性较强,但此算法存在检测混淆和检测出错现象.为此,首先阐述了CFCSS算法中存在的检测混淆和检测出错现象;接下来根据汇编语言特点,修改了基础基本块的选择方法和多调整签名值赋值语句的插入位置,提出了改进的ICFCSS控制流检测算法;为了在ICFCSS算法基础上进一步提高错误检测能力、降低故障延迟时间和冗余指令开销,提出了软硬结合的ICFCSSHS控制流检测方法,此方法在编译程序时只增加了和签名有关的信息,在程序运行时通过译码阶段判指令类型来触发相应的硬件完成控制流检测.实验表明,此方法的冗余代码空间开销比CFCSS算法减少了21.5%,平均未检测出错误率仅为1.5%,具有一定的使用价值.

       

      Abstract: 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.

       

    /

    返回文章
    返回