摘要

运行于处理器上的进程如果在运行期间发生暂态故障,有可能导致严重的系统故障或安全漏洞。因此,必须在对系统造成损害前检测并尽量纠正这些差错。现有的差错检测方法虽然潜在性能优异,但是成本极高,因此无法在实践中部署。为了解决这一问题,提出了一种基于硬件的控制流监控技术。该技术首先从程序二进制接口提取出程序的合法控制流图,计算出CRC签名,对合法的控制流图进行编码;然后,当程序在处理器上运行时,使用预先计算好的签名来检验程序的运行期间控制流。该技术的控制流差错检测覆盖率可达99.98%,且可快速纠正差错,提高了控制流暂态差错的容错性。它对主处理器的性能开销极低(1%左右),面积成本也比较小(<6%)。给出的控制流运行期间监控技术经过扩展后,可以高效地监控并检测出处理器上正在运行的指令的各种暂态差错。