基于周期粒度的双冗余流水线级间寄存器备份装置及方法与流程

文档序号:11250744阅读:1014来源:国知局
基于周期粒度的双冗余流水线级间寄存器备份装置及方法与流程

本发明涉及一种微处理器流水线错误的检测与恢复装置,尤其涉及一种sparcv8处理器中流水线错误的检测与恢复装置。本发明还涉及一种sparcv8处理器中流水线中数据翻转错误的屏蔽方法。



背景技术:

单粒子翻转(singleeventupset,seu)是在空间应用环境下,由于单粒子入射导致集成电路中存储单元发生数据翻转错误的事件,是空间环境下电子系统发生故障和工作异常的重要诱因之一。随着半导体工艺技术的快速发展,芯片的尺寸在不断减小,处理器工作频率不断提高,节点工作电压的降低使得单粒子翻转现象越来越严重。单粒子轰击流水线的组合逻辑部分,导致信号发生扰动,有可能会被级间寄存器锁存发生set故障,导致流水线出现错误。单粒子轰击级间寄存器,使其寄存的内容发生翻转,导致seu和mbu故障。研究指出,在纳米级芯片中,单粒子翻转导致的多位数据翻转(mbu)概率也在迅速提高,会导致最多8位随机数据翻转错误,对空间应用的电子系统产生更大的危害。在微处理器及电子系统中采取加固措施对单粒子故障进行容错设计已成为重要的技术手段。

作为现代微处理器的重要组成部分,流水线主要完成程序代码的指令流执行,并将执行结果写入数据存储和寄存器堆。如果单粒子轰击流水线导致级间寄存器发生翻转引发的错误数据被锁存,就会导致流水线执行结果不正确,在没有对流水线单元进行容错加固的情况下,错误的执行结果将会扩散到数据存储和寄存器堆或者执行错误的指令流,进而导致更多不可控的错误产生。因此,对于空间应用的高可靠微处理器而言,进行流水线单元的容错设计具有重要的意义。

现有对空间微处理器的加固技术有以下三种方案:采用基于时间的容错方法,能有效解决mbu问题,但是处理器性能大大降低;采用基于编码的容错方法,只能有效的验证计算部分的正确性,并且不同的编码方式针对不同的单粒子故障不能全部处理,容错能力有限;采用基于硬件冗余的方案,寄存器级三模冗余时,无法应对mbu故障;流水线级三模冗余,虽然可以定位出故障流水线,但是硬件资源功耗等开销较大;流水线级双模冗余可以应对mbu故障,但是无法定位,起不到屏蔽故障的作用,每次都进行流水线回退会显著增加流水线性能开销,尤其是在单粒子故障日益常见的情况下会导致整体处理速度明显降低。自修复双冗余流水线(self-recoverydualpipeline,srdp)在双冗余流水线的基础上,通过比较逻辑检测故障,自校验逻辑定位故障,实现对set、seu、mbu故障导致的错误进行恢复,虽然srdp对单粒子故障有很好的容错效果,但比较逻辑与功能逻辑的串行、自校验的编码逻辑以及复杂的流水线恢复操作导致处理器的主频下降幅度很大。总之,现有技术无法实现一个以低面积、低性能开销并并有效应对seu、set和mbu故障的cpu加固方案。



技术实现要素:

本发明的目的在于设计一种基于周期粒度的双冗余流水线级间寄存器备份装置及方法,能够从系统结构上有效的屏蔽单粒子瞬变(set)、单粒子翻转(seu)、多位数据翻转(mbu)导致的故障,并减少逻辑延迟,提高工作速度。

为实现上述目的,本发明所采用的技术方案为:

