CN105320579A - 面向sparc v8处理器的自修复双冗余流水线及容错方法 - Google Patents
面向sparc v8处理器的自修复双冗余流水线及容错方法 Download PDFInfo
- Publication number
- CN105320579A CN105320579A CN201510884593.7A CN201510884593A CN105320579A CN 105320579 A CN105320579 A CN 105320579A CN 201510884593 A CN201510884593 A CN 201510884593A CN 105320579 A CN105320579 A CN 105320579A
- Authority
- CN
- China
- Prior art keywords
- streamline
- register
- assembly line
- self checking
- section
- 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
Links
Landscapes
- Advance Control (AREA)
- Hardware Redundancy (AREA)
Abstract
一种面向SPARC?V8处理器的自修复双冗余流水线及容错方法,其特征在于:所述自修复双冗余流水线包括流水线A、流水线B、指令缓存(301)、自校验模块、比较逻辑(501)、流水线恢复模块(601)、数据缓存(701)、寄存器堆(801),所述自修复双冗余流水线采用在两条流水线之间设置比较器对流水线单元进行故障检测,利用自校验模块对级间寄存器进行校验定位出故障流水线,根据比较结果和自校验错误信息对流水线进行恢复的方法,对单粒子效应引发的SEU、SET和MBU故障进行容错。
Description
技术领域
本发明涉及一种微处理器流水线错误的检测与恢复装置,尤其涉及一种SPARCV8处理器中流水线错误的检测与恢复装置。本发明还涉及一种SPARCV8处理器中流水线中数据翻转错误的屏蔽方法。
背景技术
单粒子翻转(SingleEventUpset,SEU)是在空间应用环境下,由于单粒子入射导致集成电路中存储单元发生数据翻转错误的事件,是空间环境下电子系统发生故障和工作异常的重要诱因之一。随着半导体工艺技术的快速发展,芯片的尺寸在不断减小,处理器工作频率不断提高,节点工作电压的降低使得单粒子翻转现象越来越严重。研究指出,在纳米级芯片中,单粒子翻转导致的多位数据翻转(MBU)概率也在迅速提高,会导致最多8位随机数据翻转错误,对空间应用的电子系统产生更大的危害。在微处理器及电子系统中采取加固措施对SEU故障进行容错设计已成为重要的技术手段。
作为现代微处理器的重要组成部分,流水线主要完成程序代码的指令流执行,并将执行结果写入数据存储和寄存器堆。如果单粒子轰击流水线导致级间寄存器发生翻转或单粒子瞬变(SET)引发的错误数据被锁存,就会导致流水线执行结果不正确,在没有对流水线单元进行容错加固的情况下,错误的执行结果将会扩散到数据存储和寄存器堆或者执行错误的指令流,进而导致更多不可控的错误产生。因此,对于空间应用的高可靠微处理器而言,进行流水线单元的容错设计具有重要的意义。
现有对空间微处理器的加固技术有以下三种方案:采用基于时间的容错方法,能有效解决MBU问题,但是处理器性能大大降低;采用基于编码的容错方法,只能有效的验证计算部分的正确性,并且不同的编码方式针对不同的单粒子故障不能全部处理,容错能力有限;采用基于硬件冗余的方案,采用如图1所示的寄存器级三模冗余时,无法应对MBU故障;采用如图2所示的流水线级三模冗余时,虽然可以定位出故障流水线,但是硬件资源功耗等开销较大;流水线级双模冗余可以应对MBU故障,但是无法定位,起不到屏蔽故障的作用,每次都进行流水线回退会显著增加流水线性能开销,尤其是在单粒子故障日益常见的情况下会导致整体处理速度明显降低。总之,现有技术无法实现一个以低面积开销并能够故障检测、定位、屏蔽故障并有效应对MBU故障的CPU加固方案。
发明内容
本发明的目的在于设计一种面向SPARCV8的处理器的自修复双冗余流水及容错方法,能够从系统结构上有效的屏蔽单粒子翻转(SEU)、单粒子瞬态(SET)导致的多位数据翻转故障。
为实现上述目的,本发明所采用的技术方案为:
一种面向SPARCV8处理器的自修复双冗余流水线,其特征在于:所述自修复双冗余流水线包括流水线A、流水线B、指令缓存(301)、自校验模块、比较逻辑(501)、流水线恢复模块(601)、数据缓存(701)、寄存器堆(801);所述流水线A包括取指(101)、译码(102)、执行(103)、访存(104)、写回(105)五个流水段,所述流水线B包括取指(201)、译码(202)、执行(203)、访存(204)、写回(205)五个流水段,在流水线A和流水线B的各个流水段之间分别设置级间寄存器,数据缓存(701)和寄存器堆(801)由流水线A和流水线B共享,用于在执行指令流时默认写入流水线A的执行结果,在流水线A执行错误时,写入流水线B的执行结果;所述指令缓存(301)用于存储流水线执行指令的代码,送给流水线A和流水线B的取指部件;所述自校验模块包括自校验(401)、自校验(402)、自校验(403)、自校验(404)和自校验(405),用于流水线A和流水线B中的级间寄存器进行自校验,产生校验错误信息,送入比较逻辑(501)用于定位发生单粒子故障的流水线;所述比较逻辑(501)设置在流水线A与流水线B之间,用于对两个流水线单元的输出信息进行比较,检测流水线的错误;所述流水线恢复模块(601)用于在比较逻辑(501)和自校验模块检测出现流水线错误后,根据错误定位结果,通过快速恢复或整体恢复方式对错误的流水线或两条流水线的状态进行恢复;所述数据缓存(701)用于存储流水线输出的数据,并向流水线提供运算操作数;所述寄存器堆(801)用于存储流水线输出的数据,并向流水线提供运算操作数。
一种面向SPARCV8处理器的自修复双冗余流水线的容错方法,其特征在于:所述自修复双冗余流水线包括流水线A、流水线B、指令缓存(301)、自校验模块、比较逻辑(501)、流水线恢复模块(601)、数据缓存(701)、寄存器堆(801);所述自修复双冗余流水线采用如下步骤和方法对由单粒子效应引发的SEU、SET和MBU故障进行屏蔽:
(1)取指段,自校验模块会对两条流水线的取指段级间寄存器进行自校验,生成错误信息,并将错误信息送入比较逻辑,同时寄存在译码段级间寄存器;在两条流水线的译码段段给出与指令缓存的交互信息后,比较逻辑会对其进行比较,如果比较结果相同,则用流水线A给出的地址将指令取回流水线,如果比较结果不相同,根据自校验模块给出的错误信息定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作;如果无法定位出错误流水线,则两条流水线进入陷阱;
(2)译码段,自校验模块会对两条流水线的译码段级间寄存器进行自校验,生成错误信息位,该错误信息位会与译码段级间寄存器中寄存的错误信息位进行或运算并送入比较逻辑,同时执行段寄存在级间寄存器;在两条流水线的译码段给出与寄存器堆的交互信息后,比较逻辑会对其进行比较,如果比较结果相同,则用流水线A的输出信息从寄存器堆中取出源操作数,并分发给两条流水线操作,如果比较结果不相同,根据自校验模块定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作;如果无法定位出故障流水线,则给出需要进行流水线回退的标识信号,将此信号反馈给两条流水线,并寄存在执行段级间寄存器中流向下一流水级;
(3)执行段,自校验模块会对两条流水线的执行段级间寄存器进行自校验,生成错误信息位,该错误信息位会与执行段级间寄存器的错误信息位进行或运算并送入比较逻辑,同时寄存在访存段级间寄存器;在两条流水线的执行段给出与数据缓存一部分的交互信息后,比较逻辑会对其进行比较,如果比较结果相同,则将流水线A的输出信息送入数据缓存,如果比较结果不相同,根据自校验模块定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作,如果无法定位出故障流水线,则给出需要进行流水线回退的标识信号,将此信号反馈给两条流水线,并寄存在访存段级间寄存器中流向下一流水级;
(4)访存段,自校验模块会对两条流水线的访存段级间寄存器进行自校验生成错误信息位,该错误信息位会与访存段级间寄存器的错误信息位进行或运算并送入比较逻辑,同时寄存在写回段级间寄存器;在两条流水线给出与数据缓存另一部分交互信息,比较模块会对其进行比较,如果比较结果相同,将流水线A输出的信息送入数据缓存,如果比较结果不相同,禁止数据缓存的写使能信号,同时根据自校验模块定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作,如果无法定位出故障流水线,则给出需要进行流水线回退的标识信号,将此信号反馈给两条流水线,并寄存在写回段级间寄存器中流向下一流水级;
(5)写回段,自校验模块会对两条流水线的写回段级间寄存器进行自校验生成错误信息位,该错误信息位会与写回段级间寄存器的错误信息位进行或运算后送入比较逻辑;在两条流水线写回段给出与寄存器堆读写信息后,比较逻辑会对其进行比较,如果比较结果相同,将流水线A的写信息送入寄存器堆;如果比较结果不相同,禁止寄存器堆的写使能信号,同时根据自校验模块定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作,如果无法定位出错误流水线,则给出需要进行流水线回退的标识信号,将该标识信号反馈给两条流水线,将回退标识信号与写回段级间寄存器中的回退标识信号做或运算,如果两条流水线的写回段指令需要进行回退,则启用流水线整体恢复方式,将流水线清空,从指令缓存中取出发生故障的指令重新执行,消耗五个时钟周期,对单粒子引发SET故障进行容错。
本发明实现的面向SPARCV8处理器的自修复双冗余流水线及容错方法,采用硬件冗余的思想,对传统的流水线级双模冗余结构进行改进,在关键节点设置比较器,防止错误数据流出结构之外(高速缓存、寄存器文件),同时对流水线级间寄存器增加自校验模块,根据校验结果能够快速定位故障流水线,启动故障屏蔽模式,为解决由单粒子引发的SET、SEU以及日益严重的MBU提供了技术保障。
附图说明
图1是寄存器级三模冗余结构图;
图2是流水线级三模冗余结构图;
图3是LEON2处理器流水线单元结构图;
图4是根据本发明的自修复双冗余流水线的结构图。
具体实施方式
自修复双冗余里流水线(Self-RecoveryDualPipeline,SRDP),是一种以LEON2处理器为平台,面向RISC架构的流水线单元进行加固的装置和方法。LEON2是基于SPARCV8体系结构的嵌入式处理器,采用32位的RISC架构,其流水线单元为经典的五级流水线。
LEON2处理器中的流水线单元包括取指(IF)、译码(ID)、执行(EX)、访存(ME)、写回(WR)五个组合逻辑单元,以及各流水段之间设置的级间寄存器IF、IF/ID、ID/EX、EX/ME、ME/WR,如图3所示。单粒子轰击流水线的组合逻辑部分,产生毛刺可能会被级间寄存器锁存出现SET故障,轰击级间寄存器时会直接导致寄存器出现SEU或MBU故障,级间寄存器将组合逻辑产生的关键信息寄存并在级间传递,寄存着错误信息的级间寄存器会导致错误的执行结果,而错误结果会在ME或WR段被写入数据存储器或寄存器堆。
为了有效的应对辐射造成的单粒子软错误,尤其是MBU问题。综合考虑各个方案时间和空间开销,基于硬件冗余的思想,采用资源开销较少的流水线级双模冗余结构,并行执行相同的指令流,在关键节点设置比较器比较两条流水线的信息,一旦流水线受到单粒子轰击而出现故障,比较器将会检测错误(两条流水线在执行指令过程中出现完全相同的故障概率非常小,在这里忽略不计),阻止错误结果流出;同时,为了实现故障定位功能,对流水线级间寄存器增加自校验模块,检测级间寄存数据的正确性,当粒子轰击流水线导致寄存器翻转,则置位此条流水线错误信号位;最后对比结果不同,判断出问题流水线,则利用正确流水线的当前状态替换错误流水线,消耗一个时钟周期,实现快速恢复,在出现SET错误被锁存的情况下,级间寄存器自校验模块无法判断出错误,则采用两条流水线回退恢复的方式,保证流水线的正常运行。此种机制能够有效的降低流水线恢复导致的性能开销,自修复双冗余流水线的具体恢复方案如表1所示。SRDP结构验证了流水线中所有功能元件的正确性,保证流水线正常运行,比较器信号对比相同,则将流水线数据传出到外部设备(寄存器堆,存储器等)。
表1流水线恢复方案
基于上述基本原理与设置,本发明的面向SPARCV8体系结构的嵌入式微处理器流水线单元加固的一种具体实施方式如下:
在SPARCV8的嵌入式处理器中,将流水线单元设置成如图4所示,主要包括流水线A、流水线B、指令缓存器(301)、自校验模块、比较逻辑(501)、流水线恢复模块(601)、数据缓存(701)、寄存器堆(801)。
流水线A和流水线B包括取指(IF)、译码(ID)、执行(EX)、访存(ME)、写回(WR)组合逻辑单元,以及各流水级之间设置的级间寄存器(IF、IF/ID、ID/EX、EX/ME、ME/WR),两条流水线各自拥有一套数据通路,同时共享数据存储、指令存储和寄存器堆,在并行执行相同指令流时默认用流水线A的执行结果与外部的存储单元和寄存器堆进行数据交互,流水线B为备份单元。
指令缓存(301)用于存储流水线执行的代码,与流水线A中IF段进行数据交互,流水线A取出指令后分发给两条流水线执行。
自校验模块分为编码和解码两部分,包括自校验(401)、自校验(402)、自校验(403)、自校验(404)和自校验(405),对流水线A和流水线B中的级间寄存器进行自校验,给出错误信息,送入比较逻辑用于定位发生单粒子故障的流水线。
比较逻辑(501)设置在流水线A与流水线B之间,对于流水线单元需要与处理器其他部件交互的信息进行比较,由于取指段需要根据指令地址从指令存储器取出指令,译码段需要从寄存器堆中得到操作数,执行段和访存段均会产生与指令存储器交互的信息,写回段会将数据写入寄存器堆,需要将五个流水级的交互信息进行比较,避免流水线发生共模错误或将错误数据写入数据存储和寄存器堆中。
流水线恢复模块(601)必须保证寄存器和存储器状态不会被错误值更改,根据自校验模块和比较逻辑给出信息分为快速恢复方式和整体恢复方式,如果比较结果相同,表明没有错误或级间错误并不影响指令结果,指令将继续执行;否则,查询级间寄存器的错误信息定位出发生故障的流水线,则采用快速恢复方式以低开销恢复流水线状态,起到故障屏蔽作用,继续执行指令,如果无法定位出故障流水线,则采用整体恢复方式,以相对时间开销较高的整体恢复方式修改流水线错误,保证可靠性。
数据缓存(701)和寄存器堆(801)用于存储流水线单元需要的数据,流水线单元根据指令字会对寄存器堆和数据缓存器进行读写操作,与流水线A给出的信息进行交互,流水线A将执行结果写入寄存器堆和数据缓存器,或者从中读出数据分发给两条流水线操作。
所述面向SPARCV8处理器的自修复双冗余流水线采用如下步骤与方法对流水线中的错误数据进行检测和处理:
(1)取指段,自校验模块会对两条流水线的取指段级间寄存器进行自校验,生成错误信息,并将错误信息送入比较逻辑,同时寄存在译码段级间寄存器;在两条流水线的译码段段给出与指令缓存的交互信息后,比较逻辑会对其进行比较,如果比较结果相同,则用流水线A给出的地址将指令取回流水线,如果比较结果不相同,根据自校验模块给出的错误信息定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作;如果无法定位出错误流水线,则两条流水线进入陷阱;
(2)译码段,自校验模块会对两条流水线的译码段级间寄存器进行自校验,生成错误信息位,该错误信息位会与译码段级间寄存器中寄存的错误信息位进行或运算并送入比较逻辑,同时执行段寄存在级间寄存器;在两条流水线的译码段给出与寄存器堆的交互信息后,比较逻辑会对其进行比较,如果比较结果相同,则用流水线A的输出信息从寄存器堆中取出源操作数,并分发给两条流水线操作,如果比较结果不相同,根据自校验模块定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作;如果无法定位出故障流水线,则给出需要进行流水线回退的标识信号,将此信号反馈给两条流水线,并寄存在执行段级间寄存器中流向下一流水级;
(3)执行段,自校验模块会对两条流水线的执行段级间寄存器进行自校验,生成错误信息位,该错误信息位会与执行段级间寄存器的错误信息位进行或运算并送入比较逻辑,同时寄存在访存段级间寄存器;在两条流水线的执行段给出与数据缓存一部分的交互信息后,比较逻辑会对其进行比较,如果比较结果相同,则将流水线A的输出信息送入数据缓存,如果比较结果不相同,根据自校验模块定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作,如果无法定位出故障流水线,则给出需要进行流水线回退的标识信号,将此信号反馈给两条流水线,并寄存在访存段级间寄存器中流向下一流水级;
(4)访存段,自校验模块会对两条流水线的访存段级间寄存器进行自校验生成错误信息位,该错误信息位会与访存段级间寄存器的错误信息位进行或运算并送入比较逻辑,同时寄存在写回段级间寄存器;在两条流水线给出与数据缓存另一部分交互信息,比较模块会对其进行比较,如果比较结果相同,将流水线A输出的信息送入数据缓存,如果比较结果不相同,禁止数据缓存的写使能信号,同时根据自校验模块定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作,如果无法定位出故障流水线,则给出需要进行流水线回退的标识信号,将此信号反馈给两条流水线,并寄存在写回段级间寄存器中流向下一流水级;
(5)写回段,自校验模块会对两条流水线的写回段级间寄存器进行自校验生成错误信息位,该错误信息位会与写回段级间寄存器的错误信息位进行或运算后送入比较逻辑;在两条流水线写回段给出与寄存器堆读写信息后,比较逻辑会对其进行比较,如果比较结果相同,将流水线A的写信息送入寄存器堆;如果比较结果不相同,禁止寄存器堆的写使能信号,同时根据自校验模块定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作,如果无法定位出错误流水线,则给出需要进行流水线回退的标识信号,将该标识信号反馈给两条流水线,将回退标识信号与写回段级间寄存器中的回退标识信号做或运算,如果两条流水线的写回段指令需要进行回退,则启用流水线整体恢复方式,将流水线清空,从指令缓存中取出发生故障的指令重新执行,消耗五个时钟周期,对单粒子引发SET故障进行容错。
在不脱离本发明精神的范围内,本发明可以具有多种变形,如:流水线的流水级数、自校验的方法、比较信号的选择等,均可在不同的实施中改变。这些变形也包含在本发明所要求保护的范围之内。
Claims (2)
1.一种面向SPARCV8处理器的自修复双冗余流水线,其特征在于:所述自修复双冗余流水线包括流水线A、流水线B、指令缓存(301)、自校验模块、比较逻辑(501)、流水线恢复模块(601)、数据缓存(701)、寄存器堆(801);所述流水线A包括取指(101)、译码(102)、执行(103)、访存(104)、写回(105)五个流水段,所述流水线B包括取指(201)、译码(202)、执行(203)、访存(204)、写回(205)五个流水段,在流水线A和流水线B的各个流水段之间分别设置级间寄存器,数据缓存(701)和寄存器堆(801)由流水线A和流水线B共享,用于在执行指令流时默认写入流水线A的执行结果,在流水线A执行错误时,写入流水线B的执行结果;所述指令缓存(301)用于存储流水线执行指令的代码,送给流水线A和流水线B的取指部件;所述自校验模块包括自校验(401)、自校验(402)、自校验(403)、自校验(404)和自校验(405),用于流水线A和流水线B中的级间寄存器进行自校验,产生校验错误信息,送入比较逻辑(501)用于定位发生单粒子故障的流水线;所述比较逻辑(501)设置在流水线A与流水线B之间,用于对两个流水线单元的输出信息进行比较,检测流水线的错误;所述流水线恢复模块(601)用于在比较逻辑(501)和自校验模块检测出现流水线错误后,根据错误定位结果,通过快速恢复或整体恢复方式对错误的流水线或两条流水线的状态进行恢复;所述数据缓存(701)用于存储流水线输出的数据,并向流水线提供运算操作数;所述寄存器堆(801)用于存储流水线输出的数据,并向流水线提供运算操作数。
2.一种面向SPARCV8处理器的自修复双冗余流水线的容错方法,其特征在于:所述自修复双冗余流水线包括流水线A、流水线B、指令缓存(301)、自校验模块、比较逻辑(501)、流水线恢复模块(601)、数据缓存(701)、寄存器堆(801);所述自修复双冗余流水线采用如下步骤和方法对由单粒子效应引发的SEU、SET和MBU故障进行屏蔽:
(1)取指段,自校验模块会对两条流水线的取指段级间寄存器进行自校验,生成错误信息,并将错误信息送入比较逻辑,同时寄存在译码段级间寄存器;在两条流水线的译码段段给出与指令缓存的交互信息后,比较逻辑会对其进行比较,如果比较结果相同,则用流水线A给出的地址将指令取回流水线,如果比较结果不相同,根据自校验模块给出的错误信息定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作;如果无法定位出错误流水线,则两条流水线进入陷阱;
(2)译码段,自校验模块会对两条流水线的译码段级间寄存器进行自校验,生成错误信息位,该错误信息位会与译码段级间寄存器中寄存的错误信息位进行或运算并送入比较逻辑,同时执行段寄存在级间寄存器;在两条流水线的译码段给出与寄存器堆的交互信息后,比较逻辑会对其进行比较,如果比较结果相同,则用流水线A的输出信息从寄存器堆中取出源操作数,并分发给两条流水线操作,如果比较结果不相同,根据自校验模块定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作;如果无法定位出故障流水线,则给出需要进行流水线回退的标识信号,将此信号反馈给两条流水线,并寄存在执行段级间寄存器中流向下一流水级;
(3)执行段,自校验模块会对两条流水线的执行段级间寄存器进行自校验,生成错误信息位,该错误信息位会与执行段级间寄存器的错误信息位进行或运算并送入比较逻辑,同时寄存在访存段级间寄存器;在两条流水线的执行段给出与数据缓存一部分的交互信息后,比较逻辑会对其进行比较,如果比较结果相同,则将流水线A的输出信息送入数据缓存,如果比较结果不相同,根据自校验模块定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作,如果无法定位出故障流水线,则给出需要进行流水线回退的标识信号,将此信号反馈给两条流水线,并寄存在访存段级间寄存器中流向下一流水级;
(4)访存段,自校验模块会对两条流水线的访存段级间寄存器进行自校验生成错误信息位,该错误信息位会与访存段级间寄存器的错误信息位进行或运算并送入比较逻辑,同时寄存在写回段级间寄存器;在两条流水线给出与数据缓存另一部分交互信息,比较模块会对其进行比较,如果比较结果相同,将流水线A输出的信息送入数据缓存,如果比较结果不相同,禁止数据缓存的写使能信号,同时根据自校验模块定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作,如果无法定位出故障流水线,则给出需要进行流水线回退的标识信号,将此信号反馈给两条流水线,并寄存在写回段级间寄存器中流向下一流水级;
(5)写回段,自校验模块会对两条流水线的写回段级间寄存器进行自校验生成错误信息位,该错误信息位会与写回段级间寄存器的错误信息位进行或运算后送入比较逻辑;在两条流水线写回段给出与寄存器堆读写信息后,比较逻辑会对其进行比较,如果比较结果相同,将流水线A的写信息送入寄存器堆;如果比较结果不相同,禁止寄存器堆的写使能信号,同时根据自校验模块定位出故障流水线,启用快速恢复方案,用正确流水线替换错误流水线,消耗一个时钟周期,在下一时钟周期重新进行当前操作,如果无法定位出错误流水线,则给出需要进行流水线回退的标识信号,将该标识信号反馈给两条流水线,将回退标识信号与写回段级间寄存器中的回退标识信号做或运算,如果两条流水线的写回段指令需要进行回退,则启用流水线整体恢复方式,将流水线清空,从指令缓存中取出发生故障的指令重新执行,消耗五个时钟周期,对单粒子引发SET故障进行容错。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510884593.7A CN105320579B (zh) | 2015-10-27 | 2015-12-07 | 面向sparc v8处理器的自修复双冗余流水线及容错方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510701244 | 2015-10-27 | ||
CN2015107012447 | 2015-10-27 | ||
CN201510884593.7A CN105320579B (zh) | 2015-10-27 | 2015-12-07 | 面向sparc v8处理器的自修复双冗余流水线及容错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105320579A true CN105320579A (zh) | 2016-02-10 |
CN105320579B CN105320579B (zh) | 2018-03-23 |
Family
ID=55247999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510884593.7A Active CN105320579B (zh) | 2015-10-27 | 2015-12-07 | 面向sparc v8处理器的自修复双冗余流水线及容错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105320579B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168827A (zh) * | 2017-07-05 | 2017-09-15 | 首都师范大学 | 基于检查点技术的双冗余流水线及容错方法 |
CN107168826A (zh) * | 2017-07-05 | 2017-09-15 | 首都师范大学 | 基于周期粒度的双冗余流水线级间寄存器备份装置及方法 |
CN107423029A (zh) * | 2016-05-23 | 2017-12-01 | 罗伯特·博世有限公司 | 计算单元 |
CN109144793A (zh) * | 2018-09-07 | 2019-01-04 | 合肥工业大学 | 一种基于数据流驱动计算的故障校正装置和方法 |
CN111045929A (zh) * | 2019-11-18 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种超长图形流水线层次化调试方法 |
CN111177985A (zh) * | 2019-12-06 | 2020-05-19 | 上海复旦微电子集团股份有限公司 | 一种优化的三模冗余加固电路结构 |
CN116225810A (zh) * | 2023-05-04 | 2023-06-06 | 无锡国芯微高新技术有限公司 | 用于双核锁步的周期故障检测修复架构和检测修复方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551764A (zh) * | 2009-02-27 | 2009-10-07 | 北京时代民芯科技有限公司 | 基于同步冗余线程与编码技术的抗单粒子效应系统及方法 |
CN103680639A (zh) * | 2013-11-29 | 2014-03-26 | 西安空间无线电技术研究所 | 一种随机存储器的周期性自检错恢复方法 |
US8918706B1 (en) * | 2012-11-14 | 2014-12-23 | Altera Corporation | Methods and circuitry for performing parallel error checking |
CN205193786U (zh) * | 2015-10-27 | 2016-04-27 | 首都师范大学 | 面向sparc v8处理器的自修复双冗余流水线 |
-
2015
- 2015-12-07 CN CN201510884593.7A patent/CN105320579B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551764A (zh) * | 2009-02-27 | 2009-10-07 | 北京时代民芯科技有限公司 | 基于同步冗余线程与编码技术的抗单粒子效应系统及方法 |
US8918706B1 (en) * | 2012-11-14 | 2014-12-23 | Altera Corporation | Methods and circuitry for performing parallel error checking |
CN103680639A (zh) * | 2013-11-29 | 2014-03-26 | 西安空间无线电技术研究所 | 一种随机存储器的周期性自检错恢复方法 |
CN205193786U (zh) * | 2015-10-27 | 2016-04-27 | 首都师范大学 | 面向sparc v8处理器的自修复双冗余流水线 |
Non-Patent Citations (1)
Title |
---|
张伟功等: "一种适于16位RISC处理器的伪四级流水结构研究", 《微电子学与计算机》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423029A (zh) * | 2016-05-23 | 2017-12-01 | 罗伯特·博世有限公司 | 计算单元 |
CN107423029B (zh) * | 2016-05-23 | 2024-04-19 | 罗伯特·博世有限公司 | 计算单元 |
CN107168827A (zh) * | 2017-07-05 | 2017-09-15 | 首都师范大学 | 基于检查点技术的双冗余流水线及容错方法 |
CN107168826A (zh) * | 2017-07-05 | 2017-09-15 | 首都师范大学 | 基于周期粒度的双冗余流水线级间寄存器备份装置及方法 |
CN107168827B (zh) * | 2017-07-05 | 2023-06-27 | 首都师范大学 | 基于检查点技术的双冗余流水线及容错方法 |
CN109144793A (zh) * | 2018-09-07 | 2019-01-04 | 合肥工业大学 | 一种基于数据流驱动计算的故障校正装置和方法 |
CN111045929A (zh) * | 2019-11-18 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种超长图形流水线层次化调试方法 |
CN111045929B (zh) * | 2019-11-18 | 2023-06-09 | 中国航空工业集团公司西安航空计算技术研究所 | 一种超长图形流水线层次化调试方法 |
CN111177985A (zh) * | 2019-12-06 | 2020-05-19 | 上海复旦微电子集团股份有限公司 | 一种优化的三模冗余加固电路结构 |
CN111177985B (zh) * | 2019-12-06 | 2023-08-18 | 上海复旦微电子集团股份有限公司 | 一种优化的三模冗余加固电路结构 |
CN116225810A (zh) * | 2023-05-04 | 2023-06-06 | 无锡国芯微高新技术有限公司 | 用于双核锁步的周期故障检测修复架构和检测修复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105320579B (zh) | 2018-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105320579A (zh) | 面向sparc v8处理器的自修复双冗余流水线及容错方法 | |
CN101551764B (zh) | 基于同步冗余线程与编码技术的抗单粒子效应系统及方法 | |
CN107799151B (zh) | 固态盘SSD及高可用性PCIe SSD的方法和系统 | |
CN100578462C (zh) | 降低时钟同步双模冗余系统中错误率的装置、方法和系统 | |
US10657010B2 (en) | Error detection triggering a recovery process that determines whether the error is resolvable | |
CN103984630A (zh) | 一种基于at697处理器的单粒子翻转故障处理方法 | |
US10817369B2 (en) | Apparatus and method for increasing resilience to faults | |
KR100736963B1 (ko) | 에러에 중립적인 명령을 추적하여 마이크로프로세서에서의폴스 에러 검출을 줄이는 장치 및 방법 | |
US8108714B2 (en) | Method and system for soft error recovery during processor execution | |
US6571363B1 (en) | Single event upset tolerant microprocessor architecture | |
US20050108509A1 (en) | Error detection method and system for processors that employs lockstepped concurrent threads | |
CN105320575B (zh) | 一种双模冗余流水线的自校验及恢复装置与方法 | |
CN105260256A (zh) | 一种双模冗余流水线的故障检测及回退方法 | |
CN1333334C (zh) | 微处理器的整数单元中五级容错流水结构的实现方法 | |
US20090249174A1 (en) | Fault Tolerant Self-Correcting Non-Glitching Low Power Circuit for Static and Dynamic Data Storage | |
US20090150653A1 (en) | Mechanism for soft error detection and recovery in issue queues | |
CN205193785U (zh) | 一种双模冗余流水线的自校验及恢复装置 | |
CN205193787U (zh) | 一种双模冗余流水线的故障检测及回退装置 | |
CN205193786U (zh) | 面向sparc v8处理器的自修复双冗余流水线 | |
US20080229134A1 (en) | Reliability morph for a dual-core transaction-processing system | |
CN105260272B (zh) | 一种同步纠错流水线控制结构及其方法 | |
CN117112318A (zh) | 基于risc-v架构的双核容错系统 | |
US10289332B2 (en) | Apparatus and method for increasing resilience to faults | |
CN107168827B (zh) | 基于检查点技术的双冗余流水线及容错方法 | |
CN206833419U (zh) | 基于检查点技术的双冗余流水线 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |