CN101539875A - 纠正软错误的固件机制 - Google Patents
纠正软错误的固件机制 Download PDFInfo
- Publication number
- CN101539875A CN101539875A CNA2009101325137A CN200910132513A CN101539875A CN 101539875 A CN101539875 A CN 101539875A CN A2009101325137 A CNA2009101325137 A CN A2009101325137A CN 200910132513 A CN200910132513 A CN 200910132513A CN 101539875 A CN101539875 A CN 101539875A
- Authority
- CN
- China
- Prior art keywords
- processor
- core
- execution
- data
- mode
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/165—Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1679—Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明涉及纠正软错误的固件机。本发明提供一种计算机系统,包括有双执行核心的处理器和存储错误恢复程序的非易失性存储器。当处理器处于冗余执行模式时处理器的执行核心以锁定步骤操作,当处理器处于分离执行模式时它们独立地操作。当处理器在以冗余执行模式执行的同时检测到软错误时错误恢复程序被调用。错误恢复程序切换处理器到分离执行模式。在分离模式下,每个执行核心保存未损坏的处理器状态数据到指定的存储单元并用来自另一个执行核心的相应的处理器状态数据更新任何已损坏的数据。错误恢复程序返回处理器到冗余模式,用恢复的处理器状态数据初始化每个执行核心,并返回处理器的控制到检测到软错误时正在执行的程序线程。
Description
本发明申请是本发明申请人于2000年10月4日提交的、申请号为00819142.5、发明名称为“纠正软错误的固件机制”的发明申请的分案申请。
发明背景
技术领域
本发明涉及微处理器,尤其涉及能够以高可靠性模式操作的微处理器。
背景技术
当α粒子或宇宙射线透过集成电路并更改存储在电路的电压波节上的电荷之时会出现软错误。如果电荷改变足够大,表示一种逻辑状态的电压就可能会被改变为表示不同逻辑状态的电压。例如表示逻辑真状态的电压可能会被改变为表示逻辑假状态的电压,而且包含该逻辑状态的任何数据都将遭到损坏。
伴随着半导体加工技术向着更小的尺寸和更低的操作电压发展,集成电路,例如微处理器(“处理器”)的软错误率(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 0peratingMode”,且与本案同一日期提交的美国专利申请序列号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由CSB 124通过与门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)。在冗余模式下,CSB 124被设置为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信号。对该公开的实施方案来说,当CSB 124都被设置为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寄存器文件的内容复制到指定的存储单元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的公开实施方案包括一个指令高速缓冲存储器(I-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-cache714提供指令给译码单元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 (12)
1.一种处理器,包括:
第一和第二执行核心,当处理器处于分离模式时该第一和第二执行核心独立地处理指令,当处理器处于冗余模式时该第一和第二执行核心以锁定步骤处理相同的指令;
校验单元,当处理器处于冗余模式时校验单元比较来自第一和第二执行核心的结果,在该第一和第二执行核心处于冗余模式时当校验单元检测错误该第一和第二执行核心转换到分离模式,该第一和第二执行核心用校验单元检测到该错误后识别出的未损坏处理器状态数据初始化。
2.权利要求1的处理器,其中当处理器进入分离模式时,在与每个执行核心相关的选中的存储器结构中识别出该未损坏的处理器状态数据,复制未损坏的处理器状态数据到指定的存储单元,并协调所复制的处理器状态数据。
3.权利要求2的处理器,其中该第一和第二执行核心在会合状态被同步并被恢复到冗余模式。
4.权利要求1的处理器,其中该处理器是在包括主存储器的计算机系统中并且处理器状态数据被保存到主存储器的不可高速缓存的部分。
5.一种处理器,包括:
第一和第二执行核心,该第一和第二执行核心当处于冗余模式时以锁定步骤工作而当处于分离模式时独立地工作,当在处于冗余模式检测到错误时该第一和第二执行核心转换到分离模式,该第一和第二执行核心用从未损坏处理器状态数据恢复的一组处理器状态数据在冗余模式被恢复。
6.权利要求5的处理器,其中该第一和第二执行核心通过模式转换指令转换到分离模式。
7.权利要求6的处理器,其中在转换到分离模式之后,每个执行核心独立地执行一部分错误恢复程序以识别并保存与其存储器结构相关的未损坏处理器数据到指定的存储器单元。
8.权利要求7的处理器,其中执行核心之一用来自另一个执行核心的指定存储单元的所保存的处理器状态数据更新其存储器结构中的已损坏的数据。
9.权利要求8的处理器,其中错误恢复例行程序通过模式转换指令恢复处理器到冗余模式。
10.一种处理器,包括:
第一和第二执行核心,该第一和第二执行核心当处理器处于冗余执行模式时以锁定步骤工作而当处理器处于分离执行模式时独立地工作;以及
校验装置,使得当处理器在处于冗余执行模式时开始从软错误恢复的方法,用于实现该方法的装置包括:
用于转换处理器到分离执行模式的装置;
用于保存来自每个执行核心的未损坏的处理器状态数据到指定的存储单元的装置;
从所保存的未损坏的处理器状态数据恢复处理器状态数据的最小集的装置;以及
用于用该处理器状态数据的最小集初始化每个执行核心的装置。
11.权利要求10的处理器,其中用于恢复处理器状态数据的最小集的装置包括用从执行核心之一中保存的未损坏的处理器状态数据代替来自另一个执行核心的已损坏的处理器状态数据的装置。
12.权利要求11的处理器,其中用于初始化每个执行核心的装置包括:
用于转换处理器到冗余执行模式的装置;以及
用于将来自指定的存储单元的处理器状态数据复制到它们的相关执行核心的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/469,963 US6625749B1 (en) | 1999-12-21 | 1999-12-21 | Firmware mechanism for correcting soft errors |
US09/469963 | 1999-12-21 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008191425A Division CN100489801C (zh) | 1999-12-21 | 2000-10-04 | 纠正软错误的固件机制 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101539875A true CN101539875A (zh) | 2009-09-23 |
CN101539875B CN101539875B (zh) | 2012-04-11 |
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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008191425A Expired - Fee Related CN100489801C (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) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103649878A (zh) * | 2011-05-03 | 2014-03-19 | 爱立信电视公司 | 视频文件工作流系统中工作流的同步 |
CN107003898A (zh) * | 2014-12-19 | 2017-08-01 | Arm 有限公司 | 包括至少一个具有线程模式和事务模式的资源的设备及方法 |
CN109872150A (zh) * | 2017-12-04 | 2019-06-11 | 恩智浦美国有限公司 | 具有时钟同步操作的数据处理系统 |
CN110083494A (zh) * | 2011-12-30 | 2019-08-02 | 英特尔公司 | 在多核心环境中管理硬件错误的方法和装置 |
CN111164578A (zh) * | 2017-10-05 | 2020-05-15 | Arm有限公司 | 核内锁步模式的错误恢复 |
CN112015599A (zh) * | 2019-05-31 | 2020-12-01 | 华为技术有限公司 | 错误恢复的方法和装置 |
Families Citing this family (159)
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 |
US7418574B2 (en) * | 2002-10-31 | 2008-08-26 | Lockheed Martin Corporation | Configuring a portion of a pipeline accelerator to generate pipeline date without a program instruction |
US7171452B1 (en) | 2002-10-31 | 2007-01-30 | Network Appliance, Inc. | System and method for monitoring cluster partner boot status over a cluster interconnect |
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 |
US7739543B1 (en) | 2003-04-23 | 2010-06-15 | Netapp, Inc. | System and method for transport-level failover for loosely coupled iSCSI target devices |
US7260737B1 (en) | 2003-04-23 | 2007-08-21 | Network Appliance, Inc. | System and method for transport-level failover of FCP devices in a cluster |
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 | 华为技术有限公司 | 一种对控制系统异常状态信息进行保存的方法 |
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 |
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 |
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 |
US7340639B1 (en) | 2004-01-08 | 2008-03-04 | Network Appliance, Inc. | System and method for proxying data access commands in a clustered storage system |
US8548429B2 (en) | 2004-03-08 | 2013-10-01 | Rafi Nehushtan | Cellular device security apparatus and method |
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 |
US7290169B2 (en) * | 2004-04-06 | 2007-10-30 | Hewlett-Packard Development Company, L.P. | Core-level processor lockstepping |
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 |
US7353365B2 (en) * | 2004-09-29 | 2008-04-01 | Intel Corporation | Implementing check instructions in each thread within a redundant multithreading environments |
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 |
US20060085781A1 (en) * | 2004-10-01 | 2006-04-20 | Lockheed Martin Corporation | Library for computer-based tool and related system and method |
JP2008518301A (ja) * | 2004-10-25 | 2008-05-29 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 少なくとも2つの実行ユニットを有する計算機システムで切替を行うための方法および装置 |
US7502958B2 (en) * | 2004-10-25 | 2009-03-10 | Hewlett-Packard Development Company, L.P. | System and method for providing firmware recoverable lockstep protection |
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 |
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 |
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 |
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 |
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 |
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 |
JP4669007B2 (ja) * | 2004-10-25 | 2011-04-13 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 少なくとも2つの処理ユニットを有する計算機システムにおいて切替及びデータを比較する方法及び装置 |
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 |
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 |
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 |
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 |
US8260492B2 (en) * | 2005-08-05 | 2012-09-04 | Honeywell International Inc. | Method and system for redundancy management of distributed and recoverable digital control system |
US7765427B2 (en) * | 2005-08-05 | 2010-07-27 | Honeywell International Inc. | Monitoring system and methods for a distributed and recoverable digital control system |
WO2007018652A1 (en) * | 2005-08-05 | 2007-02-15 | Honeywell International, Inc. | Distributed and recoverable digital control system |
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 |
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 |
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 |
DE102005037230A1 (de) * | 2005-08-08 | 2007-02-15 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems |
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 |
US8090996B2 (en) * | 2006-03-31 | 2012-01-03 | Intel Corporation | Detecting soft errors via selective re-execution |
US8352805B2 (en) * | 2006-05-18 | 2013-01-08 | Rambus Inc. | Memory error detection |
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 |
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 |
CN103443774A (zh) * | 2007-09-25 | 2013-12-11 | 富士通株式会社 | 信息处理装置和控制方法 |
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 |
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 |
WO2014125338A1 (en) * | 2013-02-15 | 2014-08-21 | Freescale Semiconductor, Inc. | A 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 |
US9588845B2 (en) * | 2014-02-10 | 2017-03-07 | Via Alliance Semiconductor Co., Ltd. | Processor that recovers from excessive approximate computing error |
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 |
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 |
US11468439B2 (en) * | 2017-01-12 | 2022-10-11 | American Express Travel Related Services Company, Inc. | Systems and methods for blockchain based proof of payment |
US10176886B1 (en) | 2017-07-07 | 2019-01-08 | Seagate Technology Llc | Multi-level data block error detection code |
JP6853162B2 (ja) * | 2017-11-20 | 2021-03-31 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US10466702B1 (en) * | 2018-02-14 | 2019-11-05 | Rockwell Collins, Inc. | Dual independent autonomous agent architecture for aircraft |
EP3776207B1 (en) | 2018-03-26 | 2023-08-09 | 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 |
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)
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 |
US4453215A (en) | 1981-10-01 | 1984-06-05 | Stratus Computer, Inc. | Central processing apparatus for fault-tolerant computing |
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 |
ATE144058T1 (de) | 1989-08-01 | 1996-10-15 | Digital Equipment Corp | Massenspeicherübertragung während der neusynchronisierung |
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 |
DE69804489T2 (de) * | 1997-11-14 | 2002-11-14 | Marathon Technologies Corp., Boxboro | Verfahren zur erhaltung von synchronisierter ausführung bei fehler-betriebssicheren/ fehlertoleranten rechnersystemen |
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 |
-
1999
- 1999-12-21 US US09/469,963 patent/US6625749B1/en not_active Expired - Lifetime
-
2000
- 2000-10-04 WO PCT/US2000/041079 patent/WO2001046806A1/en active Search and Examination
- 2000-10-04 CN CNB008191425A patent/CN100489801C/zh not_active Expired - Fee Related
- 2000-10-04 CN CN2009101325137A patent/CN101539875B/zh not_active Expired - Fee Related
- 2000-10-04 GB GB0215171A patent/GB2373900B/en not_active Expired - Fee Related
- 2000-10-04 AU AU16318/01A patent/AU1631801A/en not_active Abandoned
- 2000-10-04 DE DE10085324T patent/DE10085324T1/de not_active Ceased
- 2000-10-09 TW TW089121056A patent/TWI247986B/zh not_active IP Right Cessation
-
2002
- 2002-11-08 HK HK02108125.9A patent/HK1046573B/zh not_active IP Right Cessation
-
2003
- 2003-07-18 US US10/622,910 patent/US7134047B2/en not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103649878A (zh) * | 2011-05-03 | 2014-03-19 | 爱立信电视公司 | 视频文件工作流系统中工作流的同步 |
CN103649878B (zh) * | 2011-05-03 | 2016-12-07 | 爱立信电视公司 | 视频文件工作流系统中工作流的同步 |
CN110083494A (zh) * | 2011-12-30 | 2019-08-02 | 英特尔公司 | 在多核心环境中管理硬件错误的方法和装置 |
CN110083494B (zh) * | 2011-12-30 | 2023-07-25 | 英特尔公司 | 在多核心环境中管理硬件错误的方法和装置 |
CN107003898A (zh) * | 2014-12-19 | 2017-08-01 | Arm 有限公司 | 包括至少一个具有线程模式和事务模式的资源的设备及方法 |
CN107003898B (zh) * | 2014-12-19 | 2021-07-06 | Arm 有限公司 | 包括至少一个具有线程模式和事务模式的资源的设备及方法 |
CN111164578A (zh) * | 2017-10-05 | 2020-05-15 | Arm有限公司 | 核内锁步模式的错误恢复 |
CN111164578B (zh) * | 2017-10-05 | 2024-02-23 | Arm有限公司 | 核内锁步模式的错误恢复 |
CN109872150A (zh) * | 2017-12-04 | 2019-06-11 | 恩智浦美国有限公司 | 具有时钟同步操作的数据处理系统 |
CN112015599A (zh) * | 2019-05-31 | 2020-12-01 | 华为技术有限公司 | 错误恢复的方法和装置 |
CN112015599B (zh) * | 2019-05-31 | 2022-05-13 | 华为技术有限公司 | 错误恢复的方法和装置 |
US11604711B2 (en) | 2019-05-31 | 2023-03-14 | Huawei Technologies Co., Ltd. | Error recovery method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
AU1631801A (en) | 2001-07-03 |
CN101539875B (zh) | 2012-04-11 |
CN100489801C (zh) | 2009-05-20 |
GB0215171D0 (en) | 2002-08-07 |
US7134047B2 (en) | 2006-11-07 |
HK1046573A1 (en) | 2003-01-17 |
US6625749B1 (en) | 2003-09-23 |
US20040019771A1 (en) | 2004-01-29 |
DE10085324T1 (de) | 2002-12-05 |
CN1434941A (zh) | 2003-08-06 |
GB2373900B (en) | 2004-12-29 |
WO2001046806A1 (en) | 2001-06-28 |
HK1046573B (zh) | 2005-05-06 |
GB2373900A (en) | 2002-10-02 |
TWI247986B (en) | 2006-01-21 |
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 | |
US7340643B2 (en) | Replay mechanism for correcting soft errors | |
US5276823A (en) | Fault-tolerant computer system with redesignation of peripheral processor | |
EP0516126B1 (en) | Fault tolerant multiprocessor computer system | |
US8635492B2 (en) | State recovery and lockstep execution restart in a system with multiprocessor pairing | |
CN109891393B (zh) | 使用检查器处理器的主处理器错误检测 | |
US5890003A (en) | Interrupts between asynchronously operating CPUs in fault tolerant computer system | |
US6751749B2 (en) | Method and apparatus for computer system reliability | |
US6851074B2 (en) | System and method for recovering from memory failures in computer systems | |
Reick et al. | Fault-tolerant design of the IBM Power6 microprocessor | |
Siewiorek | Fault tolerance in commercial computers | |
US6519730B1 (en) | Computer and error recovery method for the same | |
US20050172196A1 (en) | Variable delay instruction for implementation of temporal redundancy | |
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 | |
US7502958B2 (en) | System and method for providing firmware recoverable lockstep protection | |
Tamir et al. | The UCLA mirror processor: A building block for self-checking self-repairing computing nodes | |
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 | |
Saxena et al. | Error detection and handling in a superscalar, speculative out-of-order execution processor system | |
Lai | Computer Science Department Technical Report University of California |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120411 Termination date: 20131004 |