一种基于周期粒度的双冗余流水线级间寄存器备份装置,其特征在于:所述基于周期粒度的双冗余流水线级间寄存器备份装置包括功能逻辑a、功能逻辑b、级间寄存器a、级间寄存器b、比较逻辑、备份寄存器、多路选择a和多路选择b;所述功能逻辑a是流水级的功能逻辑执行主体,根据级间寄存器a中的信息执行流水级功能后,给出下一流水级需要寄存到级间寄存器的信息;所述功能逻辑b是流水级的功能逻辑执行主体,根据级间寄存器b中的信息执行流水级功能后,给出下一流水级需要寄存到级间寄存器的信息;所述级间寄存器a用于寄存前一个流水级功能逻辑给出的信息,并将寄存后的信息送入下一流水级的功能逻辑;所述级间寄存器b用于寄存前一个流水级功能逻辑给出的信息,并将寄存后的信息送入下一流水级的功能逻辑;所述比较逻辑设置在流水线a和流水线b之间,比较级间寄存器a和级间寄存器b的信息,用于检测流水线单元的单粒子故障;所述备份寄存器用于定期寄存流水线级间寄存器的信息,在比较逻辑检测出错误后,将备份寄存器的值恢复到两条流水线级间寄存器;所述多路选择a根据比较逻辑给出的错误信息,在功能逻辑a给出的值和备份寄存器的内容之间选出级间寄存器a寄存的信息;所述多路选择b根据比较逻辑给出的错误信息,在功能逻辑b给出的值和备份寄存器的内容之间选出级间寄存器b寄存的信息。

一种基于周期粒度的双冗余流水线级间寄存器备份方法,其特征在于:该级间寄存器备份方法用于基于周期粒度的双冗余流水线级间寄存器备份装置;所述基于周期粒度的双冗余流水线级间寄存器备份装置包括功能逻辑a、功能逻辑b、级间寄存器a、级间寄存器b、比较逻辑、备份寄存器、多路选择a和多路选择b;所述级间寄存器备份方法采用如下步骤和方法对单粒子导致的set、seu、mbu故障进行容错:

(1)指令执行时,流水线单元向指令缓存器输出指令地址及控制信息,从指令缓存中取出指令,分发给两条流水线并行执行;每个周期内,两条流水线五个流水级的功能逻辑根据上一流水级级间寄存器的信息进行操作,给出下一流水级功能逻辑需要的信息;此时,级间寄存器的选通信号无效,转到步骤(2);

(2)在下一个周期上升沿到来时,将功能逻辑a给出的信息更新到级间寄存器a中,将功能逻辑b给出的信息更新到级间寄存器b中,当前周期的级间寄存器a的信息更新到备份寄存器组;转到步骤(3);

(3)在功能逻辑a和功能逻辑b根据级间寄存器a和级间寄存器b进行逻辑运算的同时,比较逻辑对比级间寄存器a和级间寄存器b的信息;如果比较结果均相同,则流水线正常运行,转到步骤(1);如果比较结果出现不同,则说明流水线单元中的某一条流水线受到单粒子轰击,标识流水线故障信号有效,转到步骤(4);

(4)流水线故障信号有效,表明当前周期流水线单元出现故障;禁止流水线单元对数据缓存和寄存器堆的更新使能信号,同时,使能级间寄存器的选通信号,转到步骤(5);

(5)在下一个周期上升沿到来时,将备份寄存器的内容恢复到级间寄存器a和级间寄存器b中;功能逻辑a和功能逻辑b根据正确的级间寄存器a和级间寄存器b的内容重新执行,插入2个等待周期对流水线单元的单粒子故障容错,转到步骤(1)。

本发明实现的一种基于周期粒度的双冗余流水线级间寄存器备份装置及方法,在嵌入式微处理器中将级间寄存器的信息存储到备份寄存器中,一旦比较逻辑检测出单粒子故障,将备份寄存器中的信息恢复到两条流水线相应的级间寄存器中,并对流水线进行暂停,能够屏蔽单粒子轰击流水线单元导致的set、seu和mbu故障,从而可以提高微处理器在空间等恶劣环境下应用的可靠性。

附图说明

图1是五级流水线结构图;

图2是srdp结构图;

图3是基于检查点技术的双冗余流水线结构图;

图4是根据本发明的基于周期粒度的双冗余流水线级间寄存器备份装置结构图;

图5是故障检测与恢复机制结构图;

图6是级间寄存器的seu/mbu故障检测与恢复时序图;

图7是功能逻辑的set故障检测与恢复时序图;

具体实施方式

本实施例结合一种sparcv8体系结构的嵌入式微处理器leon2对本发明的具体实施方式进行说明。该sparcv8体系结构的嵌入式微处理器leon2采用32位的risc架构,其流水线单元为经典的五级流水线,流水线的各个流水级与指令缓存、数据缓存和寄存器堆进行数据交互。

