CN101013389A - 一种基于时间冗余的检验流水线瞬态故障的装置及方法 - Google Patents

一种基于时间冗余的检验流水线瞬态故障的装置及方法 Download PDF

Info

Publication number
CN101013389A
CN101013389A CN 200710063181 CN200710063181A CN101013389A CN 101013389 A CN101013389 A CN 101013389A CN 200710063181 CN200710063181 CN 200710063181 CN 200710063181 A CN200710063181 A CN 200710063181A CN 101013389 A CN101013389 A CN 101013389A
Authority
CN
China
Prior art keywords
instruction
register
operation queue
redundant
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200710063181
Other languages
English (en)
Other versions
CN100476744C (zh
Inventor
张仕健
胡伟武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Loongson Technology Corp Ltd
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CNB2007100631812A priority Critical patent/CN100476744C/zh
Publication of CN101013389A publication Critical patent/CN101013389A/zh
Application granted granted Critical
Publication of CN100476744C publication Critical patent/CN100476744C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

一种基于时间冗余的检验流水线瞬态故障的装置及方法
技术领域
本发明涉及微处理器设计领域,特别涉及一种检验微处理器流水线瞬态故障的装置及方法。
背景技术
现有技术中,比如专利号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)中所述目标寄存器,访问该寄存器时发现该寄存器正成为一条冗余指令的结果寄存器没有写回,则读出寄存器中冗余指令位置域的内容并根据该内容访问操作队列,如果冗余指令位置域表示的操作队列位置的值已经写回到操作队列则直接从操作队列中读出该值作为该操作的一个操作数,否则把冗余指令位置域的值送到保留站并在保留站中记录该寄存器未准备好。
在上述技术方案中,进一步地,步骤五中,所述修改处理器状态,具体包括:
若当前寄存器的主指令位置域等于主指令在操作队列中的位置号,则将主指令有效位置为表示该寄存器的值对主指令有效的状态;
若当前寄存器的冗余指令位置域等于冗余指令在操作队列中的位置号,则将冗余指令有效位置为表示该寄存器的值对冗余指令有效的状态。
在上述技术方案中,进一步地,步骤五中,所述输出异常状态是指置起一种特殊例外,该特殊例外具体包括:将寄存器堆中所有寄存器的主指令有效位置为表示该寄存器对主指令有效的状态,冗余指令有效位置为表示该寄存器对冗余指令有效的状态;清除流水线中的所有指令,从失效的指令处重新取指执行。
一种能够检验瞬态故障的流水线系统,包括:
用于取出指令的取指部件;
用于对取出的指令进行译码,并按指令在程序中出现的先后次序把译码后的指令送到操作队列的译码部件;
操作队列,用于按指令在程序中出现的先后次序根据操作的类型把操作发射到相应的保留站,并按次序结束运算结果已经写回的指令;
用于对发射来的操作进行运算,把运算结果送回到结果总线并写回到操作队列的保留站;
寄存器堆,用于在结束指令时,接收由操作队列依照指令进出操作队列的次序写回寄存器的运算结果;
用于当操作队列中的操作被结束时把运算结果送到寄存器堆的结束总线;
其中,所述操作队列中有用于标示主指令和冗余指令的状态位;
所述寄存器堆中的每个寄存器包括:用于标示当前寄存器的值对主指令有效或者该寄存器正成为某条主指令的结果寄存器没有写回的主指令有效位;用于记录最近一个把当前寄存器作为结果寄存器的主指令在操作队列中的位置的主指令位置域;用于表示当前寄存器的值对冗余指令有效或者该寄存器正成为某条冗余指令的结果寄存器没有写回的冗余指令有效位;用于记录最近一个把当前寄存器作为结果寄存器的冗余指令在操作队列中的位置的冗余指令位置域;
所述结束总线有主指令的操作队列中的位置和冗余指令的操作队列中的位置。
与现有技术相比,本发明具有如下有益效果:
本发明通过扩展基于操作队列复用的流水结构,能够检测操作队列、保留站及功能部件上发生的瞬态故障,并利用例外机制恢复故障;由于时间冗余技术的硬件开销比较小,因此使得本发明不仅能够使流水线结构具有容错能力,提高微处理器可靠性,而且硬件开销小。
附图说明
图1是本发明一实施例的装置结构图;
图2是用本发明的实施例进行检错过程的实例示意图,图中表示了在各拍中保留站、寄存器堆和操作队列各项的取值。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细描述:
本发明在微处理器指令流水线中采用时间冗余技术,在相同的硬件中通过重复执行指令来克服瞬态故障,保证运算的正确性。如果发现指令的执行结果不一致,就重新执行该指令直到结果一致。
如图1所示,基于时间冗余的检验流水线瞬态故障的装置,包括操作队列,与该操作队列连接的寄存器堆,与所述操作队列和所述寄存器堆连接的保留站;所述操作队列中有用于标示主指令和冗余指令的状态位;与保留站连接的还有一些功能部件,如地址运算及访存接口、算术与逻辑部件、浮点部件等,这些功能部件分别连接到结果总线仲裁逻辑单元,进而通过结果总线连接到操作队列和保留站。
该装置还包括用于将操作队列中的操作经寄存器堆重命名及读取操作数后发射到相应的保留站的发射总线,该发射总线中有用于表示发射指令类别的状态位。
该装置还包括用于当操作队列中的操作被结束时把运算结果送到寄存器堆的结束总线,该结束总线有主指令的操作队列中的位置和冗余指令的操作队列中的位置。
寄存器堆包括通用寄存器和浮点寄存器。寄存器堆中的每个寄存器包括:
主指令有效位,用于标示当前寄存器的值对主指令有效,或者标示该寄存器正成为某条主指令的结果寄存器,但是结果还没有写入该寄存器;
主指令位置域,用于记录最近一个把当前寄存器作为结果寄存器的主指令在操作队列中的位置;
冗余指令有效位,用于表示当前寄存器的值对冗余指令有效,或者标示该寄存器正成为某条冗余指令的结果寄存器,但是结果没有写入该寄存器;
冗余指令位置域,用于记录最近一个把当前寄存器作为结果寄存器的冗余指令在操作队列中的位置。
该检验流水线瞬态故障的装置还包括用于当操作队列中的操作被结束时比较主指令和冗余指令的运算结果是否一致的比较逻辑。
下面对各部件进一步说明:
本发明对一个基于操作队列复用的指令流水线结构进行扩展,扩展内容包括操作队列、发射总线、寄存器堆及结束总线。
在操作队列中增加状态位PS,“1”表示主指令,“0”表示冗余指令;这样,操作队列中每一项就包括如下内容:
·State:操作队列状态,2位,“0”表示空,“1”表示相应的操作队列项中有操作但未送到保留站,“2”表示相应的操作已经送到保留站,“3”表示相应的操作已经执行完但未结束。
·OP:操作类型,如加、减、移位、取数等。
·Src1:源寄存器号1。
·Src2:源寄存器号2。
·Dest:目标寄存器号。
·Imm:指令中的立即数,同时在操作已写回操作队列但未结束时用于临时保存结果,如果发生访存例外也可用于保存虚地址。
·PS:“1”表示主指令,“0”表示冗余指令。
·其它。
从操作队列到寄存器堆的发射总线包括如下内容:
·Valid:有效位,“1”表示有效,“0”表示无效。
·Qid:正在发射的操作在操作队列中的位置。
·OP:操作类型。
·Src1:源寄存器号1。
·Src2:源寄存器号2。
·Dest:目标寄存器号。
·Imm:被发射指令的立即数,或移位指令的移位数,或浮点指令的格式域(fmt)。
·Res1:与Src1对应的操作数低32位。
·WB1:Res1的写回位。
·Res2:与Src2对应的操作数低32位。
·WB2:Res2的写回位。
·PS:“1”表示主指令,“0”表示冗余指令。
从寄存器堆到保留站的发射总线包括如下内容:
·Valid:有效位,“1”表示有效,来自操作队列到寄存器堆的发射总线的Valid部分。
·OP:操作类型,来自操作队列到寄存器堆的发射总线的OP部分。
·Qid:正在发射的操作在操作队列中的位置,来自操作队列到寄存器堆的发射总线的Qid部分。
·Src1:目前没用。
·Src2:访存保留站用Src2的前两位确定所存的数是来自通用寄存器还是浮点寄存器。
·Imm:在定点和访存指令中表示立即数。来自操作队列。
·Qj:源寄存器1的重命名寄存器号。来自通用寄存器。
·Vj:源寄存器1操作数的值。来自通用寄存器。
·Qk:源寄存器2的重命名寄存器号。来自通用寄存器。
·Vk:源寄存器2操作数的值。来自通用寄存器。
·FQj:浮点操作的源寄存器1的重命名寄存器号。来自浮点寄存器。
·FVj:浮点操作的源寄存器1操作数的值。来自浮点寄存器。
·FQk:浮点操作的源寄存器2的重命名寄存器号。来自浮点寄存器。
·FVk:浮点操作的源寄存器2操作数的值。来自浮点寄存器。寄存器堆中的每一个寄存器包括如下内容:
·Value:寄存器的值。
·Valid_P:有效位,“1”表示该寄存器的值对主指令有效,“0”表示该寄存器正成为某条主指令的结果寄存器而没有将结果写回该寄存器。
·Qid_P:当Valid_P位为“1”时该域不用,当Valid_P位为“0”时该域记录最近一个把该寄存器作为结果寄存器的主指令在操作队列中的位置。
·Valid_S:有效位,“1”表示该寄存器的值对冗余指令有效,“0”表示该寄存器正成为某条冗余指令的结果寄存器而没有将结果写回该寄存器。
·Qid_S:当Valid_S位为“1”时该域不用,当Valid_S位为“0”时该域记录最近一个把该寄存器作为结果寄存器的冗余指令在操作队列中的位置。
操作队列通过结束总线向通用寄存器及浮点寄存器写回结果,结束总线包括如下内容:
·Valid:有效位。
·OP:操作码。
·Dest:目标寄存器号。
·Qid1:主指令的操作队列中的位置。
·Qid2:冗余指令的操作队列中的位置。
·Value:写回寄存器的结果。
保留站中的每一项包括如下内容:
·B:忙位,“0”表示相应的保留站项中无操作,″1”表示有操作。
·OP:操作类型。
·Qj:源寄存器1的寄存器号,比如设置3位或4位,当最高位为“1”时表示数据已经准备好在Vj域中,其余位不用;当最高位为“0”时,其余位表示计算所需数据的操作在操作队列中的位置,用于侦听结果总线,等待计算结果。后面的检测举例中,Qj是设置为3位。
·Vj:源寄存器1操作数的值,Qj的最高位为“1”时有效。
·Qk:源寄存器2的寄存器号,比如设置3位或4位,当最高位为“1”时表示数据已经准备好在Vk域中,其余位不用;当最高位为“0”时,其余位表示计算所需数据的操作在操作队列中的位置,用于侦听结果总线,等待计算结果。后面的检测举例中,Qk是设置为3位。
·Vk:源寄存器2的操作数的值,Qk的最高位为“1”时有效。
·Qid:相应操作在操作队列中的位置,用于运算结束时把结果写回操作队列以及侦听总线的保留站接收运算结果,发生例外时用于给操作队列的例外原因等域赋值。
具体实施方式的检验流水线瞬态故障的方法的步骤如下:
(1).通过重复取指或在译码阶段复制指令的方法,将主指令及其冗余指令送入操作队列。
(2).一个操作发射时,若该操作是主指令,则相应的目标寄存器Ri(此处Ri是通用寄存器堆中的某一个寄存器,i=0、1、2、或3……)的Qid_P项记录该操作在操作队列中的位置,并置Valid_P为0;若该操作是冗余指令,则相应的目标寄存器(如Ri)的Qid_S项记录该操作在操作队列中的位置,并置Valid_S为0。
(3).后面的操作发射时,若该操作是主指令且用到前一个操作的目标寄存器Ri,访问Ri寄存器时发现Valid_P等于0,则读出Ri中Qid_P内容并根据该内容访问操作队列,如果第Qid_P项的值已经写回到操作队列则直接从操作队列中读出该值作为该操作的一个操作数,如果没有写回则把Qid_P送到保留站并在保留站中记录该寄存器未准备好;若该操作是冗余指令且用到Ri寄存器,访问Ri寄存器时发现Valid_S等于0,则读出Ri中Qid_S内容并根据该内容访问操作队列,如果第Qid_S项的值已经写回到操作队列则直接从操作队列中读出该值作为该操作的一个操作数,如果没有写回则把Qid_S送到保留站并在保留站中记录该寄存器未准备好。
(4).保留站侦听结果总线,当Qid_P或Qid_S项所指示的操作运算结束并把结果送到结果总线时,直接接收结果总线的值作为一个操作数。
(5).当保留站中所有操作数都准备好后开始运算并把结果送到结果总线,通过结果总线将运算结果写回操作队列。
(6).当操作队列中的主指令及其冗余指令都已写回并准备结束时,由比较逻辑检查主指令的运算结果和冗余指令的运算结果是否一致。如果不一致,则置起一种特殊例外,将寄存器堆中所有寄存器的Valid_P位置为1,将Valid_S位置为1,从失效的指令处重新发射执行;如果结果一致,则修改目标寄存器的值,若该寄存器的Qid_P等于主指令在操作队列中的位置号,则将Valid_P位置为1,若该寄存器的Qid_S等于冗余指令在操作队列中的位置号,则将Valid_S位置为1。
下面通过一个例子描述操作队列、寄存器以及保留站在一个检错过程中的功能。图2给出了两对指令执行时操作队列、寄存器、保留站的变化。功能部件的流水线延迟为1拍,即数据在保留站中准备好开始运算后的同一拍结果就出现在结果总线上。这四条指令需要6拍才能执行完成。
1.第一拍,操作队列向保留站发出ADC主指令。置目标寄存器R1的Valid_P域为0,Qid_P域为0,表示R1寄存器的值对于后续的主指令无效,最新值在操作队列的第0项。因为该操作两个源操作数都已准备好,置保留站中的Qj、Qk域为4(即该域最高位为1,表示操作数已经准备好),Vj、Vk域可用,Qid域为0,表示运算结束后把结果写回操作队列的第0项。修改操作队列中的第0项状态为操作已经发出但结果未写回。
2.第二拍,执行ADC主指令,并把执行结果通过结果总线写回操作队列。操作队列的第0项接收操作结果并保存在Imm域,置该操作的状态为等待结束。同时,操作队列向保留站发送ADC冗余指令,置目标寄存器R1的Valid_S域为0,Qid_S域为1,表示R1寄存器的值对于后续的冗余指令无效,最新值在操作队列的第1项。与第一拍类似,修改保留站和操作队列的相应状态。
3.第三拍,执行ADC冗余指令,并把执行结果通过结果总线写回操作队列。操作队列的第1项接收操作结果并保存在Imm域,置该操作的状态为等待结束。同时,操作队列向保留站发送SUB主指令,通过寄存器R1中的Qid_P域从操作队列的第0项中得到一个源操作数,置目标寄存器R1的Valid_P域为0,Qid_P域为2,表示R1寄存器的值对于后续的主指令无效,最新值在操作队列的第2项。与第一拍类似,修改保留站和操作队列的相应状态。
4.第四拍,执行SUB主指令,并把执行结果通过结果总线写回操作队列。操作队列的第2项接收操作结果并保存在Imm域,置该操作的状态为等待结束。同时,操作队列向保留站发送SUB冗余指令,通过寄存器R1的Qid_S域从操作队列的第1项中得到一个源操作数,置目标寄存器R1的Valid_S域为0,Qid_S域为3,表示R1寄存器的值对于后续的冗余指令无效,最新值在操作队列的第3项。与第一拍类似,修改保留站和操作队列的相应状态。同时,ADC主指令及其冗余指令结束,比较操作队列第0项和第1项中的Dest域和Imm域的内容,结果一致,将Imm域的值写回到由Dest域指定的寄存器(即R1)中,释放操作队列的第0项和第1项。
5.第五拍,执行SUB冗余指令,并把执行结果通过结果总线写回操作队列。操作队列的第3项接收操作结果并保存在Imm域,置该操作的状态为等待结束。
6.第六拍,SUB主指令及其冗余指令结束,比较操作队列第2项和第3项中的Dest域和Imm域的内容,结果一致,将Imm域的值写回到由Dest域指定的寄存器(即R1)中,置R1寄存器的Valid_P域为1,Valid_S域为1,表示R1寄存器的值对于以后的主指令和冗余指令都有效。
本发明通过扩展基于操作队列复用的流水结构,能够检测操作队列、保留站及功能部件上发生的瞬态故障,并利用例外机制恢复故障;由于时间冗余技术的硬件开销比较小,因此使得本发明不仅能够使流水线结构具有容错能力,提高微处理器可靠性,而且硬件开销小。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (14)

