一种基于时间冗余的检验流水线瞬态故障的装置及方法制造方法及图纸

技术编号:2919126 阅读:186 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于时间冗余的检验流水线瞬态故障的装置及方法,和包括所述装置的流水线系统。该装置包括操作队列,与该操作队列连接的寄存器堆,与所述操作队列和所述寄存器堆连接的保留站;其特征是,所述操作队列中有用于标示主指令和冗余指令的状态位。该方法包括:步骤一,将主指令及其冗余指令送入操作队列;步骤二,操作队列中的操作经寄存器重命名;步骤三,保留站侦听结果总线;步骤四,当保留站中某条指令的所有操作数都准备好时该指令开始运算并把结果通过结果总线写回操作队列;步骤五,检查主指令和冗余指令的运算结果是否一致;如果是一致,则修改处理器状态;如果不一致,则输出异常状态。本发明专利技术不仅使流水线结构具有容错能力,提高微处理器可靠性,而且硬件开销小。

【技术实现步骤摘要】

本专利技术涉及微处理器设计领域,特别涉及一种检验微处理器流水线瞬态故障的装置及方法。
技术介绍
现有技术中,比如专利号01141495.2,为“一种基于操作队列复用的指令流水线系统和方法”的中国专利中公开了一种微处理器流水线,该流水线结构包括取指部件、译码部件、操作队列、定点及浮点寄存器堆及多个功能部件。指令流水过程是取指部件访问指令存储器取出指令送入指令寄存器,译码部件将指令译码并送入操作队列,操作队列按次序根据指令的类型将指令发射到相应的功能部件保留站中,指令由功能部件运算后通过结果总线写回到操作队列,最后是指令有序结束,释放占用的操作队列项。现有技术的不足在于缺乏容错能力,比如对于系统中出现的瞬态故障就容易导致系统失效。瞬态故障是一种在高能粒子辐射、信号串扰或工作电压波动等条件下芯片出现的间歇性故障。它不同于硬故障,具有不可再现性和非永久性,因此又称为软错误。随着晶体管尺寸的不断缩小和芯片工作电压的持续下降,瞬态故障已成为系统失效的主要原因。一些商用微处理器通过复制硬件来检测流水线中的瞬态故障。例如在390 G5微处理器中,I单元和E单元都有重复的I镜像单元和E镜像单元。在每个时钟周期,R单元和一级Cache单元通过比较I单元与I镜像单元的输出以及E单元与E镜像单元的输出来检测流水线瞬态故障。虽然该技术能够有效地检测出瞬态故障,但是它大大增加了芯片面积,提高了生产成本,参见文献“T.J.Slegel,R.M.Averill III,et al..,IBM’s S/390G5 Microprocessor Design,Micro,IEEE,1999,19(2)12-23.”公开的内容。鉴于现有技术的不足,人们就希望有一种检验流水线瞬态故障的装置及方法,用于指令流水线从而使其具备容错能力。
技术实现思路
本专利技术的目的是解决现有技术中指令流水线缺乏容错能力的技术问题,提供,从而提供高可靠流水线装置。为了实现上述目的,本专利技术采取如下技术方案一种基于时间冗余的检验流水线瞬态故障的装置,包括操作队列,与该操作队列连接的寄存器堆,与所述操作队列和所述寄存器堆连接的保留站;所述操作队列中有用于标示主指令和冗余指令的状态位。在上述技术方案中,进一步地,还包括用于将操作队列中的操作经寄存器重命名及读取操作数后发射到相应的保留站的发射总线,该发射总线中有用于表示发射指令类别的状态位。在上述技术方案中,进一步地,所述寄存器堆为通用寄存器和浮点寄存器。在上述技术方案中,进一步地,所述寄存器堆中的每个寄存器包括用于标示当前寄存器的值对主指令有效或者该寄存器正成为某条主指令的结果寄存器而没有写回的主指令有效位;用于记录最近一个把当前寄存器作为结果寄存器的主指令在操作队列中的位置的主指令位置域;用于表示当前寄存器的值对冗余指令有效或者该寄存器正成为某条冗余指令的结果寄存器而没有写回的冗余指令有效位;用于记录最近一个把当前寄存器作为结果寄存器的冗余指令在操作队列中的位置的冗余指令位置域。在上述技术方案中,进一步地,还包括用于当操作队列中的操作被结束时比较主指令和冗余指令的运算结果是否一致的比较逻辑。在上述技术方案中,进一步地,还包括用于当操作队列中的操作被结束时把运算结果送到寄存器堆的结束总线,该结束总线有主指令在操作队列中的位置和冗余指令在操作队列中的位置。一种基于时间冗余的检验流水线瞬态故障的方法,包括如下步骤步骤一,将主指令及其冗余指令送入操作队列;步骤二,操作队列中的操作经寄存器重命名;步骤三,保留站侦听结果总线;步骤四,当保留站中某条指令的所有操作数都准备好时该指令开始运算并把结果通过结果总线写回操作队列;步骤五,检查主指令和冗余指令的运算结果是否一致;如果是一致,则修改处理器状态;如果不一致,则输出异常状态。在上述技术方案中,进一步地,在步骤一中,通过重复取指或复制指令的方法实现主指令和冗余指令。在上述技术方案中,进一步地,步骤二具体包括如下步骤(1)一个操作发射时,若该操作是主指令,则相应的目标寄存器的主指令位置域记录该操作在操作队列中的位置,并置主指令有效位为标示该寄存器正成为一主指令的结果寄存器没有写回的状态;若该操作是冗余指令,则相应的目标寄存器的冗余指令位置域记录该操作在操作队列中的位置,并置冗余指令有效位为标示寄存器正成为一冗余指令的结果寄存器没有写回的状态;(2)后面的操作发射时,若该操作是主指令且用到步骤(1)中所述目标寄存器,访问该寄存器时发现该寄存器正成为一条主指令的结果寄存器没有写回,则读出该寄存器中主指令位置域的内容并根据该内容访问操作队列;如果主指令位置域表示的操作队列位置的值已经写回到操作队列则直接从操作队列中读出该值作为该操作的一个操作数,否则把主指令位置域的值送到保留站并在保留站中记录该寄存器未准备好;若该操作是冗余指令且用到步骤(1)中所述目标寄存器,访问该寄存器时发现该寄存器正成为一条冗余指令的结果寄存器没有写回,则读出寄存器中冗余指令位置域的内容并根据该内容访问操作队列,如果冗余指令位置域表示的操作队列位置的值已经写回到操作队列则直接从操作队列中读出该值作为该操作的一个操作数,否则把冗余指令位置域的值送到保留站并在保留站中记录该寄存器未准备好。在上述技术方案中,进一步地,步骤五中,所述修改处理器状态,具体包括若当前寄存器的主指令位置域等于主指令在操作队列中的位置号,则将主指令有效位置为表示该寄存器的值对主指令有效的状态;若当前寄存器的冗余指令位置域等于冗余指令在操作队列中的位置号,则将冗余指令有效位置为表示该寄存器的值对冗余指令有效的状态。在上述技术方案中,进一步地,步骤五中,所述输出异常状态是指置起一种特殊例外,该特殊例外具体包括将寄存器堆中所有寄存器的主指令有效位置为表示该寄存器对主指令有效的状态,冗余指令有效位置为表示该寄存器对冗余指令有效的状态;清除流水线中的所有指令,从失效的指令处重新取指执行。一种能够检验瞬态故障的流水线系统,包括用于取出指令的取指部件; 用于对取出的指令进行译码,并按指令在程序中出现的先后次序把译码后的指令送到操作队列的译码部件;操作队列,用于按指令在程序中出现的先后次序根据操作的类型把操作发射到相应的保留站,并按次序结束运算结果已经写回的指令;用于对发射来的操作进行运算,把运算结果送回到结果总线并写回到操作队列的保留站;寄存器堆,用于在结束指令时,接收由操作队列依照指令进出操作队列的次序写回寄存器的运算结果;用于当操作队列中的操作被结束时把运算结果送到寄存器堆的结束总线;其中,所述操作队列中有用于标示主指令和冗余指令的状态位;所述寄存器堆中的每个寄存器包括用于标示当前寄存器的值对主指令有效或者该寄存器正成为某条主指令的结果寄存器没有写回的主指令有效位;用于记录最近一个把当前寄存器作为结果寄存器的主指令在操作队列中的位置的主指令位置域;用于表示当前寄存器的值对冗余指令有效或者该寄存器正成为某条冗余指令的结果寄存器没有写回的冗余指令有效位;用于记录最近一个把当前寄存器作为结果寄存器的冗余指令在操作队列中的位置的冗余指令位置域;所述结束总线有主指令的操作队列中的位置和冗余指令的操作队列中的位置。与现有技术相比,本专利技术具有如下有益效果本专利技术通本文档来自技高网
...

【技术保护点】
一种基于时间冗余的检验流水线瞬态故障的装置,包括操作队列,用于按照指令在程序中出现的先后次序把操作发射到相应的保留站并按照次序结束运算结果已经写回的指令,与该操作队列连接的寄存器堆,与所述操作队列和所述寄存器堆连接的保留站;所述操作队列中有用于标示主指令和冗余指令的状态位。

【技术特征摘要】

【专利技术属性】
技术研发人员:张仕健胡伟武
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利