leon2处理器的流水线单元包括取指(if)、译码(id)、执行(ex)、访存(me)、写回(wr)五个组合逻辑单元,以及各流水级之间设置的五组级间寄存器if、if/id、id/ex、ex/me、me/wr,其结构如图1所示。单粒子轰击流水线的组合逻辑部分导致set故障,有可能会被级间寄存器锁存导致流水线错误。单粒子轰击级间寄存器,使其寄存的内容发生翻转,导致seu和mbu故障。组合逻辑产生的关键信息将通过级间寄存器在流水级之间传递,级间寄存器中的错误信息使得流水线单元执行出错误结果,并在me或wr段更新到数据存储器或寄存器堆,同时,可能造成指令流的执行顺序发生错误。

自修复双冗余流水线(self-recoverydualpipeline),简称srdp,其结构示意图如图2所示。srdp基于硬件冗余的思想,对传统的流水线级双模冗余结构进行改进,在两条流水线之间设置比较器对流水线单元进行故障检测,利用自校验模块对级间寄存器进行校验定位出故障流水线,根据比较结果和自校验错误信息对流水线进行恢复,实现对set、seu、mbu故障导致的错误进行执行,虽然srdp对单粒子故障有很好的容错效果,但比较逻辑与功能逻辑的串行、自校验的编码逻辑以及复杂的流水线恢复操作导致处理器的主频下降幅度很大。

针对于srdp容错性能的缺陷,在保证容错效果的基础上,以容错时间开销为代价,避免复杂的容错逻辑导致处理器性能大幅度降低,提出一种基于检查点技术的双冗余流水线,其结构示意图如图3所示,以流水线级双模冗余为基础,并行执行相同的指令流,通过比较器对比两条流水线的级间寄存器以检测单粒子故障。以周期粒度对级间寄存器的内容进行备份,当检测到单粒子故障时,使用2个周期对流水线进行恢复。为避免脏数据流出流水线,在数据缓存和寄存器堆的入口设置写缓冲,通过延迟写入保证信息可靠性。

本发明针对于如何利用备份寄存器以周期粒度备份流水线的级间寄存器内容,一旦流水线单元受到单粒子轰击而造成流水线出现故障,能够将备份寄存器中的信息恢复到两条流水线的级间寄存器中,在下一个周期重新执行上一个周期的操作,消耗两个周期对流水线单元进行恢复。

基于上述基本原理与设置,本发明的基于周期粒度的双冗余流水线级间寄存器备份装置及方法的一种具体实施方式如下:

在sparcv8体系结构的嵌入式微处理器中,将流水线单元设置成如图4所示的基于周期粒度的双冗余流水线级间寄存器备份装置,主要包括功能逻辑a、功能逻辑b、级间寄存器a、级间寄存器b、比较逻辑、备份寄存器、多路选择a和多路选择b。

功能逻辑a是流水级的功能逻辑执行主体,根据级间寄存器a中的信息执行流水级功能后,给出下一流水级需要寄存到级间寄存器的信息。

功能逻辑b是流水级的功能逻辑执行主体,根据级间寄存器b中的信息执行流水级功能后,给出下一流水级需要寄存到级间寄存器的信息。

级间寄存器a用于寄存前一个流水级功能逻辑给出的信息,并将寄存后的信息送入下一流水级的功能逻辑。

级间寄存器b用于寄存前一个流水级功能逻辑给出的信息,并将寄存后的信息送入下一流水级的功能逻辑。

比较逻辑设置在流水线a和流水线b之间,比较级间寄存器a和级间寄存器b的信息,用于检测流水线单元的单粒子故障。

备份寄存器用于定期寄存流水线级间寄存器的信息,在比较逻辑检测出错误后,将备份寄存器的值恢复到两条流水线级间寄存器。

多路选择a根据比较逻辑给出的错误信息,在功能逻辑a给出的值和备份寄存器的内容之间选出级间寄存器a寄存的信息

多路选择b根据比较逻辑给出的错误信息,在功能逻辑b给出的值和备份寄存器的内容之间选出级间寄存器b寄存的信息。

所述基于周期粒度的双冗余流水线级间寄存器备份装置采用如下步骤和方法对单粒子导致的故障进行容错:

(1)指令执行时,流水线单元向指令缓存器输出指令地址及控制信息,从指令缓存中取出指令,分发给两条流水线并行执行;每个周期内,两条流水线五个流水级的功能逻辑根据上一流水级级间寄存器的信息进行操作,给出下一流水级功能逻辑需要的信息;此时,级间寄存器的选通信号无效,转到步骤(2);

