论文部分内容阅读
随着半导体工艺和技术的发展,晶体管的极限电压变得越来越低,且噪声容忍度变得越来越小。晶体管的这种发展趋势使得计算机系统变得越来越脆弱。当外界环境中出现的高能粒子照射在计算机系统设备上时,系统中的晶体管的状态会受到破坏,从而导致硬件构件出现瞬时故障(Transient Fault)。硬件构件出现的瞬时故障也被称为软错误(Soft Error),且其正日益成为影响系统可靠性的巨大威胁。如何实现软错误容错,从而增强系统的可靠性是一个受到广泛关注的问题。相比于硬件冗余技术,面向程序级的软错误容错技术具有很多优点,如:代价低、独立于硬件设计、灵活设计与实现等。因此,面向程序级别的软错误容错技术已成为软错误容错的一个研究热点。本文从以下两个方面深入展开面向程序级的软错误容错研究:软错误对系统可靠性的影响分析和评估,以及软错误容错方法。软错误对系统可靠性的影响分析和评估为软错误容错方法的设计和实现提供依据。本文工作的主要贡献和创新总结如下:1.本文建立了由软错误所导致的程序错误传播模型,并基于此模型分析了软错误导致的系统状态变化。首先,分析了软错误对程序代码以及程序中所包含数据的影响。根据此分析以及硬件构件在指令流水线过程中的作用,建立了软错误发生模型。在软错误发生模型的基础上,分析了软错误导致的程序错误在程序指令级别的传播,并建立了Petri网模型以描述程序错误传播所导致的系统状态变化。联合故障注入实验结果,在程序错误传播模型上模拟分析了软错误导致的系统状态结果。Petri网模型模拟实验以及故障注入实验结果反映了由软错误导致的程序错误传播规律。软错误导致的程序错误传播模型模拟结果和故障注入实验结果能为设计更好的容错算法提供基础。2.本文建立了软错误影响下的系统可靠性模型。首先,提出了一种基于程序静态分析的硬件构件AVF(Architectural Vulnerability Factor)评估方法,并以此来衡量硬件构件受到软错误的影响程度。本文分析了硬件构件在指令执行中的作用,并记录该硬件构件在指令执行过程中的参数。基于软错误导致的程序控制流错误和数据流错误分析,提出了硬件构件AVF评估方法。除此之外,本文提出了一种软错误发生条件下度量系统可靠性的方法。在此方法中,首先以硬件构件AVF度量出硬件构件的可靠性。接下来,基于软错误对系统可靠性的影响,以软错误发生条件下软件可靠性等效地计算系统可靠性。结合软错误发生条件下硬件、软件状态分析,以及软件可靠性理论,建立了软件可靠性模型。3.在SIHFT(Software-Implemented Hardware Fault Tolerance)系统可靠性和性能存在一定冲突的背景下,本文研究了系统可靠性与性能的优化和权衡。基于程序级软错误屏蔽,本文分析了SIHFT系统中程序冗余的配置优化。在此分析中,与控制流有关的两种代码能够屏蔽软错误。它们是空闲代码和动态死代码。在这两种代码中出现的程序错误对程序结果的影响基础上,本文给出了程序级错误屏蔽相关代码的保护条件。基于软错误在程序级的屏蔽,分析了程序冗余配置的优化,从而优化SIHFT系统可靠性和性能。对于能使系统可靠性与性能产生冲突的程序冗余,面向应用对系统的不同要求分别进行了程序冗余配置分析,从而分析了如何权衡SIHFT系统的可靠性和性能。4.以系统可靠性和性能平衡为目的,本文提出并实现了一种基于部分程序保护的静态软错误容错方法。此方法分为软错误检测机制以及软错误恢复机制。本文将程序分为受保护的程序区域和非保护的程序区域。基于SIHFT系统可靠性与性能的优化分析,列为非保护的程序是那些更易受软错误影响的程序区域。对于受到保护的区域,本文的方法保证了程序数据流和控制流的正确性以实现程序保护。进一步地,本文提出了一种结合检查点技术和指令级故障容错技术的数据流错误恢复方法。基于程序数据流分析以及程序切片技术,本方法在程序中设置检查点。当在程序的受保护区域发现了数据流错误,软错误恢复机制利用检查点技术将系统恢复到出现错误之前的一个更为合理的正确状态。5.基于动态软错误容错可以覆盖保护更多种类型的程序,本文研究了软错误发生条件下运行时软件的可靠性相关因素。除此之外,本文提出和实现了一种基于程序动态保护的软错误容错方法。软错误对指令计算的影响被传递到对函数计算结果的影响。根据函数的计算结果,分析了能导致函数出现错误结果的指令错误。基于软错误对指令和函数的影响结果,研究了软错误发生条件下运行时软件的可靠性相关因素。此外,以运行时可执行代码为容错对象,本文基于二进制插桩框架实现了一种基于程序动态保护的软错误容错方法。此方法可以实现动态保护程序中易受软错误影响的函数,从而合理地权衡程序可靠性和性能。