论文部分内容阅读
随着半导体器件工艺的持续缩小,处理器面临着更严峻的错误威胁,包括软错误、硬件磨损、工艺变动等。这使得原来不需要考虑容错的非关键领域的应用也面临错误的威胁。众核处理器比多核处理器能提供更高的性能和更低的功耗密度,因此它的开发和应用日益广泛。众核处理器的结构和多核有很大差别:每个核相对简单且通常不使用前瞻执行或分支预测等技术;互联方式主要是片上网络而不是总线;硬件Cache的一致性难以保证而主要使用软件Cache或局部存储;操作系统通常只运行在控制核上而不是每个核等等。这些导致众核处理器的容错技术与多核有很大不同,研究适合众核处理器的低开销容错技术很有必要。众核处理器适合计算密集的应用而不太适合控制密集的应用。目前它在可靠性要求很高的关键领域如航天、能源等使用的还较少,所以本文主要面向通常领域研究容错技术。通常领域应用的容错对开销极为敏感,难以承受传统容错方式的开销,如三模冗余甚至是双模冗余。众核处理器容错存在很多变动因素。处理器集成了成百上千个核通常会同时运行多个应用,但是各个应用对容错的需求不同。受限于应用本身的并行性,众核处理器的计算效率通常较低且会随着应用的运行发生变化。芯片的错误率受温度、电压、主频等操作环境影响较大,随着操作环境的变化芯片的错误率也会变化。着眼于通常领域的众核处理器的容错特征,本文提出了自适应容错技术,它根据应用的容错需求、处理器的计算效率、芯片的错误率等动态地调整容错方式从而降低容错开销。本文的主要研究工作和创新点如下:1.针对大多数冗余技术硬件开销较大的问题,提出了在众核处理器上动态耦合容错对的轻量级冗余技术,并通过软硬件协同提高错误检测和错误恢复的性能。冗余对是两个执行相同程序的处理器核,冗余对通过比较执行结果检测错误。通常的技冗余技术为了加速冗余对的性能会修改处理器的系统结构和添加较多硬件。本文面向通常领域应用提出在不修改系统结构和只添加少量硬件的前提下利用处理器本身的资源构建冗余对的轻量级冗余技术,它可以将处理器上任意两个核耦合为冗余对。本文划分容错任务为错误检测和错误恢复,借助软硬件协同方式降低冗余执行的开销。使用硬件进行计算结果的比对,它在增加少量硬件的情况下能极大地降低错误检测延迟和失效率。通过软硬件协同对检查点的状态保存进行延迟隐藏,它减少了检查点保存的开销,提高了容错执行的性能。2.针对异常检测技术错误覆盖范围小的问题,提出一种面向众核执行特征的核间异常检错方法,并通过动态混合DMR(双模冗余)技术进一步提高异常检错的错误覆盖率。异常检错是通过检测处理器的异常行为如指令计算溢出、地址访问越界、死循环等进行错误检测的技术,它不需要重复执行程序因而开销极小。通常的研究将处理器“极小概率发生的行为”当做异常,而本文提出将处理器核间的“行为差异”当做异常,这极大地扩展了异常覆盖的范围。本文通过比对执行同一个应用的各个处理器核之间的行为差异(如指令执行数、访存频率等)来区分异常行为。这可以极大的提高发现错误和降低误判的可能性,能将错误覆盖率提高到接近90%。由于不同程序的对错误的敏感程度不同,众核系统在执行不同程序时系统的错误率也可能不同。为了进一步提高错误的覆盖率,本文提出在错误率较高时使用DMR进行检错的混合异常检错技术。它能够以较低的开销提升较高的错误覆盖率。3.针对全冗余导致芯片吞吐率减半的问题,提出了一种可按应用容错需求配置冗余比例的冗余技术,并通过动态调度冗余核进一步提高芯片的吞吐率。通常的容错都是对所有应用冗余的全系统容错,这会造成芯片的吞吐率减半。本文根据应用的容错需求只为需要容错的应用提供容错,这可以降低冗余执行的比例,在容错需求较小时芯片的吞吐率下降非常小。冗余执行通常使用两个核执行同一个程序,我们将其中一个负责输入输出的核称为容错主核,另一个称为冗余核。通常双模冗余的冗余核的数量等于容错主核的数量,本文提出当主核吞吐率较低时用较少的冗余核为较多的主核容错,这可以降低冗余核的数量,特别是当容错需求较大时可极大提高芯片的吞吐率。4.针对固定检查点技术在错误率变动时开销较大的问题,提出根据系统错误率调整检查点间隔的自适应检查点技术。检查点是系统容错的主要机制,检查点的开销和检查点的间隔密切相关,目前检查点间隔的确定都是基于恒定错误率的。而在错误率变动的情况下,自适应检查点通过预测系统的错误率从而确保系统的检查点间隔始终接近最优状态,相比固定方法它能够显著降低检查点的开销。但是自适应方法所能获得的性能收益与错误变动的具体程度相关。因此本文基于系统的温度、电压、位置等因素对错误率的影响原理,建立了一个错误率变动的模型(它包括变动幅度、变动持续时间等);基于错误变动模型,从理论上研究了各种形式的错误变动对自适应检查点的影响方式、影响幅度;提出了一种基于系统错误历史预测错误率的方法,验证了在实际情况下自适应检查点能够达到的性能收益。本文根据通常领域应用在众核处理器上容错的特性,提出动态地适应应用的容错需求、处理器的计算效率和系统的错误率等多种自适应容错技术。这些容错技术可以极大地降低众核处理器容错的开销,具有较大的现实意义。