运行于处理器上的进程如果在运行期间发生暂态故障,有可能导致严重的系统故障或安全漏洞。因此,必须在对系统造成损害前检测并尽量纠正这些差错。现有的差错检测方法虽然潜在性能优异,但是成本极高,因此无法在实践中部署。为了解决这一问题,提出了一种基于硬件的控制流监控技术。该技术首先从程序二进制接口提取出程序的合法控制流图,计算出CRC签名,对合法的控制流图进行编码;然后,当程序在处理器上运行时,使用预先计算好的签名来检验程序的运行期间控制流。该技术的控制流差错检测覆盖率可达99.98%,且可快速纠正差错,提高了控制流暂态差错的容错性。它对主处理器的性能开销极低(1%左右),面积成本也比较小(〈6%)。给出的控制流运行期间监控技术经过扩展后,可以高效地监控并检测出处理器上正在运行的指令的各种暂态差错。
Transient errors during execution of a process running on a processor can lead to serious system failures or security lapses. It is necessary to detect, and if possible, correct these errors before any damage is caused to the system. The existing error detection method is excellent potential performance, but high cost and hence cannot be deployed in practice. To solve this problem,this paper described a hardware based control flow monitoring technique, firstly, it extracted the valid control flow graph for the application from the application binary and computed the CRC signatures to encode the valid control flow graph. And then used these pre-computed signatures to verify the runtime control flow of the application while it executed on a processor. This technique achieves a high coverage of control flow error detection (99.98%) and has the capability to quickly recover from the error, making it resilient to transient control flow errors. It posed an extremely low performance overhead ( - 1% ) and reasonable area cost ( 〈 6% ) to the host processor. The framework for runtime monitoring of control flow described can be extended to efficiently monitor and detect any transient errors in the execution of instructions on a processor.