1、一种基于时间冗余的检验流水线瞬态故障的装置,包括操作队列,用于按照指令在程序中出现的先后次序把操作发射到相应的保留站并按照次序结束运算结果已经写回的指令,与该操作队列连接的寄存器堆,与所述操作队列和所述寄存器堆连接的保留站;所述操作队列中有用于标示主指令和冗余指令的状态位。
2、根据权利要求1所述基于时间冗余的检验流水线瞬态故障的装置,其特征是,还包括用于将操作队列中的操作经寄存器重命名及读取操作数后发射到相应的保留站的发射总线,该发射总线中有用于表示发射指令类别的状态位。
3、根据权利要求1所述基于时间冗余的检验流水线瞬态故障的装置,其特征是,所述寄存器堆包括通用寄存器和浮点寄存器。
4、根据权利要求1所述基于时间冗余的检验流水线瞬态故障的装置,其特征是,所述寄存器堆中的每个寄存器包括:
用于标示当前寄存器的值对主指令有效或者该寄存器正成为某条主指令的结果寄存器而没有写回的主指令有效位;
用于记录最近一个把当前寄存器作为结果寄存器的主指令在操作队列中的位置的主指令位置域;
用于表示当前寄存器的值对冗余指令有效或者该寄存器正成为某条冗余指令的结果寄存器而没有写回的冗余指令有效位;
用于记录最近一个把当前寄存器作为结果寄存器的冗余指令在操作队列中的位置的冗余指令位置域。
5、根据权利要求1所述基于时间冗余的检验流水线瞬态故障的装置,其特征是,还包括用于当操作队列中的操作被结束时比较主指令和冗余指令的运算结果是否一致的比较逻辑。
6、根据权利要求1所述基于时间冗余的检验流水线瞬态故障的装置,其特征是,还包括用于当操作队列中的操作被结束时把运算结果送到寄存器堆的结束总线,该结束总线有主指令在操作队列中的位置和冗余指令在操作队列中的位置。
7、一种基于时间冗余的检验流水线瞬态故障的方法,包括如下步骤:
步骤一,将主指令及其冗余指令送入操作队列;
步骤二,操作队列中的操作经寄存器重命名;
步骤三,保留站侦听结果总线;
步骤四,当保留站中某条指令的所有操作数都准备好时该指令开始运算并把结果通过结果总线写回操作队列;
步骤五,检查主指令和冗余指令的运算结果是否一致;如果是一致,则修改处理器状态;如果不一致,则输出异常状态。
8、根据权利要求7所述基于时间冗余的检验流水线瞬态故障的方法,其特征是,在步骤一中,通过重复取指或复制指令的方法实现主指令和冗余指令。
9、根据权利要求7所述基于时间冗余的检验流水线瞬态故障的方法,其特征是,步骤二具体包括如下步骤:
(1)一个操作发射时,若该操作是主指令,则相应的目标寄存器的主指令位置域记录该操作在操作队列中的位置,并置主指令有效位为标示该寄存器正成为一主指令的结果寄存器没有写回的状态;若该操作是冗余指令,则相应的目标寄存器的冗余指令位置域记录该操作在操作队列中的位置,并置冗余指令有效位为标示寄存器正成为一冗余指令的结果寄存器没有写回的状态;
(2)后面的操作发射时,若该操作是主指令且用到上一步骤(1)中所述目标寄存器,访问该寄存器时发现该寄存器正成为一条主指令的结果寄存器没有写回,则读出该寄存器中主指令位置域的内容并根据该内容访问操作队列;如果主指令位置域表示的操作队列位置的值已经写回到操作队列则直接从操作队列中读出该值作为该操作的一个操作数,否则把主指令位置域的值送到保留站并在保留站中记录该寄存器未准备好;若该操作是冗余指令且用到步骤(1)中所述目标寄存器,访问该寄存器时发现该寄存器正成为一条冗余指令的结果寄存器没有写回,则读出寄存器中冗余指令位置域的内容并根据该内容访问操作队列,如果冗余指令位置域表示的操作队列位置的值已经写回到操作队列则直接从操作队列中读出该值作为该操作的一个操作数,否则把冗余指令位置域的值送到保留站并在保留站中记录该寄存器未准备好。
10、根据权利要求7所述基于时间冗余的检验流水线瞬态故障的方法,其特征是,步骤五中,所述修改处理器状态,具体包括:
若当前寄存器的主指令位置域等于主指令在操作队列中的位置号,则将主指令有效位置为表示该寄存器的值对主指令有效的状态;
若当前寄存器的冗余指令位置域等于冗余指令在操作队列中的位置号,则将冗余指令有效位置为表示该寄存器的值对冗余指令有效的状态。
11、根据权利要求7所述基于时间冗余的检验流水线瞬态故障的方法,其特征是,步骤五中,所述输出异常状态是指置起一种特殊例外,该特殊例外具体包括:将寄存器堆中所有寄存器的主指令有效位置为表示该寄存器对主指令有效的状态,冗余指令有效位置为表示该寄存器对冗余指令有效的状态;清除流水线中的所有指令,从失效的指令处重新取指执行。
12、一种能够检验瞬态故障的流水线系统,包括:
用于取出指令的取指部件;
用于对取出的指令进行译码,并按指令在程序中出现的先后次序把译码后的指令送到操作队列的译码部件;
操作队列,用于按指令在程序中出现的先后次序根据操作的类型把操作发射到相应的保留站,并按次序结束运算结果已经写回的指令;
用于对发射来的操作进行运算,把运算结果送回到结果总线并写回到操作队列的保留站;
寄存器堆,用于在结束指令时,接收由操作队列依照指令进出操作队列的次序写回寄存器的运算结果;
用于当操作队列中的操作被结束时把运算结果送到寄存器堆的结束总线;
所述操作队列中有用于标示主指令和冗余指令的状态位。
13、根据权利要求12所述能够检验瞬态故障的流水线系统,其中,所述寄存器堆中的每个寄存器包括:用于标示当前寄存器的值对主指令有效或者该寄存器正成为某条主指令的结果寄存器没有写回的主指令有效位;用于记录最近一个把当前寄存器作为结果寄存器的主指令在操作队列中的位置的主指令位置域;用于表示当前寄存器的值对冗余指令有效或者该寄存器正成为某条冗余指令的结果寄存器没有写回的冗余指令有效位;用于记录最近一个把当前寄存器作为结果寄存器的冗余指令在操作队列中的位置的冗余指令位置域;
14、根据权利要求12或13所述能够检验瞬态故障的流水线系统,其中,所述结束总线有主指令在操作队列中的位置和冗余指令在操作队列中的位置。
CNB2007100631812A 2007-01-30 2007-01-30 一种基于时间冗余的检验流水线瞬态故障的装置及方法 Active CN100476744C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100631812A CN100476744C (zh) 2007-01-30 2007-01-30 一种基于时间冗余的检验流水线瞬态故障的装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100631812A CN100476744C (zh) 2007-01-30 2007-01-30 一种基于时间冗余的检验流水线瞬态故障的装置及方法