(2)在下一个周期上升沿到来时,将功能逻辑a给出的信息更新到级间寄存器a中,将功能逻辑b给出的信息更新到级间寄存器b中,当前周期的级间寄存器a的信息更新到备份寄存器组;转到步骤(3);

(3)在功能逻辑a和功能逻辑b根据级间寄存器a和级间寄存器b进行逻辑运算的同时,比较逻辑对比级间寄存器a和级间寄存器b的信息;如果比较结果均相同,则流水线正常运行,转到步骤(1);如果比较结果出现不同,则说明流水线单元中的某一条流水线受到单粒子轰击,标识流水线故障信号有效,转到步骤(4);

(4)流水线故障信号有效,表明当前周期流水线单元出现故障;禁止流水线单元对数据缓存和寄存器堆的更新使能信号,同时,使能级间寄存器的选通信号,转到步骤(5);

(5)在下一个周期上升沿到来时,将备份寄存器的内容恢复到级间寄存器a和级间寄存器b中;功能逻辑a和功能逻辑b根据正确的级间寄存器a和级间寄存器b的内容重新执行,插入2个等待周期对流水线单元的单粒子故障容错,转到步骤(1)。

下面详细说明基于周期粒度的双冗余流水线级间寄存器备份装置及方法对单粒子故障的容错效果。其故障检测和恢复机制如图5所示,级间寄存器ij为流水线i(i=a,b)的第j(j=1,2,3,4,5)级级间寄存器,功能逻辑ij为流水线i的第j级的功能逻辑,备份寄存器j为流水线第j级的备份寄存器,比较器j为流水线第j级的比较器。以流水线第2级的检错与恢复操作为例,当前周期,功能逻辑a1/b1的计算结果da2/db2。第二个周期,da2/db2被锁存到级间寄存器a2/b2中,qa2/qb2为da2/db2的锁存结果。第三个周期,备份寄存器2对级间寄存器a2的内容进行备份,bp2为qa2的锁存结果。error为比较器2给出的错误信号,用于控制将备份寄存器的内容恢复到级间寄存器中。由上述分析可知:时钟clk会按周期刷新级间寄存器ij,同时,备份寄存器j对流水线a中的级间寄存器进行备份,比较器通过比较两条流水线级间寄存器的内容检测单粒子故障,比较结果相同,则流水线正常流动,一旦比较结果不同,将错误信息error置为有效,将备份寄存器j中的值在下个周期恢复到两条流水线的级间寄存器中重新执行。

由图5中可知,流水线单元有三大主要部件:级间寄存器、备份寄存器和功能逻辑。级间寄存器和备份寄存器为时序逻辑电路,容易受单粒子影响而引发seu和mbu故障。功能逻辑则是组合逻辑电路,容易被单粒子轰击导致信号发生瞬变,被级间寄存器锁存后引发set故障。由于备份寄存器受到单粒子轰击不会影响处理器的运行,因此,只讨论级间寄存器和功能逻辑发生故障后的检错和恢复方法:

(1)级间寄存器发生seu/mbu故障后,将采用以下三步进行检错与恢复,其时序如图6所示:

第一步:流水线中指令正常执行;

第二步:备份寄存器锁存第一步中的指令,流水线的级间寄存器被单粒子轰击导致seu/mbu,通过比较级间寄存器的内容,检测出单粒子故障,流水线被暂停;

第三步:将第二步中备份寄存器锁存的内容更新到流水线级间寄存器,重新执行第一步流水线中的指令。

(2)功能逻辑发生set故障后,将采用以下三步进行检错与恢复,其时序如图7所示:

第一步:流水线的功能逻辑被单粒子轰击导致set,流水线中指令非正常执行;

第二步:备份寄存器锁存第一步中的指令,set被级间寄存器锁存,通过比较级间寄存器的内容,检测出单粒子故障,流水线被暂停;

第三步:将第二步中备份寄存器锁存的内容更新到流水线级间寄存器,重新执行第一步流水线中的指令。

本发明实现的一种基于周期粒度的双冗余流水线级间寄存器备份装置及方法,将流水线的级间寄存器的内容备份到检查点寄存器中,通过比较逻辑检测流水线单元中的单粒子故障,利用备份寄存器中的值对流水线进行恢复,从而解决了嵌入式微处理器对于单粒子导致的set、seu和mbu故障的容错问题,可以提高嵌入式微处理器在空间环境下工作的可靠性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1