论文部分内容阅读
随着集成电路制造工艺的不断进步,电子器件的集成度和工作频率越来越高、工作电压越来越低,致使其受宇宙射线、电磁辐射等因素影响而发生软错误的概率显著增加。为应对软错误对计算机系统可靠性带来的挑战,国内外纷纷展开了针对软错误的容错技术的研究。容错技术从实现方式上通常分为硬件容错和软件容错,与需要重新设计或改造硬件设备的硬件容错技术相比,软件容错技术以其开发成本低、周期短、可灵活配置等优势而备受关注。软件容错技术一直面临着时间开销大的问题,已有研究表明,程序整体的可靠性主要受程序中的某些关键数据和代码的影响,且不同编译优化序列会对程序整体的可靠性造成不同的影响,为了能以较小的时间开销获得程序可靠性的提升,研究人员开展了对程序可靠性优化技术的研究。其中,对影响程序可靠性的关键数据和代码进行分析以及对程序整体可靠性进行评估是实现程序可靠性优化的必要步骤,如何快速、准确地对程序可靠性进行分析与评估是实现程序可靠性优化的首要问题。本文围绕软错误影响下的程序可靠性分析与优化两个方面展开研究,主要贡献如下:1.提出了一种基于程序动态特征的可配置故障空间等价类划分方法。为了对影响程序可靠性的关键数据和代码进行分析,通常需要分析程序中每个可能发生故障的位置对程序的影响,即完整故障空间分析。目前,该领域最为常用的技术是故障注入技术,然而,由于程序中全部故障发生位置的数量通常十分庞大,利用故障注入技术进行完整故障空间分析通常需要很大的时间开销。为此,本文提出了一种基于程序动态特征的可配置故障空间等价类划分技术EMO-Pruner,在只针对部分故障位置实施故障注入的基础上,即可得到对完整故障空间的分析结果,同时,该技术还提供了可配置的解决方案,可以让用户在分析精度和时间开销之间取得权衡。EMO-Pruner将故障空间等价类划分问题视为针对等价类数量和划分精度的多目标优化问题,利用故障位置之间的机器状态相似性和数据流等价关系,建立了基于BP神经网络的数据流等价关系判定模型和基于多目标优化技术的等价类划分模型,并利用进化多目标优化算法,同时针对等价类划分精度与等价类数量两个目标进行优化。实验表明,EMO-Pruner能够将完整故障空间分析的时间开销降低2~3个数量级,分析精度可以根据需求灵活配置,在相同的故障空间删减率下分析精度高于同类技术Rapid和Smart Injector。2.提出了一种支持DWC软加固技术的程序错误传播分析模型Quinary。在程序可靠性评估领域,除故障注入技术外,研究人员还采用错误模型分析技术根据错误对程序的影响规律进行建模分析,以获取程序的可靠性指标。相对于故障注入技术,错误模型分析技术不需要反复对程序进行模拟执行,因而具有更高的分析效率。然而,现有的错误模型分析技术普遍没有考虑软加固机制对错误传播的影响,因而无法针对软加固后的程序给出准确的分析结果。本文针对目前软加固技术中最具代表性的复算校验(DWC)技术展开研究,分析了在DWC软加固实现中可能影响其保护范围的几种因素,提出了支持DWC的错误传播分析模型Quinary。该模型考虑了错误在静态数据依赖、控制流、内存、跨基本块的活跃变量上的传播,并考虑了错误检测机制对错误传播的影响,在支持对未加固程序进行错误传播分析的基础上,支持对DWC软加固后程序的错误传播分析。实验表明,Quinary在DWC软加固后的程序上对SDC率和故障覆盖率的分析结果能够达到与故障注入实验结果相当的准确程度,且在分析效率上可超过故障注入方法3个数量级以上,弥补了经典模型分析技术针对软加固后的程序不能得到准确分析结果的缺陷,同时,由于Quinary模型可分析的错误发生位置范围更广,且考虑了跨越基本块的活跃变量对错误传播的影响,Quinary在未加固程序上相对于经典模型Trident也具有更高的准确性。3.提出了一种基于强化学习的面向程序可靠性的编译优化序列生成方法。传统的软加固技术通常通过添加冗余计算来实现错误检测和恢复,造成较大的时空开销,在某些对计算资源限制较为严格或对实时性要求较高的应用领域,其代价往往难以接受。本文通过实验,研究了不同的编译优化序列对程序容错能力、运行性能以及可靠性的影响,并利用强化学习技术的自动学习能力,挖掘程序特征、编译优化序列和程序可靠性三者之间的内在联系。在LLVM编译器基础上建立了面向程序可靠性的交互式迭代编译框架ROICF,并将编译优化序列生成的过程定义为一个马尔可夫决策过程,然后提出了一种基于强化学习技术的模型ROPOA3C,通过多个异步运行的智能体与ROICF进行交互与更新,学习到获取最大奖励值的行动策略,使之具有对新程序自动生成面向可靠性目标的编译优化序列的能力。实验表明,ROPOA3C能够将在训练集中学习到的策略快速应用于新的程序,可靠性相对于原始程序平均提升3.62倍,平均可靠性增益有95%以上的概率超过O3优化0.2137~0.3459,与现有的同类方法GA相比,ROPOA3C在经过训练后,能够以低于其4~5个数量级的时间开销在新程序上达到与之相当的可靠性增益。