论文部分内容阅读
当前,微处理器正越来越多地被应用于各种恶劣环境中,但是高能粒子产生的单粒子效应会对微处理器的正常工作产生影响,尤其对应用在太空环境中的微处理器而言,影响更严重,成为其可靠性降低的首要因素,而本文所研究的控制流检测技术正是防止和克服由于单粒子效应而造成程序错误运行的有效手段。目前控制流检测有纯软件和软硬件结合两种方式,纯软件控制流检测方式处理灵活,不受硬件的限制适合在不同硬件平台下应用,但系统开销大。而软硬件结合控制流检测方法具有系统开销小、软件部分负担少等特点,有很广阔的应用前景。国防科大研发的高可靠R80515芯片具有多重硬件加固功能,并支持软硬件结合的控制流检测。本文基于高可靠R80515展开软硬件结合控制流检测算法的研究。本论文首先介绍控制流检测理论和常用的控制流检测算法,着重阐述和分析了汇编级控制流检测方法CFCSS(control flow checking bv softwaresignatures),详细描述了CFCSS的控制流检测原理、签名值分派算法、控制流检测过程等技术细节,并指出CFCSS控制流检测算法存在的混淆和多共享扇入等问题,还对CFCSS算法不能检测的控制流错误进行归类。在此基础上提出了基于多调整签名的控制流检测算法——CFCMAS(Control FlowChecking based on Multiple Adjusting Signature)。多调整签名思想的引入,使得共享多扇入等控制流检测难题迎刃而解。文中对基本块的划分方法、签名值的生成方法、签名值的分派算法等控制流检测的关键问题进行了研究和解决,使得控制流检测的存储代价和时间消耗更小。在理论研究的基础上,通过在通用嵌入式编译器SDCC中插入一个控制流检测层的途径实现了CFCMAS算法。最后选取常用的测试程序,分别用不同的控制流检测算法进行测试,重点分析对比了CFCMAS算法与其它常用控制流检测算法的各项性能,结果表明CFCMAS算法在检测性能和资源消耗上都优于其他算法。