Publications (2)

Publication Number Publication Date
CN101013389A true CN101013389A (zh) 2007-08-08
CN100476744C CN100476744C (zh) 2009-04-08

Family

ID=38700920

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100631812A Active CN100476744C (zh) 2007-01-30 2007-01-30 一种基于时间冗余的检验流水线瞬态故障的装置及方法

Country Status (1)

Country Link
CN (1) CN100476744C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117202A (zh) * 2015-09-25 2015-12-02 上海兆芯集成电路有限公司 具有融合保留站结构的微处理器
CN105426160A (zh) * 2015-11-10 2016-03-23 北京时代民芯科技有限公司 基于sprac v8指令集的指令分类多发射方法
CN113326524A (zh) * 2021-06-18 2021-08-31 鹏城实验室 指令处理方法及处理器
CN114063592A (zh) * 2020-08-05 2022-02-18 中国科学院沈阳自动化研究所 一种基于时间冗余的安全仪表控制单元故障诊断方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247118B1 (en) * 1998-06-05 2001-06-12 Mcdonnell Douglas Corporation Systems and methods for transient error recovery in reduced instruction set computer processors via instruction retry
CN1234066C (zh) * 2001-09-27 2005-12-28 中国科学院计算技术研究所 基于操作队列复用的指令流水线系统和方法
US7260742B2 (en) * 2003-01-28 2007-08-21 Czajkowski David R SEU and SEFI fault tolerant computer
CN1333334C (zh) * 2005-08-15 2007-08-22 中国航天时代电子公司第七七一研究所 微处理器的整数单元中五级容错流水结构的实现方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117202A (zh) * 2015-09-25 2015-12-02 上海兆芯集成电路有限公司 具有融合保留站结构的微处理器
CN106557301A (zh) * 2015-09-25 2017-04-05 上海兆芯集成电路有限公司 经由多级保留站结构的发射指令分派方法
CN105426160A (zh) * 2015-11-10 2016-03-23 北京时代民芯科技有限公司 基于sprac v8指令集的指令分类多发射方法
CN105426160B (zh) * 2015-11-10 2018-02-23 北京时代民芯科技有限公司 基于sprac v8指令集的指令分类多发射方法
CN114063592A (zh) * 2020-08-05 2022-02-18 中国科学院沈阳自动化研究所 一种基于时间冗余的安全仪表控制单元故障诊断方法
CN113326524A (zh) * 2021-06-18 2021-08-31 鹏城实验室 指令处理方法及处理器
CN113326524B (zh) * 2021-06-18 2024-05-28 鹏城实验室 指令处理方法及处理器

