论文部分内容阅读
随着工艺技术的不断进展,微处理器变得越来越容易受到瞬态故障的影响,可靠性成为处理器当前面临的重大挑战。面向瞬态故障,本文从故障传播行为分析的角度研究了多核处理器的可靠性问题,研究了高效容错多核处理器的设计与实现技术。取得的主要研究成果如下:1、分析了故障在单个线程内的传播行为。基于检查点方法对程序进行分段容错的现状,我们采用数据流分析方法,分析了硬件故障所引起的数据错误随指令执行的传播行为,分析了故障在单个线程内的段间传播行为,建立了相应的错误传播方程和算法。并提出了基于已知错误的故障定位分析方法,得到了避免故障跨段传播,所需检查数据的最小集合。故障在单个线程内的传播行为分析理论,能够指导处理器核的检错和容错设计。2、分析了故障跨线程的传播行为。具体包括:分析了共享存储并行程序的分段结构;研究了故障在不同并行分段结构上的传播行为,发现杂环结构是产生故障向后污染传播的根本原因;证明了通过修改分段方式能够将杂环和纯环结构转换成无环结构,以避免故障向后污染传播行为的发生;发现了弱存储一致性模型对故障跨线程传播行为的影响。故障跨线程的传播行为分析理论,能够指导多核处理器的检错和容错设计。3、根据故障在单个线程内的传播行为分析,提出了BRO-SOC(BackwardRecovery Oriented Sphere of Correctness)框架的概念,BRO-SOC归纳了故障的检测和隔离边界与系统的存储层次之间的关系,并定义了一个正确性域,随着计算的进行,程序可以分段式地步进,SOC域内的功能部件和程序状态具备逻辑上维持正确性的能力。在BRO-SOC框架下,提出了一种新的基于时间冗余技术的容错处理器核结构DoubleRun,其基本思想是将程序以时间冗余的方式分段执行(即容错事务),确保其中无故障产生后再提交新产生的程序状态。其创新之处在于:(1)使用时间冗余机制容忍系统中的瞬态故障,省去了空间冗余执行方案中的核间队列与核间输出比较通道;(2)将故障检测、隔离边界设定在SOC框架中适当的存储层次,缩小了故障的传播距离和检测延时,减小了前瞻现场规模及维护前瞻现场的硬件开销,且避免由于改动流水线而导致的性能下降;(3)使用写操作的输出作为故障检测手段,并用CRC算法将所有写操作的信息编码到指纹中,通过对比指纹检测故障使故障检测机制更高效;(4)用纯硬件方式实现正确性域之内的检查点,使检查点的创建和维护开销很小。4、根据故障跨线程的传播行为分析,提出了多核并行计算平台的DoubleRun结构——DoubleRun-MP,设计实现了DoubleRun-MP并行容错处理器结构。DoubleRun-MP使容错事务的执行、验证和提交过程可分布式、本地化地完成,无需进行全局同步,增加了系统的可扩展性。DoubleRun-MP设计了PSB缓冲机制,支持处理器核中同时维护多个未经验证容错事务,避免了因父子事务依赖关系而导致的处理器忙等待,提高了处理器的使用率。为支持未验证数据的共享,DoubleRun-MP还使用并修改了MOESI cache一致性协议,使其支持原始执行体与冗余执行体的冗余执行。此外我们还在第三章的理论基础上提出了写前读并行程序分段方法构造容错事务,避免系统检测到故障后回滚时产生的多米诺骨牌回滚效应,使用Lamport时钟对容错事务进行全局排序以支持其新状态按逻辑顺序向下持久化。提出了访存窗口的概念,并设计了指令年龄表,通过限制写操作打破访存窗口确保了原始执行体与冗余执行体的输入一致性,保证了并行程序的执行语义正确性。