CN100489801C - 纠正软错误的固件机制 - Google Patents

纠正软错误的固件机制 Download PDF

Info

Publication number
CN100489801C
CN100489801C CNB008191425A CN00819142A CN100489801C CN 100489801 C CN100489801 C CN 100489801C CN B008191425 A CNB008191425 A CN B008191425A CN 00819142 A CN00819142 A CN 00819142A CN 100489801 C CN100489801 C CN 100489801C
Authority
CN
China
Prior art keywords
processor
core
execution
data
state data
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.)
Expired - Fee Related
Application number
CNB008191425A
Other languages
English (en)
Other versions
CN1434941A (zh
Inventor
N·T·夸克
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1434941A publication Critical patent/CN1434941A/zh
Application granted granted Critical
Publication of CN100489801C publication Critical patent/CN100489801C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Abstract

一种计算机系统,包括有双执行核心的处理器和存储错误恢复程序的非易失性存储器。当处理器处于冗余执行模式时处理器的执行核心同步操作,当处理器处于分离执行模式时它们独立地操作。当处理器在以冗余执行模式执行的同时检测到软错误时错误恢复程序被调用。错误恢复程序切换处理器到分离执行模式。在分离模式下,每个执行核心保存未损坏的处理器状态数据到指定的存储单元并用来自另一个执行核心的相应的处理器状态数据更新任何已损坏的数据。错误恢复程序返回处理器到冗余模式,用恢复的处理器状态数据初始化每个执行核心,并返回处理器的控制到检测到软错误时正在执行的程序线程。

Description

纠正软错误的固件机制
发明背景
技术领域
本发明涉及微处理器,尤其涉及能够以高可靠性模式操作的微处理器。
背景技术
当α粒子或宇宙射线透过集成电路并更改存储在电路的电压波节上的电荷之时会出现软错误。如果电荷改变足够大,表示一种逻辑状态的电压就可能会被改变为表示不同逻辑状态的电压。例如表示逻辑真状态的电压可能会被改变为表示逻辑假状态的电压,而且包含该逻辑状态的任何数据都将遭到损坏。
伴随着半导体加工技术向着更小的尺寸和更低的操作电压发展,集成电路,例如微处理器(“处理器”)的软错误率(SER)也增加了。更小的工艺尺寸允许在处理器电路小片上实现更高的器件密度。这增加了α粒子或宇宙射线透过处理器电压波节中之一的可能性。更低的操作电压意味着更小的电荷分裂就足以改变由节点电压表示的逻辑状态。这两种趋势将来都指向了更高的SER。如果在任何已遭破坏的数据被用来更新处理器的结构状态之前检测到软错误,它们就可以在处理器中得到纠正。
处理器常常采用基于奇偶性的机制来检测由软错误产生的数据损坏。当奇偶位被存储时它与各个数据块相关。这个奇偶位是根据数据块中有奇数或偶数个1而被设置为1或0的。当数据块被从它的存储单元读出时,将该块中1的个数与奇偶位进行比较。这两个值不同表示数据块已经遭到了损坏。这两个值一致则表示或者未出现损坏或者已有2(或4...)位被改变。由于后者发生的概率很低,因而奇偶性给数据是否已遭损坏提供了可靠的指示。纠错码(ECC)是跟踪每个数据块附加信息的基于奇偶性的机制。附加信息允许识别并纠正损坏位。
奇偶/ECC机制已经被广泛应用到了高速缓冲存储器、存储器和类似的数据存储阵列。这些结构有相对较高的数据存储节点密度,而且即使在当前的器件密度上对软错误也很敏感。它们的固定阵列结构使得实现奇偶/ECC机制相对容易一些。处理器上其余的电路包括数据通路、控制逻辑电路、执行逻辑电路和寄存器(”执行核心”)。这些电路的不同结构和它们在处理器电路小片(processor die)上的分布使得应用奇偶/ECC机制更为困难。
检测执行核心中的软错误的一种方法是在双倍的执行核心上处理指令并比较以指令为基础在一条指令上由各个处理器确定的结果(“冗余执行”)。例如,一个计算机系统包括两个单独的处理器,可以引导它们或以对称多处理(“SMP”)模式或以功能冗余校验(“FRC”)模式运行。以SMP模式,指令执行被分配到各个处理器之间以提供比单处理器系统更高的整体性能。以FRC模式,一个处理器正常地执行代码,第二个处理器在与提供给第一个处理器相同的数据上执行相同的指令。如果第二个处理器检测到在它的操作和第一个处理器的操作之间存在差异,它就用信号通知产生了错误。只能通过重启计算机系统在SMP和FRC之间切换操作模式。
双处理器方法成本较高(就硅而论)。另外,通过其进行结果比较的处理器间信号传递太慢,以至于无法在损坏的数据更新处理器的结构状态之前就检测到它。因此,这种方法不适于纠正检测到的软错误。
另一种计算机系统在单个处理器芯片上使用双执行核心提供执行冗余。两个执行核心以FRC模式操作,而且受ECC保护的校验点寄存器存储处理器中间状态上的信息。当在一个代码段中检测到错误时,处理器执行微代码程序以利用校验点寄存器来恢复处理器到最后未遭破坏的处理器状态。随后控制返回到该代码段,并从遇到错误的指令开始。错误恢复微代码程序存储在处理器芯片上,使它难以更新或修改。另外,足够灵活以纠正大范围错误的程序势必相对复杂。这些程序的微代码实现方式占据了处理器电路小片上的大量面积。
本发明解决了现有的高可靠性计算机系统的这些和其它不足。
发明概述
本发明提供了用于在双执行核心处理器中恢复软错误的固件机制,该双执行核心处理器能够以冗余模式和分离模式操作执行核心。
依据本发明的一种方法在处理器以冗余模式操作执行核心时检测软错误。在每个执行核心上执行错误恢复程序以保存来自与该执行核心相关的存储器结构的未损坏的数据。根据保存的数据恢复处理器状态数据,并用处理器状态数据初始化第一和第二执行核心。
依据本发明的计算机系统包括一个双执行核心处理器和存储错误恢复程序的非易失性存储器。当处理器在以冗余模式操作的同时检测软错误时错误恢复程序被调用。该程序把处理器切换到分离模式,在该模式下每个执行核心将其相关的存储器结构中的未损坏数据保存到一个指定的存储单元。该程序依据所保存的数据恢复处理器状态数据。
附图概述
可以参考下列图来理解本发明,在这些图中同样的元件由同样的数字来表示。提供这些图是为了举例说明本发明的所选实施方案,并不意味着要限制本发明的范围。
图1是适于实现本发明的计算机系统的一种实施方案的框图。
图2A是图1中双执行核心处理器的一种实施方案的框图。
图2B是图2A中处理器的FET级的一种实施方案的框图。
图2C是图2A中处理器的校验单元的一种实施方案的框图。
图3是说明依照本发明用于从软错误恢复的方法的一种实施方案的流程图。
图4是说明由执行核心执行的错误恢复程序的一种实施方案的流程图。
图5A和5B是说明为软错误恢复协调所保存的数据的不同机制的实施方案的框图。
图6是说明图5A的数据协调机制的一种实施方案的流程图。
图7是当双核心处理器以分离模式操作时提供集群级冗余的执行核心的一种实施方案的框图。
发明详述
下面的论述阐明了大量特定的细节以提供对本发明的彻底理解。然而,从本公开内容受益的本领域的普通技术人员将意识到可以在没有这些特定细节的情况下实践本发明。另外,为了把注意力集中在本发明的特性上,对多种众所周知的方法、程序、部件和电路没有进行详细描述。
本发明提供了一种在双核心处理器中纠正软错误的灵活方法,该双核心处理器可以在冗余模式和分离模式之间动态切换。在冗余模式下,处理器执行相同的代码段上同步(in lock step)操作执行核心并比较结果以识别错误。在分离模式下,执行核心可以独立处理指令,例如,执行核心在给定的时钟周期内可以操作在不同的指令上。
对本发明的一种实施方案来说,冗余模式可以是高可靠性(HR)处理器执行模式,这种模式减少了执行临界代码段时发生软错误的风险。分离模式可以是高性能(HP)处理器执行模式,该可以通过增加所选代码可用的执行资源来更快地执行所选代码。分离模式也可以只用于所选择的目的,例如错误恢复或加速(boostrapping)处理器。分离模式的重要特征是它允许执行核心“独立”操作,即每个执行核心在给定的时钟周期上可执行不同的指令。
依照本发明,错误恢复程序存储在非易失性存储器中。当以冗余模式实现一个程序线程的处理器检测到软错误时访问恢复程序。可以通过两个执行核心中结果之间的差异指示错误。该程序把处理器切换到分离模式,该模式下每个执行核心在它的相关存储单元检查损坏的数据。把未损坏的数据复制到指定的存储单元并从未损坏的数据恢复出足够的处理器状态以继续被中断的程序线程。恢复程序用已恢复的处理器状态数据初始化执行核心。
对本发明的一种实施方案来说,与每个执行核心相关的不同资源是受奇偶保护的,并且恢复程序执行奇偶校验以识别执行核心中任何遭到破坏的数据。举例来说受奇偶保护的资源可以包括通用寄存器、浮点寄存器、控制和状态寄存器、低级高速缓冲存储器等。通常,用来存储处理器状态数据的任何设备都可以受奇偶保护。保护范围取决于系统的可靠性需求。
对本发明的另一种实施方案来说,错误恢复程序识别并存储来自一个或两个执行核心的未遭破坏的数据到指定的存储单元。用从保存的数据恢复出的处理器状态数据初始化执行核心。例如,可以用从没有经历软错误的执行核心保存的处理器状态数据初始化两个执行核心。或者,可以把来自各个执行核心的未遭破坏的数据保存到不同的存储单元,来自一个存储单元的数据可用来代替其它存储单元中的已遭破坏的数据。这种替代方法用来自每个处理器的指定存储单元的处理器状态数据副本初始化各个处理器。通过维护处理器状态数据的单独的集合,这种替代方法减少了初始化过程中产生的软错误在检测中被遗漏的风险。在识别并协调分离模式下来自执行核心的已保存的处理器状态数据之后,错误恢复程序为返回到冗余模式而同步执行核心。
对本发明的另一种实施方案来说,处理器可以被配置用来在分离模式下的各个执行核心中保持一定级别的冗余。例如,可以为分离模式操作而把每个执行核心的执行资源在逻辑上组织成冗余执行集群。当处理器处于分离模式时执行集群在相同的指令上同步执行,可以比较来自冗余集群的结果以检测单个执行核心中的软错误。
图1是依照本发明的计算机系统100的一种实施方案的模块级图示。计算机系统100包括处理器102、非易失性存储器104、动态存储器106和系统逻辑108。系统逻辑108在处理器102、非易失性存储器104和动态存储器106之间传递通信。错误恢复程序190存储在非易失性存储器104中,虽然程序190的一些部分也可以被复制(映像)到动态存储器106中。
处理器102公开的实施方案包括第一执行核心110(a)、第二执行核心110(b)、对应的核心状态寄存器(CSR)120(a)和120(b)以及校验单元130。每个CSR120(a)、120(b)分别包括一个核心状态位(CSB)124(a)、124(b)。还显示出了向处理器102传入和传出数据/指令的总线接口140。每个执行核心110(a)、110(b)包括取指令、译码、执行并退出指令的资源。在下面的论述中,除非对特定的执行核心110予以说明,否则对执行核心110(a)、110(b)的引用都不加索引。对CSR120、CSB124的引用以及在执行核心110中重复的任意其它资源也同样处理。
在冗余模式下,执行核心110同步执行来自一个代码段的相同指令,并由校验单元130比较结果以检测任一执行核心110中的错误。在分离模式下,执行核心110“独立”操作。也就是说,每个执行核心可以执行来自一个或多个代码段的不同指令。如上所述,分离模式可以为所选择的程序提供可编程高性能模式,因为处理器中可用的执行资源在分离模式下被有效地加倍。
分离模式下执行核心110之间的独立级别随处理器102的不同实施方案有所变化。对一种实施方案来说,在分离模式时处理器102可以作为实现在一个单独的处理器芯片上的SMP系统操作。这种情况下,每个执行核心110作为一个独立的处理器操作,只共享处理器电路小片和存储器系统的特定部件。处理器102的这种实施方案对需要高性能处理器的代码尤其有用。处理器102的另一种实施方案可以通过提供适当通道以共享处理器状态信息或执行核心资源而支持在分离模式下的执行核心110之间一定程度的耦合。
可以在硬件、软件或固件控制下面实现在冗余和分离模式之间的切换。对软件和固件控制的切换来说,可以通过正在执行的不同程序线程、操作系统(OS)调度程序、中断处理器、固件程序或类似的资源来提供模式切换指令。对硬件控制的切换来说,可以响应检测到的状态,例如,特定指令类型的执行、不同执行核心中结果之间差异的检测或者该差异的分辨率,来触发切换,。
对本发明的一种实施方案来说,CSB124(a)和124(b)分别指示执行核心110(a)和110(b)的状态,且CSB124(a)和124(b)一起指示处理器102的操作模式。处理器的执行模式作为一个整体可以通过一个单独的处理器状态位(PSB)128来进行跟踪,由图1中的虚线框表示。对于一种实施方案来说,当处理器102将以冗余模式操作时,CSB 124被设置成第一个值,例如1,当处理器102将以分离模式操作时,CSB 124被设置成第二个值,例如0。当模式切换指令触发冗余模式和分离模式之间的切换时CSB 124会被调整。处理器102中的不同资源根据它的执行模式更改它们的操作。对处理器102的公开实施方案来说,指令获取、指令退出和结果校验是以冗余和分离模式做不同处理的,而且对应的资源根据CSB 124(或PSB 128)的状态调整它们的操作。
在题为“Microprocessor With High Reliability OperatingMode”,且与本案同一日期提交的美国专利申请序列号09/470,098中公开了有双执行模式的处理器102的一种实施方案。
图2A更详细地说明了处理器102的一种实施方案。对该公开的实施方案来说,每个执行核心110被描述成指令执行流水线中的一系列级。每一级对应于由执行核心110实现用来执行它们的指令的一个或多个操作。或者,可以把流水级理解为代表执行所示操作的逻辑电路。指令和数据从存储器系统270提供给执行核心110。存储器系统270代表动态存储器106和任意介于中间的高速缓冲存储器。例如,高速缓冲存储器280代表存储器系统270的一部分,来自执行过的指令的结果被写入其中。高速缓冲存储器280可以位于和处理器102相同的芯片上或者位于一个单独的芯片上。
对处理器102的公开的实施方案来说,每个执行核心110被划分为取出(FET)级210、译码(DEC)级220、寄存器(REG)级230、执行(EXE)级240、检测(DET)级250和退出(RET)级260。在FET级210中从存储器系统270取出一个或多个指令。在DEC级220中把取出的指令译码成微操作,并在REG级230中取出由微操作规定的源操作数。在EXE级240中在取出的操作数上执行微操作,并在DET级250中用信号通知由微操作产生的任何异常。如果没有检测到异常就在RET级260中退出微操作。对该公开的实施方案来说,来自已退出的微操作的结果通过退出通道264被写入高速缓冲存储器280中。
在这个论述中,指令、指令束和微指令被交替用作微操作和指令字节。后者指由处理器的执行单元识别出的指令。前者指提供给处理器的指令形式。对一些实施方案来说,在这些实体之间可以有很小的差别或没有。
处理器102的实施方案可以包括缓冲区以从后端级(DEC、REG、EXE、DET和RET,或REG、EXE、DET和RET)去耦合前端级(FET或FET和DEC)。该缓冲区临时存储取出(或者取出并经译码)的指令。这使得前端操作即使在后端操作被停止或延迟时也能继续。如果前端操作被延迟它还允许后端操作继续进行。处理器102的一种实施方案采用了去耦缓冲区来纠正在冗余模式下检测到的错误。
本发明不需要把处理器102分成一组特定的流水级。例如,可以把一个已公开的级再分成两个或更多级以解决同步问题或促进更高的处理器时钟速度。或者,可以把两个或更多级组合成一个单一级。其它实施方案可以采用或不采用去耦缓冲区。其它实施方案仍然可包括用于处理指令无序的硬件。公开的流水线只提供了一个如何在处理器中划分操作的实例以配合本发明的应用。
还为每个执行核心110显示了状态/控制(S/C)寄存器234、数据寄存器238和数据高速缓冲存储器244。S/C寄存器234存储管理执行核心110的操作的信息。例如,S/C寄存器234通常包括CSR120(和CSB124)。数据寄存器238存储由执行核心110中不同资源所用的操作数,数据高速缓冲存储器244在存储器系统270和执行核心中的其它资源之间缓存操作数。根据定时约束,数据高速缓冲存储器244可以向数据寄存器238、EXE级240中的执行资源、或者向这两者提供操作数。对本发明的一种实施方案来说,每个执行核心110为S/C寄存器234、数据寄存器238和高速缓冲存储器244提供一定形式的奇偶保护。
当处理器102处在冗余模式下时执行核心110(a)和110(b)被同步同步在相同指令上操作。在分离模式下,执行核心110(a)和110(b)可以在不同的指令上独立操作。如上所述,处理器102的不同实施方案在分离模式可以支持执行核心110(a)和110(b)之间不同级别的协调合作,如图2A中的虚线箭头所示。例如,如果处理器102作为一个单独芯片SMP系统以分离模式操作,执行核心110(a)和110(b)之间的合作需要主要在模式切换期间出现。对处理器102的其它实施方案来说,执行核心110(a)和110(b)可以处理紧密耦合的进程。这些实施方案支持对S/C寄存器234(a)和234(b)、数据寄存器238(a)和238(b)、以及数据高速缓冲存储器244(a)和244(b)之间的数据的一些共享,以及不同流水级之间的操作的一些合作。
图2B显示了适于在冗余模式和分离模式下分别向执行核心110(a)、110(b)提供指令的FET级210(a)和210(b)的一种实施方案。每个FET级210包括指令指针(IP)选择复用器212和耦合到DEC级220的指令高速缓冲存储器214。S/C寄存器234包括IP寄存器236,它可以由软件进行初始化以指示将要执行的下一条指令。另外,FET级210(b)包括在高速缓冲存储器214(b)的输出上的复用器216。复用器216由CSB124通过与门218控制。对本发明的一种实施方案来说,指令高速缓冲存储器214可以由像ECC这样基于奇偶性的机制来保护。
复用器212在它的数据输入上从包括IP寄存器236在内的多个来源接收IP。响应它的控制输入上的信号,复用器212选择一个IP来指示将要从高速缓冲存储器214取出的下一条指令。在分离模式下,CSB124被设置为0而且复用器216传输由指令高速缓冲存储器214(b)提供的指令。在这种模式下,IP寄存器236(a)和236(b)被独立地进行初始化和更新,高速缓冲存储器214(a)和214(b)分别提供对应的指令给DEC级220(a)和220(b)。在冗余模式下,CSB124被设置为1,复用器216从高速缓冲存储器214(a)提供指令给DEC级220(b)。
FET级210的一种替代实施方案不使用复用器216。而是为冗余模式而把IP寄存器236(a)、236(b)和高速缓冲存储器214(a)、214(b)初始化成相同状态,并且FET级210,包括高速缓冲存储器214,均同步操作。处理器设计领域的以及从本公开内容获益的技术人员将认识到可以根据处理器102操作的执行模式使用FET级210的其它变体来为执行核心110实现独立的和一致的指令取出。
图2C是说明依照本发明的校验单元130的一种实施方案框图。校验单元130的公开的实施方案包括“n”个比较器290(1)-290(n)、或门294和与门298。为执行核心110中的每个执行单元提供一个比较器290。例如,处理器102的一种实施方案可以在每个执行核心110的EXE级中包括整数执行单元(IEU)、浮点执行单元(FPU)、存储器执行单元(MEU)和分支执行单元BRU。对这个实施方案来说,校验单元130包括4个比较器290。比较器290(1)、290(2)、290(3)和290(4)分别监控来自执行核心110(a)和110(b)的IEU、FPU、MEU和BRU的输出。
对校验单元130公开的实施方案来说,当施加到它的输入上的执行结果匹配时每个比较器290产生一个逻辑值0,当执行结果不匹配时产生逻辑值1。对校验单元130的一种实施方案来说,比较器290是自校验比较器。当任意一个比较器290指示出的与它对应的执行结果不匹配时或门294产生逻辑值1。当与门298被使能时或门294的输出充当ERROR信号。对该公开的实施方案来说,当CSB124都被设置为1,即处理器102在冗余模式下时这才会发生。
处理器设计领域的以及从本公开内容获益的技术人员将认识到当处理器在冗余模式下时可以激活校验单元130的其它变体来监控执行核心110中的结果。
当在冗余模式下检测出异常时,本发明提供了一个可以独立实现或与基于硬件和软件的恢复机制结合在一起的基于固件的恢复机制,以把处理器恢复到无错状态。作为本发明目标的软错误通常不会在两个执行核心110中同时发生。由校验单元130检测到的执行结果之间的差异通常是由执行核心110之一的电路中的软错误而产生的。像寄存器文件、高速缓冲存储器、锁存器以及类似的这些存储器结构尤其易于发生这些错误。这些结构存储代表指令流水线的不同点上的操作数值、指令或者微操作的电压电平。当在由执行核心产生的结果之间检测到差异时本发明提供了一种恢复完整性到以冗余模式操作的处理器的执行核心的机制。
根据本发明的一种实施方案,当在冗余模式下的处理器的两个执行核心产生的结果之间检测到差异时会访问基于固件的恢复程序。错误恢复程序切换处理器到分离模式,在该模式下每个执行核心检查来自它的执行资源的数据中是否有错误并把未遭损坏的数据保存到特定的存储单元。错误恢复程序用未遭破坏的数据初始化执行核心并返回控制到被中断的程序线程。对本发明的一种实施方案来说,所检查的执行资源是受奇偶保护的存储器结构。从未遭破坏的数据恢复出足够的处理器状态数据来初始化两个执行核心以使中断的程序线程得以继续处理。
使用基于固件的恢复程序使处理器能够实现更复杂的恢复机制。这些机制比通过微代码或基于硬件的恢复机制能够解决更多种类的错误,后两种恢复机制均受限于它们对电路小片面积的影响。可以更方便地更新基于固件的恢复机制以处理不同的错误或实现错误恢复算法中的改进。另外,在必要时基于固件的恢复机制能够通知诸如系统级固件或操作系统的更高级的系统采取适当动作。
对本发明的一种实施方案来说,可以通过机器校验(MC)访问错误恢复程序。当检测到差异时MC被校验单元130触发。或者,处理器可以先试图通过硬件恢复机制解决偏差并只在硬件机制失败时触发错误恢复程序。例如,硬件恢复机制包括重新控制(resteering)执行核心或执行核心的一些部分从检测到差异时的指令开始重新执行指令流。
图3是说明依照本发明用于纠正软错误的方法300的流程图。当处理器以冗余模式操作并检测到错误310时方法300被触发。错误可以由第一和第二个执行核心产生的结果之间的差异来指示。当检测到错误时310,处理器跳转到错误恢复程序(ERR)320。例如,这可以通过触发MC并通过相关向量表控制处理器到ERR来完成。
ERR把处理器从冗余模式(RM)切换到分离模式(SM)330。对方法300的一种实施方案来说,每个执行核心以分离模式操作以从受奇偶保护的存储器结构把未遭破坏的数据保存到指定的存储单元340。可以通过扫描受奇偶保护的资源中的数据检查奇偶错误或者通过把数据从这些资源复制到一个存储单元并扫描复制来的数据以检查奇偶错误来识别未受损坏的数据。当两个执行核心都完成了它们的数据保存时350,对所保存的数据进行协调360以提供未遭破坏的一组处理器状态数据。对方法300的另一种实施方案来说,只有在它的存储结构中识别出没有遭破坏的数据的执行核心才把它的数据保存到指定的存储单元340。处理器被返回到冗余模式370,用恢复出的处理器状态数据初始化执行核心380,并继续中断的进程线程的执行380。
对本发明的一种实施方案来说,处理器102在软件控制下切换于冗余和分离模式之间,例如通过模式切换指令。对本发明的另一种实施方案来说,处理器102可通过硬件机制进行切换。
在检测到差异前,处理器工作于冗余模式而且执行核心同步进行操作。当检测到差异时,错误恢复程序可以通过给每个执行核心提供“切换到分离模式”指令(SW_SM)来实现模式切换。在冗余模式下,这些指令被同步沿着两个执行核心的流水线级分级,当它们退出时切换处理器到分离模式。因而不需要在切换到分离模式时同步执行核心。一旦处理器处于分离模式下,每个执行核心可以独立地执行ERR的数据恢复操作。
当执行核心完成了它的数据恢复操作时,处理器从分离模式转回到冗余模式以继续中断的程序线程。对本发明的一种实施方案来说,这种切换可以通过在每个执行核心中执行“切换到冗余模式”指令(SW_RM)分级地实现。把切换分级能够适应执行核心完成它们的数据保存操作时在不同时段上的差别。
对该公开的实施方案来说,SW_RM在第一级把一个执行核心切换到“就绪状态”,例如CSB(b)124=1。在第二级,SW_RM指令把另一个执行核心切换到“就绪状态”,例如CSB(a)=1。当两个执行核心都到达就绪状态,例如PSB=CSB(a)&CSB(b)时,处理器返回到冗余模式。第一和第二级可以完全重合(同时切换)、部分重合或完全不重合(顺序切换),取决于用来调度模式切换指令的算法。
就绪状态允许在处理器从分离模式切换到冗余模式之前同步执行核心。对本发明的其它实施方案来说,可以通过硬件机制实现同步。例如,当检测到程序结束条件时第一个执行核心可以转换到就绪状态,且当第一个执行核心完成它的转换时第二个执行核心可以转换到就绪状态。和用软件控制的模式切换一样,就绪状态允许执行核心在处理器被切换回冗余模式之前会合。
图4说明了由执行核心实现用来保存未损坏数据的方法400的一种实施方案。例如,方法400可以代表在切换到分离模式之后由执行核心实现的ERR的一部分。如上所述,可以通过机器校验来到达ERR,机器校验通过相关的向量表把处理器的控制传递到ERR。ERR从冗余模式切换处理器到分离模式,这允许每个执行核心独立地访问并实现数据校验和由图4所说明的恢复程序。
根据该公开的方法,非临界存储器结构被刷新410。非临界存储器结构包括诸如高速缓冲存储器、寄存器和不存储结构状态数据的存储器结构。这些存储器结构通常是不受奇偶保护的。根据处理器实施方案,这些设备可以包括L0指令和数据高速缓冲存储器、分支目标缓冲区、高级装载跟踪表等等。
检查数据寄存器文件的内容以查找奇偶错误420。如果没有发现奇偶错误430,就把数据寄存器文件的内容复制到一个指定的存储单元440。如上所述,这可以是与另一个执行核心共享的存储单元或者为特定的执行核心保留的存储单元。如果发现了奇偶错误430,就不从数据寄存器文件复制任何数据。换句话说,只有未损坏的数据才从数据寄存器文件中得到复制。
还校验450C/S寄存器文件以查找奇偶错误。这些包括例如上述核心状态寄存器、存储有关当前线程信息的不同寄存器以及任意翻译后援缓冲区(TLB)中的翻译寄存器。如果在C/S寄存器文件中没有发现任何奇偶错误460,就把C/S寄存器文件的内容复制到指定的存储单元[570]470。如果发现了奇偶错误,就不从C/S寄存器文件复制任何数据。换句话说,只有未损坏的数据才从C/S寄存器文件中得到复制。
处理器的实施方案可以用固件为所选的高速缓冲存储器实现错误纠正代码(ECC)。这消除了对处理器中ECC纠错硬件的需要,虽然高速缓冲存储器仍然存储ECC位。对这些实施方案来说,可以通过ERR纠正1和2位的错误480。如果用硬件实现ECC就绕过模块480。一旦纠正了所有检测到的错误,执行核心就跳转到等待状态490。
一旦各个执行核心都已经执行了方法400,指定的存储单元就只包含未损坏的数据。软错误的统计特性的一个结论是相同的数据块同时在两个执行核心中被破坏的可能性很小。因此,数据保存过程提供了足够的未遭损坏的处理器状态数据来初始化执行核心并重新开始中断的程序线程。
本发明不需要以任何特定的顺序刷新或校验存储器结构。例如,可以在C/S寄存器文件之后检查数据寄存器文件并在该过程中任何方便的时间刷新非临界文件。上面所指出的顺序只用于说明目的。
除了保存未遭破坏的数据到指定的存储单元之外,ERR还提供了一种机制来协调所保存的数据并将足够的未损坏的处理器状态数据提供给每个执行核心以再继续中断的程序线程。
图5A是说明用于协调由双执行核心处理器中的每个执行核心保存的数据的一种机制的框图。执行核心110(b)实现ERR以复制(1)它的未损坏的数据到存储器系统500中一个指定的单元510(b)。执行核心110(a)实现ERR以复制(2)它的未损坏的数据到一个指定的存储单元510(a)。对所示范的机制来说,执行核心110(b)的存储器结构中的软错误给单元510(b)留下了一个不完全的处理器状态数据集。没有遇到奇偶错误的执行核心110(a)复制(2)了一个完整的处理器状态数据集到单元510(a)。这里,“完整”指足以使处理器102重新开始执行中断的程序线程的处理器状态数据的子集。可以在执行核心110(b)复制(1)它的未遭破坏的数据到存储单元510(b)的同时跟踪执行核心110(b)的存储器结构中遭到破坏的数据,以维持需要被更新的数据记录。
在数据保存操作(1)、(2)之后,执行核心110(b)实现ERR以从单元510(a)复制(3)未损坏的数据到单元510(b)。这为重新初始化处理器102的执行核心提供了第二个处理器状态数据的完整集合。例如,当执行核心110(b)确定执行核心110(a)已经完成了它的复制操作时,它可以只把与它的相关存储器结构中遭到破坏的数据相对应的数据块从单元510(a)复制到单元510(b)。这个数据协调机制在存储器500中提供了两组处理器状态数据,随后可分别用它们来初始化(4)和(5)执行核心110(a)和110(b)。初始化(4)和(5)可以由各个执行核心110在分离模式下分别独立完成或者在冗余模式由执行核心并发完成。
除了ERR中从存储单元510(a)复制(3)未损坏的数据到存储单元510(b)的那部分之外,该公开的数据协调机制通过冗余操作继续进行。数据由各个执行核心校验、保存到存储器并写回到存储器结构。这减少了在恢复期间一组处理器状态数据中产生的软错误将破坏两个执行核心的可能性。
图6是说明图5A的数据协调机制的流程图。例如,这对应于图4的模块490。实现ERR的数据协调部分的处理器确定610另一个执行核心是否已经完成了它的数据保存操作。当这些操作完成时,该执行核心确定620它是否需要更新它的保存数据。
对方法600的一种实施方案来说,在它的存储器结构中检测到损坏数据的执行核心用来自另一个执行核心的存储单元的对应数据更新630它的保存数据。例如,该执行核心可以存储在它的保存操作期间似乎遭到破坏的数据块的指示。这个执行核心然后可以用这些指示从另一个执行核心的指定存储单元中的适当存储器地址中取出该数据的未损坏的版本。没有检测到任何损坏数据的执行核心等待另一个执行核心完成640它的更新630。当两个执行核心都到达等待状态640时,处理器返回650到冗余模式并用协调过的数据初始化660执行核心。方法600的一种替代实施方案可以分离模式初始化执行核心然后返回到冗余模式。
图5B说明了数据协调的一种替代机制。对这种机制来说,两个执行核心110(a)、110(b)分别把它们未损坏的数据写入(1)和(2)到相同存储单元520中的对应存储器地址中。对该机制的一种实施方案来说,只有数据没遭到破坏的的执行核心才能把所有它的处理器状态数据写入到存储单元520。在自己的存储器结构中检测到损坏数据的执行核心不把损坏的数据复制到存储单元520。
图5B中的机制的另一种实施方案可以从在其相关存储器结构中没有检测到损坏数据的执行核心写数据并跳过另一个执行核心,即包含有损坏数据的执行核心的保存步骤。无论哪种情况,复制到单元520的处理器状态数据都是完整的,并且都能够被分别写回(3)和(4)到执行核心110(a)和110(b)以重新初始化它们从而恢复中断的程序线程而。因为在图5B的数据协调机制中只维护了一个处理器状态数据集,在数据恢复期间这个数据集中的软错误不能通过简单的结果比较就检测出来。
对本发明的上述实施方案来说,错误恢复是由处理器以分离模式实现以允许各个执行核心独立地识别出它的相关存储器结构中的任何错误。当冗余执行不能用来检测软错误时,在这些错误恢复操作期间也有可能发生软错误。对高可靠性系统来说,即使软错误的这个有限的弱点也有可能过大。
对本发明的一种实施方案来说,可以配置每个执行核心的执行资源以在分离模式操作期间作为两个或更多逻辑集群并行操作。在各个执行核心独立实现ERR的同时,每个执行核心中逻辑定义的执行集群冗余地实现来自ERR的指令。对这个实施方案来说,来自ERR的指令在每个执行核心内部重复执行并被导向不同的执行集群。可以比较由不同的执行集群产生的结果以达到在处理ERR指令的同时是否有软错误出现。
图7是包括该内部冗余特性的执行核心710的一种实施方案的框图。该执行核心710的公开实施方案包括一个指令高速缓冲存储器(1-cache)714、译码或分散单元720、寄存器文件730、分别包括第一和第二执行集群740(a)和740(b)、校验单元760和退出单元770。在下面的论述中,除非为了避免多义性的必要之外,对执行集群740(a)和740(b)的引用均不加索引。对执行核心710中有副本的其它资源,例如构成执行集群740的执行单元,也做相同处理。
对该公开的实施方案来说,每个执行集群740包括分支执行单元(BRU)752,整数执行单元(IEU)754,存储管理(装载/存储)单元(MMU)756和浮点单元(FPU)758(一般也称“执行单元”)。执行核心710的不同实施方案在不偏离本发明的范围的情况下可以包括不同类型和数量的执行单元。例如,Intel公司的Merced处理器采用的分支执行单元包括三个独立的分支执行单元。执行集群740被独立显示以说明在分离模式下它们的逻辑组织,并非为了反映不同执行资源之间的实际分离。
执行核心710的其它实施方案可以不重复所有的执行单元750或者不重复指令到特定的执行单元。例如,分支执行单元需要大量的处理器资源支持,而且不重复BRU 752可以节省可观的电路小片面积。这由图7中BRU 752(b)周围的虚线框表示。这种情况下,分支指令或者不被冗余执行,或者可以采用替代机制来检查它们的执行。例如,分支指令可重复并串行执行。同样,重复装载和存储指令可以使HR模式下到存储器系统的带宽饱和。这种情况下,可以实现多个MMU 756来满足一个指令束中多个装载和/或存储操作的存在,但在HR模式下单个的装载/存储操作并不被重复这些指令。在不偏离本发明的精神的情况下也可以对其它执行单元750和指令类型可采用类似的装置。
I-cache 714提供指令给译码单元720,译码单元720通过寄存器文件730把指令导向适当的执行单元。寄存器文件730包括数据寄存器文件732、控制/状态(C/S)寄存器734和寄存器重命名单元738。数据寄存器文件提供对由执行单元750操纵的整数和浮点操作数的临时存储。重命名单元738把微操作中指定的虚拟寄存器标识符映射到寄存器文件730中的物理寄存器。
C/S寄存器734存储控制执行核心710的操作模式和不同执行资源状态的信息。对执行核心710的一种实施方案来说,当处理器处于分离模式时分散单元720提供相同的指令给执行集群740(a)和740(b)。例如,分散单元720提供来自一条指令的微操作(或来自相同指令的微操作)给执行集群740(a)和740(b)中适当的执行单元。由校验单元760比较执行集群740(a)和740(b)产生的结果,如果执行结果不同就指示发生了错误。在冗余模式下,可以独立控制执行集群740(a)和740(b)以处理不同的指令,并通过在另一个执行核心上执行相同的指令来提供冗余。当处理器以分离模式操作时执行核心710提供执行集群-级冗余以保护处理器不发生软错误。在题为“Microprocessor With High Reliability Operating Mode”,并且与本案同一日期提交的美国专利申请序列号09/470,098,中详细论述了包括执行核心710的处理器的一种实施方案。
因而已经公开了用于在双核心处理器中纠正软错误的基于固件的机制,该处理器可以在冗余执行模式和分离执行模式之间进行切换。当在以冗余模式执行的程序线程中检测到错误时,处理器切换到分离模式。在分离模式下,执行核心在它的存储器结构中识别出未遭损坏的数据并把该未遭损坏数据复制到一个指定的存储单元。协调未遭损坏的数据以提供足够的处理器状态数据来恢复中断的程序线程。处理器返回到冗余执行模式,用处理器状态数据初始化执行核心,并恢复中断的程序线程。可以通过模式切换指令实现冗余模式和分离模式之间的切换。
已经提供了该公开的实施方案来说明本发明的不同特性。从本公开内容获益的处理器设计领域的技术人员将认识到公开的实施方案的变体和改进依然属于所附权利要求的精神和范围之中。

Claims (17)

1.一种计算机系统包括:
具有第一和第二执行核心和校验单元的处理器,当处理器处于分离模式时第一和第二执行核心独立地处理指令,当处理器处于冗余模式时它们以锁定步骤的方式处理相同的指令,并且当处理器处于冗余模式时校验单元比较来自第一和第二执行核心的结果;和
其中存储恢复例行程序的非易失性存储器,该恢复例行程序在校验单元检测错误时转换处理器到分离模式,从至少一个执行核心识别未损坏的处理器状态数据,并用识别出的处理器状态数据初始化第一和第二执行核心。
2.权利要求1的计算机系统,其中该错误恢复例行程序使处理器返回到冗余模式。
3.权利要求1的计算机系统,其中当处理器进入分离模式时,错误恢复例行程序在与每个执行核心相关的选中的存储器结构中识别未损坏的处理器状态数据,复制未损坏的处理器状态数据到指定的存储单元,并协调所复制的处理器状态数据。
4.权利要求3的计算机系统,其中错误恢复例行程序在会合状态同步第一和第二执行核心并恢复处理器到冗余模式。
5.权利要求1的计算机系统,其中计算机系统还包括主存储器并且恢复例行程序保存处理器状态数据到主存储器系统的一个不能高速缓存的部分。
6.一种方法,用于处理能够以冗余和分离模式操作第一和第二执行核心的处理器中的软错误,该方法包括:
当处理器以冗余模式操作时检测软错误;
在每个执行核心上执行错误恢复例行程序以保存来自与第一和第二执行核心相关的存储器结构的未损坏的数据;和
从所保存的未损坏的数据恢复处理器状态数据。
7.权利要求6的方法,其中执行错误恢复例行程序包括:
转换处理器从冗余模式到分离模式;并
把来自每个执行核心的未损坏的数据保存到指定的存储单元。
8.权利要求7的方法,还包括:
协调所保存的未损坏的数据以恢复处理器状态数据;并
用恢复的处理器状态数据初始化第一和第二执行核心。
9.权利要求8的方法,其中协调所保存的未损坏的处理器状态数据包括:
识别第一和第二执行核心之一中的已损坏的处理器状态数据;并
用来自第一和第二执行核心中的另一个执行核心的指定的存储单元中未损坏的处理器状态数据更新与该第一和第二执行核心之一相关的指定存储单元。
10.一种计算机系统,包括:
具有第一和第二执行核心的处理器,当处理器处于冗余模式时第一和第二执行核心以锁定步骤的方式操作,当处理器处于分离模式时它们独立地操作;和
其中存储错误恢复例行程序的非易失性存储器,当在冗余模式中检测到错误时该错误恢复例行程序转换处理器到分离模式,识别每个执行核心中未损坏的处理器状态数据,并用从未损坏的处理器状态数据恢复的一个处理器状态数据集来恢复处理器到冗余模式。
11.权利要求10的计算机系统,其中错误恢复例行程序通过模式转换指令转换处理器到分离模式。
12.权利要求11的计算机系统,其中在转换到分离模式之后,每个执行核心独立地执行一部分错误恢复程序以识别并保存与它的存储器结构相关的未损坏的处理器数据到一个指定的存储单元。
13.权利要求12的计算机系统,其中执行核心之一用来自另一个执行核心的指定存储单元的所保存的处理器状态数据更新它的存储器结构中的已损坏的数据。
14.权利要求13的计算机系统,其中错误恢复例行程序通过模式转换指令恢复处理器到冗余模式。
15.一种计算机系统,包括:
具有第一和第二执行核心的处理器,当处理器处于冗余执行模式时它们以锁定的方式操作,当处理器处于分离执行模式时它们独立操作;和
非易失性存储器,其中存储着可由处理器实现的指令,以便当处理器处于冗余执行模式时实现从软错误恢复的方法,其中实现该方法的装置包括:
用于转换处理器到分离执行模式的装置;
用于保存来自每个执行核心的未损坏的处理器状态数据到一个指定的存储单元的装置;
从所保存的未损坏的处理器状态数据恢复处理器状态数据的最小集的装置;以及
用于用该处理器状态数据的最小集初始化每个执行核心的装置。
16.权利要求15的计算机系统,其中用于恢复处理器状态数据的最小集的装置包括用从执行核心之一中保存的未损坏的处理器状态数据代替来自另一个执行核心的已损坏的处理器状态数据的装置。
17.权利要求16的计算机系统,其中用于初始化每个执行核心的装置包括:
用于转换处理器到冗余执行模式的装置;以及
用于将来自指定的存储单元的处理器状态数据复制到它们的相关执行核心的装置。
CNB008191425A 1999-12-21 2000-10-04 纠正软错误的固件机制 Expired - Fee Related CN100489801C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/469,963 1999-12-21
US09/469,963 US6625749B1 (en) 1999-12-21 1999-12-21 Firmware mechanism for correcting soft errors

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2009101325137A Division CN101539875B (zh) 1999-12-21 2000-10-04 纠正软错误的固件机制

Publications (2)

Publication Number Publication Date
CN1434941A CN1434941A (zh) 2003-08-06
CN100489801C true CN100489801C (zh) 2009-05-20

Family

ID=23865722

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB008191425A Expired - Fee Related CN100489801C (zh) 1999-12-21 2000-10-04 纠正软错误的固件机制
CN2009101325137A Expired - Fee Related CN101539875B (zh) 1999-12-21 2000-10-04 纠正软错误的固件机制

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2009101325137A Expired - Fee Related CN101539875B (zh) 1999-12-21 2000-10-04 纠正软错误的固件机制

Country Status (8)

Country Link
US (2) US6625749B1 (zh)
CN (2) CN100489801C (zh)
AU (1) AU1631801A (zh)
DE (1) DE10085324T1 (zh)
GB (1) GB2373900B (zh)
HK (1) HK1046573B (zh)
TW (1) TWI247986B (zh)
WO (1) WO2001046806A1 (zh)

Families Citing this family (164)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625756B1 (en) * 1997-12-19 2003-09-23 Intel Corporation Replay mechanism for soft error recovery
US6802039B1 (en) * 2000-06-30 2004-10-05 Intel Corporation Using hardware or firmware for cache tag and data ECC soft error correction
US6728897B1 (en) 2000-07-25 2004-04-27 Network Appliance, Inc. Negotiating takeover in high availability cluster
US7103639B2 (en) * 2000-12-05 2006-09-05 Hewlett-Packard Development Company, L.P. Method and apparatus for processing unit synchronization for scalable parallel processing
US6950978B2 (en) * 2001-03-29 2005-09-27 International Business Machines Corporation Method and apparatus for parity error recovery
US6708284B2 (en) * 2001-03-30 2004-03-16 Intel Corporation Method and apparatus for improving reliability in microprocessors
US6760653B2 (en) 2001-05-15 2004-07-06 Trw Inc. Electric power assisted steering system having a single integrated circuit with two processors
US6920579B1 (en) 2001-08-20 2005-07-19 Network Appliance, Inc. Operator initiated graceful takeover in a node cluster
US7730153B1 (en) 2001-12-04 2010-06-01 Netapp, Inc. Efficient use of NVRAM during takeover in a node cluster
US6954886B2 (en) * 2001-12-31 2005-10-11 Intel Corporation Deterministic hardware reset for FRC machine
US7194671B2 (en) * 2001-12-31 2007-03-20 Intel Corporation Mechanism handling race conditions in FRC-enabled processors
US6971051B2 (en) * 2002-01-10 2005-11-29 Agilent Technologies, Inc. System and method of recovering from soft memory errors
US7086049B2 (en) * 2002-02-26 2006-08-01 International Business Machines Corporation Background code update for embedded systems
US7039828B1 (en) 2002-02-28 2006-05-02 Network Appliance, Inc. System and method for clustered failover without network support
US7155721B2 (en) * 2002-06-28 2006-12-26 Hewlett-Packard Development Company, L.P. Method and apparatus for communicating information between lock stepped processors
US20040078650A1 (en) * 2002-06-28 2004-04-22 Safford Kevin David Method and apparatus for testing errors in microprocessors
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
US7171452B1 (en) 2002-10-31 2007-01-30 Network Appliance, Inc. System and method for monitoring cluster partner boot status over a cluster interconnect
US7386704B2 (en) 2002-10-31 2008-06-10 Lockheed Martin Corporation Pipeline accelerator including pipeline circuits in communication via a bus, and related system and method
US7055060B2 (en) * 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
US7231489B1 (en) 2003-03-03 2007-06-12 Network Appliance, Inc. System and method for coordinating cluster state information
DE10317650A1 (de) * 2003-04-17 2004-11-04 Robert Bosch Gmbh Programmgesteuerte Einheit und Verfahren
US7260737B1 (en) 2003-04-23 2007-08-21 Network Appliance, Inc. System and method for transport-level failover of FCP devices in a cluster
US7739543B1 (en) 2003-04-23 2010-06-15 Netapp, Inc. System and method for transport-level failover for loosely coupled iSCSI target devices
US7111196B2 (en) * 2003-05-12 2006-09-19 International Business Machines Corporation System and method for providing processor recovery in a multi-core system
US7278083B2 (en) * 2003-06-27 2007-10-02 International Business Machines Corporation Method and system for optimized instruction fetch to protect against soft and hard errors
US7716323B2 (en) * 2003-07-18 2010-05-11 Netapp, Inc. System and method for reliable peer communication in a clustered storage system
US7593996B2 (en) * 2003-07-18 2009-09-22 Netapp, Inc. System and method for establishing a peer connection using reliable RDMA primitives
US7581210B2 (en) * 2003-09-10 2009-08-25 Hewlett-Packard Development Company, L.P. Compiler-scheduled CPU functional testing
US7287184B2 (en) * 2003-09-16 2007-10-23 Rockwell Automation Technologies, Inc. High speed synchronization in dual-processor safety controller
US7467191B1 (en) 2003-09-26 2008-12-16 Network Appliance, Inc. System and method for failover using virtual ports in clustered systems
US7206966B2 (en) * 2003-10-22 2007-04-17 Hewlett-Packard Development Company, L.P. Fault-tolerant multi-core microprocessing
CN100350389C (zh) * 2003-10-24 2007-11-21 英特尔公司 用于检测软错误的方法、设备和处理器
US7363544B2 (en) 2003-10-30 2008-04-22 International Business Machines Corporation Program debug method and apparatus
US20050114735A1 (en) * 2003-11-20 2005-05-26 Smith Zachary S. Systems and methods for verifying core determinacy
CN100395722C (zh) * 2003-12-24 2008-06-18 华为技术有限公司 一种对控制系统异常状态信息进行保存的方法
US7444497B2 (en) * 2003-12-30 2008-10-28 Intel Corporation Managing external memory updates for fault detection in redundant multithreading systems using speculative memory support
US20050193283A1 (en) * 2003-12-30 2005-09-01 Reinhardt Steven K. Buffering unchecked stores for fault detection in redundant multithreading systems using speculative memory support
US7340639B1 (en) 2004-01-08 2008-03-04 Network Appliance, Inc. System and method for proxying data access commands in a clustered storage system
US7966294B1 (en) 2004-01-08 2011-06-21 Netapp, Inc. User interface system for a clustered storage system
US7370230B1 (en) * 2004-01-08 2008-05-06 Maxtor Corporation Methods and structure for error correction in a processor pipeline
US8548429B2 (en) 2004-03-08 2013-10-01 Rafi Nehushtan Cellular device security apparatus and method
US7290169B2 (en) * 2004-04-06 2007-10-30 Hewlett-Packard Development Company, L.P. Core-level processor lockstepping
US7296181B2 (en) * 2004-04-06 2007-11-13 Hewlett-Packard Development Company, L.P. Lockstep error signaling
US7237144B2 (en) * 2004-04-06 2007-06-26 Hewlett-Packard Development Company, L.P. Off-chip lockstep checking
US8621029B1 (en) 2004-04-28 2013-12-31 Netapp, Inc. System and method for providing remote direct memory access over a transport medium that does not natively support remote direct memory access operations
US7328144B1 (en) 2004-04-28 2008-02-05 Network Appliance, Inc. System and method for simulating a software protocol stack using an emulated protocol over an emulated network
US7478263B1 (en) 2004-06-01 2009-01-13 Network Appliance, Inc. System and method for establishing bi-directional failover in a two node cluster
US7496782B1 (en) 2004-06-01 2009-02-24 Network Appliance, Inc. System and method for splitting a cluster for disaster recovery
GB0414293D0 (en) * 2004-06-26 2004-07-28 Ibm System and method for reducing contention in an environment using optimistic locks
US7409594B2 (en) * 2004-07-06 2008-08-05 Intel Corporation System and method to detect errors and predict potential failures
US7308605B2 (en) * 2004-07-20 2007-12-11 Hewlett-Packard Development Company, L.P. Latent error detection
DE102004046288A1 (de) * 2004-09-24 2006-03-30 Robert Bosch Gmbh Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem
DE102004046611A1 (de) * 2004-09-25 2006-03-30 Robert Bosch Gmbh Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem
DE102004047363A1 (de) * 2004-09-29 2006-03-30 Siemens Ag Prozessor bzw. Verfahren zum Betreiben eines Prozessors und/oder Betriebssystems im Fall einer Störung
US7353365B2 (en) * 2004-09-29 2008-04-01 Intel Corporation Implementing check instructions in each thread within a redundant multithreading environments
US20060085781A1 (en) * 2004-10-01 2006-04-20 Lockheed Martin Corporation Library for computer-based tool and related system and method
US7356733B2 (en) * 2004-10-25 2008-04-08 Hewlett-Packard Development Company, L.P. System and method for system firmware causing an operating system to idle a processor
US20060107116A1 (en) * 2004-10-25 2006-05-18 Michaelis Scott L System and method for reestablishing lockstep for a processor module for which loss of lockstep is detected
US7516359B2 (en) * 2004-10-25 2009-04-07 Hewlett-Packard Development Company, L.P. System and method for using information relating to a detected loss of lockstep for determining a responsive action
US7624302B2 (en) * 2004-10-25 2009-11-24 Hewlett-Packard Development Company, L.P. System and method for switching the role of boot processor to a spare processor responsive to detection of loss of lockstep in a boot processor
US7502958B2 (en) * 2004-10-25 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for providing firmware recoverable lockstep protection
US7627781B2 (en) * 2004-10-25 2009-12-01 Hewlett-Packard Development Company, L.P. System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor
CN100483359C (zh) * 2004-10-25 2009-04-29 罗伯特·博世有限公司 在具有至少两个处理单元的计算机系统中进行模式转换和信号比较的方法和设备
US7366948B2 (en) * 2004-10-25 2008-04-29 Hewlett-Packard Development Company, L.P. System and method for maintaining in a multi-processor system a spare processor that is in lockstep for use in recovering from loss of lockstep for another processor
US7308566B2 (en) * 2004-10-25 2007-12-11 Hewlett-Packard Development Company, L.P. System and method for configuring lockstep mode of a processor module
US7818614B2 (en) * 2004-10-25 2010-10-19 Hewlett-Packard Development Company, L.P. System and method for reintroducing a processor module to an operating system after lockstep recovery
US20080313384A1 (en) * 2004-10-25 2008-12-18 Ralf Angerbauer Method and Device for Separating the Processing of Program Code in a Computer System Having at Least Two Execution Units
CN101048757A (zh) * 2004-10-25 2007-10-03 罗伯特·博世有限公司 在拥有至少两个执行单元的计算机系统中切换的方法和装置
WO2006045777A1 (de) * 2004-10-25 2006-05-04 Robert Bosch Gmbh Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
US20060149922A1 (en) * 2004-12-28 2006-07-06 Ceva D.S.P. Ltd. Multiple computational clusters in processors and methods thereof
US7467325B2 (en) * 2005-02-10 2008-12-16 International Business Machines Corporation Processor instruction retry recovery
US20060184771A1 (en) * 2005-02-11 2006-08-17 International Business Machines Mini-refresh processor recovery as bug workaround method using existing recovery hardware
US7437599B2 (en) * 2005-02-15 2008-10-14 Maxwell Technologies, Inc. System and method for effectively implementing an immunity mode in an electronic device
US7971095B2 (en) * 2005-02-16 2011-06-28 Honeywell International Inc. Fault recovery for real-time, multi-tasking computer system
US20060190700A1 (en) * 2005-02-22 2006-08-24 International Business Machines Corporation Handling permanent and transient errors using a SIMD unit
US8073899B2 (en) * 2005-04-29 2011-12-06 Netapp, Inc. System and method for proxying data access commands in a storage system cluster
US9459960B2 (en) 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US7831882B2 (en) 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
US7765427B2 (en) * 2005-08-05 2010-07-27 Honeywell International Inc. Monitoring system and methods for a distributed and recoverable digital control system
US7725215B2 (en) * 2005-08-05 2010-05-25 Honeywell International Inc. Distributed and recoverable digital control system
US8260492B2 (en) * 2005-08-05 2012-09-04 Honeywell International Inc. Method and system for redundancy management of distributed and recoverable digital control system
DE102005037259A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Umschalten von Registersätzen
DE102005037247A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Speicherzugriffs bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
DE102005037236A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Vorrichtung und Verfahren zur Konfiguration einer Halbleiterschaltung
DE102005037230A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems
DE102005037246A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten und einer Vergleichseinheit
US7669073B2 (en) * 2005-08-19 2010-02-23 Stratus Technologies Bermuda Ltd. Systems and methods for split mode operation of fault-tolerant computer systems
US7502957B2 (en) * 2005-09-09 2009-03-10 International Business Machines Corporation Method and system to execute recovery in non-homogeneous multi processor environments
US20070088979A1 (en) * 2005-10-14 2007-04-19 Pomaranski Ken G Hardware configurable CPU with high availability mode
US7502916B2 (en) * 2005-12-02 2009-03-10 Infineon Technologies Flash Gmbh & Co. Kg Processing arrangement, memory card device and method for operating and manufacturing a processing arrangement
DE102005061394A1 (de) * 2005-12-22 2007-06-28 Robert Bosch Gmbh Fehlertolerantes Prozessorsystem
US7562285B2 (en) 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
US7873830B2 (en) * 2006-01-13 2011-01-18 International Business Machines Corporation Methods for coordinating access to memory from at least two cryptography secure processing units
KR100990591B1 (ko) 2006-03-31 2010-10-29 인텔 코오퍼레이션 새로운 선택적 구현에 의한 일시적 에러의 검출
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
US8352805B2 (en) 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US7444544B2 (en) * 2006-07-14 2008-10-28 International Business Machines Corporation Write filter cache method and apparatus for protecting the microprocessor core from soft errors
US7793147B2 (en) * 2006-07-18 2010-09-07 Honeywell International Inc. Methods and systems for providing reconfigurable and recoverable computing resources
US8528102B2 (en) * 2006-10-06 2013-09-03 Broadcom Corporation Method and system for protection of customer secrets in a secure reprogrammable system
US7870395B2 (en) * 2006-10-20 2011-01-11 International Business Machines Corporation Load balancing for a system of cryptographic processors
US7890559B2 (en) * 2006-12-22 2011-02-15 International Business Machines Corporation Forward shifting of processor element processing for load balancing
US7512772B2 (en) * 2007-01-08 2009-03-31 International Business Machines Corporation Soft error handling in microprocessors
US20080229134A1 (en) * 2007-03-12 2008-09-18 International Business Machines Corporation Reliability morph for a dual-core transaction-processing system
US7734947B1 (en) 2007-04-17 2010-06-08 Netapp, Inc. System and method for virtual interface failover within a cluster
US7958385B1 (en) 2007-04-30 2011-06-07 Netapp, Inc. System and method for verification and enforcement of virtual interface failover within a cluster
CN101779192A (zh) * 2007-08-17 2010-07-14 Nxp股份有限公司 具有针对软错误的保护的数据处理
US8078942B2 (en) * 2007-09-04 2011-12-13 Oracle America, Inc. Register error correction of speculative data in an out-of-order processor
EP2204736A4 (en) * 2007-09-25 2012-01-11 Fujitsu Ltd INFORMATION PROCESSOR AND CONTROL PROCEDURE
CN101436138B (zh) * 2007-11-16 2013-04-10 苏州科达科技股份有限公司 一种用于软件升级且动态回滚的控制装置以及控制方法
US7809980B2 (en) * 2007-12-06 2010-10-05 Jehoda Refaeli Error detector in a cache memory using configurable way redundancy
US7996663B2 (en) * 2007-12-27 2011-08-09 Intel Corporation Saving and restoring architectural state for processor cores
US7865770B2 (en) * 2008-01-10 2011-01-04 Advanced Micro Devices, Inc. Processor including efficient signature generation for logic error protection
US20090183035A1 (en) * 2008-01-10 2009-07-16 Butler Michael G Processor including hybrid redundancy for logic error protection
WO2009090502A1 (en) * 2008-01-16 2009-07-23 Freescale Semiconductor, Inc. Processor based system having ecc based check and access validation information means
US8443227B2 (en) * 2008-02-15 2013-05-14 International Business Machines Corporation Processor and method for workaround trigger activated exceptions
GB2458260A (en) * 2008-02-26 2009-09-16 Advanced Risc Mach Ltd Selectively disabling error repair circuitry in an integrated circuit
US7966536B2 (en) * 2008-04-11 2011-06-21 International Business Machines Corporation Method and apparatus for automatic scan completion in the event of a system checkstop
US8037350B1 (en) * 2008-04-30 2011-10-11 Hewlett-Packard Development Company, L.P. Altering a degree of redundancy used during execution of an application
US8373435B2 (en) 2008-09-30 2013-02-12 Freescale Semiconductor, Inc. Method and apparatus for handling an output mismatch
TWI379230B (en) * 2008-11-14 2012-12-11 Realtek Semiconductor Corp Instruction mode identification apparatus and instruction mode identification method
US8090984B2 (en) * 2008-12-10 2012-01-03 Freescale Semiconductor, Inc. Error detection and communication of an error location in multi-processor data processing system having processors operating in Lockstep
US20100153693A1 (en) * 2008-12-17 2010-06-17 Microsoft Corporation Code execution with automated domain switching
JP5344936B2 (ja) * 2009-01-07 2013-11-20 株式会社日立製作所 制御装置
JP2010198131A (ja) * 2009-02-23 2010-09-09 Renesas Electronics Corp プロセッサシステム、及びプロセッサシステムの動作モード切り替え方法
US8375250B2 (en) * 2009-03-04 2013-02-12 Infineon Technologies Ag System and method for testing a module
US8688798B1 (en) 2009-04-03 2014-04-01 Netapp, Inc. System and method for a shared write address protocol over a remote direct memory access connection
US8560924B2 (en) * 2010-01-05 2013-10-15 International Business Machines Corporation Register file soft error recovery
US20110179255A1 (en) * 2010-01-21 2011-07-21 Arm Limited Data processing reset operations
US8051323B2 (en) * 2010-01-21 2011-11-01 Arm Limited Auxiliary circuit structure in a split-lock dual processor system
US8108730B2 (en) * 2010-01-21 2012-01-31 Arm Limited Debugging a multiprocessor system that switches between a locked mode and a split mode
US8495344B2 (en) * 2010-01-22 2013-07-23 Via Technologies, Inc. Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information
US8412980B2 (en) 2010-06-04 2013-04-02 International Business Machines Corporation Fault tolerant stability critical execution checking using redundant execution pipelines
US8522076B2 (en) * 2010-06-23 2013-08-27 International Business Machines Corporation Error detection and recovery in a shared pipeline
JP2012103826A (ja) * 2010-11-09 2012-05-31 Fujitsu Ltd キャッシュメモリシステム
US8943510B2 (en) * 2010-12-17 2015-01-27 Microsoft Corporation Mutual-exclusion algorithms resilient to transient memory faults
US8656398B2 (en) 2011-05-03 2014-02-18 Ericsson Television Inc Synchronization of workflows in a video file workflow system
CN104137072A (zh) * 2011-12-30 2014-11-05 英特尔公司 在多核心环境中管理硬件错误的方法和装置
JP2014063258A (ja) * 2012-09-20 2014-04-10 Renesas Electronics Corp 半導体集積回路装置及びマイクロコントローラ
US10423421B2 (en) * 2012-12-28 2019-09-24 Intel Corporation Opportunistic utilization of redundant ALU
US8977907B2 (en) * 2013-01-28 2015-03-10 Electro-Motive Diesel, Inc. Control system to identify faulty code modules
US20160004535A1 (en) * 2013-02-15 2016-01-07 Alistair Robertson Method of operating a multi-thread capable processor system, an automotive system comprising such multi-thread capable processor system, and a computer program product
US9891917B2 (en) * 2013-03-06 2018-02-13 Infineon Technologies Ag System and method to increase lockstep core availability
AT515454A3 (de) * 2013-03-14 2018-07-15 Fts Computertechnik Gmbh Verfahren zur Behandlung von Fehlern in einem zentralen Steuergerät sowie Steuergerät
US10235232B2 (en) 2014-02-10 2019-03-19 Via Alliance Semiconductor Co., Ltd Processor with approximate computing execution unit that includes an approximation control register having an approximation mode flag, an approximation amount, and an error threshold, where the approximation control register is writable by an instruction set instruction
US9588845B2 (en) * 2014-02-10 2017-03-07 Via Alliance Semiconductor Co., Ltd. Processor that recovers from excessive approximate computing error
GB2533415B (en) * 2014-12-19 2022-01-19 Advanced Risc Mach Ltd Apparatus with at least one resource having thread mode and transaction mode, and method
US10296312B2 (en) * 2016-05-20 2019-05-21 Arizona Board Of Regents On Behalf Of Arizona State University Methods, apparatuses, and systems for zero silent data corruption (ZDC) compiler technique
US10002057B2 (en) 2016-06-03 2018-06-19 Nxp Usa, Inc. Method and apparatus for managing mismatches within a multi-threaded lockstep processing system
US10176886B1 (en) 2017-07-07 2019-01-08 Seagate Technology Llc Multi-level data block error detection code
GB2567190B (en) * 2017-10-05 2020-02-26 Advanced Risc Mach Ltd Error recovery for intra-core lockstep mode
JP6853162B2 (ja) * 2017-11-20 2021-03-31 ルネサスエレクトロニクス株式会社 半導体装置
US10802932B2 (en) * 2017-12-04 2020-10-13 Nxp Usa, Inc. Data processing system having lockstep operation
US10466702B1 (en) * 2018-02-14 2019-11-05 Rockwell Collins, Inc. Dual independent autonomous agent architecture for aircraft
US11361839B2 (en) 2018-03-26 2022-06-14 Rambus Inc. Command/address channel error detection
US10628277B2 (en) * 2018-03-29 2020-04-21 Arm Ltd. Device, system and process for redundant processor error detection
US11106466B2 (en) 2018-06-18 2021-08-31 International Business Machines Corporation Decoupling of conditional branches
US10831578B2 (en) 2018-09-28 2020-11-10 Nxp Usa, Inc. Fault detection circuit with progress register and status register
US10997029B2 (en) 2019-03-07 2021-05-04 International Business Machines Corporation Core repair with failure analysis and recovery probe
EP3726384B1 (en) * 2019-04-18 2022-01-05 Bayerische Motoren Werke Aktiengesellschaft Method and system for preserving consistency of states during fail-operational context switch
CN112015599B (zh) * 2019-05-31 2022-05-13 华为技术有限公司 错误恢复的方法和装置
FR3104278B1 (fr) * 2019-12-06 2021-11-19 Commissariat Energie Atomique Système informatique embarqué à bord d'un porteur mettant en oeuvre au moins un service critique pour la sûreté de fonctionnement du porteur
JP2023035739A (ja) * 2021-09-01 2023-03-13 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57122441A (en) * 1981-01-22 1982-07-30 Toppan Printing Co Ltd Screen for gravure and its production
US4486826A (en) 1981-10-01 1984-12-04 Stratus Computer, Inc. Computer peripheral control apparatus
EP0306211A3 (en) 1987-09-04 1990-09-26 Digital Equipment Corporation Synchronized twin computer system
US4912707A (en) * 1988-08-23 1990-03-27 International Business Machines Corporation Checkpoint retry mechanism
EP0411805B1 (en) 1989-08-01 1996-10-09 Digital Equipment Corporation Bulk memory transfer during resync
CA2073516A1 (en) * 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
US5748873A (en) * 1992-09-17 1998-05-05 Hitachi,Ltd. Fault recovering system provided in highly reliable computer system having duplicated processors
US5504859A (en) 1993-11-09 1996-04-02 International Business Machines Corporation Data processor with enhanced error recovery
WO1995028686A1 (en) * 1994-04-15 1995-10-26 David Sarnoff Research Center, Inc. Parallel processing computer containing a multiple instruction stream processing architecture
US5530802A (en) * 1994-06-22 1996-06-25 At&T Corp. Input sequence reordering method for software failure recovery
JP2001523855A (ja) * 1997-11-14 2001-11-27 マラソン テクノロジーズ コーポレイション 故障回復/耐故障計算機
US6173351B1 (en) * 1998-06-15 2001-01-09 Sun Microsystems, Inc. Multi-processor system bridge
US6393582B1 (en) * 1998-12-10 2002-05-21 Compaq Computer Corporation Error self-checking and recovery using lock-step processor pair architecture
US7028167B2 (en) * 2002-03-04 2006-04-11 Hewlett-Packard Development Company, L.P. Core parallel execution with different optimization characteristics to decrease dynamic execution path
US7003691B2 (en) * 2002-06-28 2006-02-21 Hewlett-Packard Development Company, L.P. Method and apparatus for seeding differences in lock-stepped processors
US20040078650A1 (en) * 2002-06-28 2004-04-22 Safford Kevin David Method and apparatus for testing errors in microprocessors
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
US8516179B2 (en) * 2003-12-03 2013-08-20 Digital Rna, Llc Integrated circuit with coupled processing cores
US7290169B2 (en) * 2004-04-06 2007-10-30 Hewlett-Packard Development Company, L.P. Core-level processor lockstepping
US7237144B2 (en) * 2004-04-06 2007-06-26 Hewlett-Packard Development Company, L.P. Off-chip lockstep checking

Also Published As

Publication number Publication date
CN101539875B (zh) 2012-04-11
GB2373900A (en) 2002-10-02
CN1434941A (zh) 2003-08-06
HK1046573A1 (en) 2003-01-17
HK1046573B (zh) 2005-05-06
CN101539875A (zh) 2009-09-23
WO2001046806A1 (en) 2001-06-28
US7134047B2 (en) 2006-11-07
US6625749B1 (en) 2003-09-23
AU1631801A (en) 2001-07-03
GB0215171D0 (en) 2002-08-07
US20040019771A1 (en) 2004-01-29
TWI247986B (en) 2006-01-21
GB2373900B (en) 2004-12-29
DE10085324T1 (de) 2002-12-05

Similar Documents

Publication Publication Date Title
CN100489801C (zh) 纠正软错误的固件机制
US6615366B1 (en) Microprocessor with dual execution core operable in high reliability mode
US6640313B1 (en) Microprocessor with high-reliability operating mode
US5276823A (en) Fault-tolerant computer system with redesignation of peripheral processor
US7340643B2 (en) Replay mechanism for correcting soft errors
US8635492B2 (en) State recovery and lockstep execution restart in a system with multiprocessor pairing
US6751749B2 (en) Method and apparatus for computer system reliability
EP0516126B1 (en) Fault tolerant multiprocessor computer system
US5890003A (en) Interrupts between asynchronously operating CPUs in fault tolerant computer system
CN109891393B (zh) 使用检查器处理器的主处理器错误检测
US6851074B2 (en) System and method for recovering from memory failures in computer systems
US7627781B2 (en) System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor
JP4603185B2 (ja) 計算機及びその誤り回復方法
US20080244354A1 (en) Apparatus and method for redundant multi-threading with recovery
US7861228B2 (en) Variable delay instruction for implementation of temporal redundancy
JP2003067184A (ja) エラー・リカバリのためのスーパースカラ、アウトオブオーダ・プロセッサのチェックポインティング
US20090070564A1 (en) Method and system of aligning execution point of duplicate copies of a user program by exchanging information about instructions executed
US7366948B2 (en) System and method for maintaining in a multi-processor system a spare processor that is in lockstep for use in recovering from loss of lockstep for another processor
JP3301992B2 (ja) 電源故障対策を備えたコンピュータシステム及びその動作方法
US7502958B2 (en) System and method for providing firmware recoverable lockstep protection
US20080229134A1 (en) Reliability morph for a dual-core transaction-processing system
JP2004252525A (ja) エミュレータおよびプログラム
US7624302B2 (en) System and method for switching the role of boot processor to a spare processor responsive to detection of loss of lockstep in a boot processor
Leppälä Interpretive execution of program code increases software robustness in embedded computer systems

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1056245

Country of ref document: HK

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090520

Termination date: 20101004