Also Published As

Publication number Publication date
CN100476744C (zh) 2009-04-08

Similar Documents

Publication Publication Date Title
US7043679B1 (en) Piggybacking of ECC corrections behind loads
US7409589B2 (en) Method and apparatus for reducing number of cycles required to checkpoint instructions in a multi-threaded processor
US7343476B2 (en) Intelligent SMT thread hang detect taking into account shared resource contention/blocking
US7765384B2 (en) Universal register rename mechanism for targets of different instruction types in a microprocessor
US8099582B2 (en) Tracking deallocated load instructions using a dependence matrix
CN100449499C (zh) 在微处理器恢复单元中进行写队列读数据的方法和装置
US20080307210A1 (en) System and Method for Optimizing Branch Logic for Handling Hard to Predict Indirect Branches
US20090024838A1 (en) Mechanism for suppressing instruction replay in a processor
US20060190700A1 (en) Handling permanent and transient errors using a SIMD unit
US6973563B1 (en) Microprocessor including return prediction unit configured to determine whether a stored return address corresponds to more than one call instruction
CN111344669B (zh) 用于存储融合的系统和方法
US20060206693A1 (en) Method and apparatus to execute an instruction with a semi-fast operation in a staggered ALU
KR20190033084A (ko) 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적
CN100476744C (zh) 一种基于时间冗余的检验流水线瞬态故障的装置及方法
US11599359B2 (en) Methods and systems for utilizing a master-shadow physical register file based on verified activation
US6934903B1 (en) Using microcode to correct ECC errors in a processor
US20220413870A1 (en) Technology For Optimizing Memory-To-Register Operations
CN111752477A (zh) 用于提供具有低开销的存储器原子性的技术
US20070198814A1 (en) Method and apparatus for distributing flush instructions
US7809929B2 (en) Universal register rename mechanism for instructions with multiple targets in a microprocessor
JP3182741B2 (ja) 分散命令完了方法及びプロセッサ
CN111190774B (zh) 一种多核处理器可配置双模冗余结构
US9063855B2 (en) Fault handling at a transaction level by employing a token and a source-to-destination paradigm in a processor-based system
US20110307894A1 (en) Redundant Multithreading Processor
US8943379B2 (en) Retry based protocol with source/receiver FIFO recovery and anti-starvation mechanism to support dynamic pipeline lengthening for ECC error correction

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Assignee: Beijing Loongson Zhongke Technology Service Center Co., Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract fulfillment period: 2009.12.16 to 2028.12.31

Contract record no.: 2010990000062

Denomination of invention: Apparatus and method for detecting transient fault of assembly line based on time redundancy

Granted publication date: 20090408

License type: exclusive license

Record date: 20100128

LIC Patent licence contract for exploitation submitted for record

Free format text: EXCLUSIVE LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2009.12.16 TO 2028.12.31; CHANGE OF CONTRACT

Name of requester: BEIJING LOONGSON TECHNOLOGY SERVICE CENTER CO., LT

Effective date: 20100128

EC01 Cancellation of recordation of patent licensing contract

Assignee: Longxin Zhongke Technology Co., Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract record no.: 2010990000062

Date of cancellation: 20141231

EM01 Change of recordation of patent licensing contract

Change date: 20141231

Contract record no.: 2010990000062

Assignee after: Longxin Zhongke Technology Co., Ltd.

Assignee before: Beijing Loongson Zhongke Technology Service Center Co., Ltd.

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20070808

Assignee: Longxin Zhongke Technology Co., Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract record no.: 2015990000066

Denomination of invention: Apparatus and method for detecting transient fault of assembly line based on time redundancy

Granted publication date: 20090408

License type: Common License

Record date: 20150211

TR01 Transfer of patent right

Effective date of registration: 20200824

Address after: 100095, Beijing, Zhongguancun Haidian District environmental science and technology demonstration park, Liuzhou Industrial Park, No. 2 building

Patentee after: LOONGSON TECHNOLOGY Corp.,Ltd.

Address before: 100080 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

TR01 Transfer of patent right
EC01 Cancellation of recordation of patent licensing contract

Assignee: LOONGSON TECHNOLOGY Corp.,Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract record no.: 2015990000066

Date of cancellation: 20200928

EC01 Cancellation of recordation of patent licensing contract
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd.