CN1902581A - 使用推测性存储器支持来管理用于冗余多线程系统中故障检测的外部存储器更新 - Google Patents

使用推测性存储器支持来管理用于冗余多线程系统中故障检测的外部存储器更新 Download PDF

Info

Publication number
CN1902581A
CN1902581A CN200480039553.2A CN200480039553A CN1902581A CN 1902581 A CN1902581 A CN 1902581A CN 200480039553 A CN200480039553 A CN 200480039553A CN 1902581 A CN1902581 A CN 1902581A
Authority
CN
China
Prior art keywords
thread
instruction
period
hangover
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200480039553.2A
Other languages
English (en)
Other versions
CN100480996C (zh
Inventor
S·K·赖因哈德特
S·穆克赫尔吉
J·S·埃默
C·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 CN1902581A publication Critical patent/CN1902581A/zh
Application granted granted Critical
Publication of CN100480996C publication Critical patent/CN100480996C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1492Generic software techniques for error detection or fault masking by run-time replication performed by the application software
    • G06F11/1494N-modular type
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1497Details of time redundant execution on a single processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution

Abstract

公开了一种使用推测性存储器支持来管理用于冗余多线程系统中故障检测的外部存储器更新的多线程体系结构。特别是,一种方法通过使用推测性存储器支持将冗余线程与外部更新隔离来在SRT处理器上提供装入值的输入复制。该方法因此避免了提供输入复制的专用结构的需要。

Description

使用推测性存储器支持来管理 用于冗余多线程系统中故障检测的外部存储器更新
相关申请
此美国专利申请涉及以下美国专利申请:2003年12月30日提交的申请号为10/749,618的BUFFERING UNCHECKED STORES FORFAULT DETECTION IN RMS USING SPECULATIVE MEMORYSUPPORT。
背景信息
处理器正在变得日益易受由α粒子和宇宙射线放电(strike)引起的瞬时故障的损坏。这些故障可能导致称为“软”错误的操作错误,因为这些错误并不导致处理器的永久故障。由于处理器缺少实际的保护,所以诸如中子之类的宇宙射线粒子的放电特别危险。在基于处理器的设备中,瞬时故障通常占故障中的90%以上。
由于晶体管尺寸缩小,所以单个晶体管变得不大易受宇宙射线放电的损坏。然而,伴随着晶体管尺寸的减少,电压电平也减少,并且用于处理器的晶体管数量的相应增加导致整个处理器对宇宙射线放电或其他软错误原因的敏感度按指数增加。为了解决该问题,对于多处理器系统而言实现选定失效率需要单个处理器的甚至更低的失效率。作为这些趋势的结果,通常为关键任务应用程序所保留的故障检测和恢复技术正变得日益适用于其它处理器应用。
当错误没有被检测到并且可能导致破坏的数据值时,无记载(silent)数据破坏(SDC)出现,所述破坏的数据值能够一直持续到处理器被复位。SDC比率是SDC事件出现的比率。软错误是例如通过使用奇偶检验来检测但不能被纠正的错误。
在故障能够扩散到永久存储器之前,故障检测支持可以通过暂停计算来减少处理器的SDC比率。例如,奇偶校验是一种众所周知的故障检测机制,其避免存储器结构中单比特错误的无记载数据破坏。遗憾的是,将奇偶校验添加到锁存器或高性能处理器中的逻辑会不利地影响周期时间和整体性能。因此,处理器设计者已经采用冗余执行机制来检测处理器中的故障。
当前的冗余执行系统一般使用称为“锁步”的技术,其通过在两个相同的锁步(周期同步的)处理器上运行同一程序的相同拷贝来检测处理器故障。在每个周期中,两个处理器被馈给相同的输入,并且检验器电路比较输出。一旦输出不匹配,则检验器标记错误并且能够启动恢复程序。锁步可以通过检测在检验器上显示的每个故障来减少处理器的SDC FIT。遗憾的是,锁步浪费了否则可用于改善性能的处理器资源。
附图简述
根据如附图中所说明的优选实施例的下面的描述,本发明的各种特征将是显而易见的,其中在整个附图中,相同的参考数字通常是指相同的部分。附图不一定是按照比例的,而是把重点放在说明本发明的原理上。
图1是具有冗余线程的冗余多线程体系结构的一个实施例的框图。
图2是同步和冗余线程体系结构的一个实施例的框图。
图3说明同步和冗余多线程体系结构的一个实施例的最小和最大空闲时间(slack)关系。
图4是管理时期间(inter-epoch)存储器数据相关性的存储器系统扩展的流程图。
图5是用于冗余多线程体系结构中的故障检测的外部存储器更新的一个实施例的框图。
详细描述
在下面的描述中,为了解释而非限制来阐述具体细节,例如特定结构、体系结构、接口、技术等等,以便提供对本发明各个方面的彻底理解。然而,对于具有本公开益处的本领域技术人员而言显而易见的是,可以在其他脱离这些具体细节的实例中实行本发明的各个方面。在某些情况中,省略了公知设备、电路和方法的描述,以便不用不必要的细节来模糊本发明的描述。
复制范围
图1是冗余多线程体系结构的一个实施例的框图。在冗余多线程体系结构中,通过将一个程序的两个拷贝作为独立的线程来执行可以检测故障。每个线程具备相同的输入,并且输出被比较以确定是否出现错误。可以相对于在此称为“复制范围”的概念来描述冗余多线程。复制范围是逻辑上或物理上冗余操作的边界。
在复制范围130内的部件(例如执行前导线程110的处理器和执行拖尾线程120的处理器)进行冗余执行。相反,在复制范围130外的部件(例如存储器150、RAID 160)不进行冗余执行。通过其它技术来提供故障保护,例如用于存储器150的纠错码和用于RAID 160的奇偶校验。其它的设备可以在复制范围130外,和/或其它的技术可以用来提供在复制范围130外的设备的故障保护。
输入复制范围130的数据通过输入复制代理170输入,该输入复制代理170复制数据,并且将数据的拷贝发送到前导线程110和拖尾线程120。类似地,离开复制范围130的数据通过输出比较代理180离开,该输出比较代理180比较数据,并且确定是否出现错误。改变复制范围130的边界导致硬件的性能与数量的折衷。例如,复制存储器150将通过避免存储指令的输出比较而允许较快地访问存储器,但是通过加倍系统中存储器的数量将增加系统成本。
通常存在两个复制范围,它们可以被称为“SoR寄存器”和“SoR高速缓存”。在SoR寄存器体系结构中,寄存器文件和高速缓存在复制范围之外。从复制范围的SoR寄存器的输出包括寄存器写以及存储地址和数据,为了发现故障而对它们进行比较。在SoR高速缓存体系结构中,指令和数据高速缓存在复制范围之外,因此为了发现故障而对所有存储地址和数据而不是寄存器写进行比较。
SoR高速缓存体系结构具有以下优点,即为了发现故障而仅比较存储内容(store)(和可能的有限数量的其他选定指令),这就通过不延迟存储操作而减少了检验器带宽并且改善了性能。相反,SoR寄存器体系结构需要为了发现故障而比较大部分指令,这需要较大的检验器带宽,并且可以延迟存储操作,直到检验器确定在存储操作之前的所有指令是无故障的。SoR高速缓存能够提供与SoR寄存器相同的瞬时故障覆盖水平,因为在复制范围的边界处未显示为错误的故障不破坏系统状态,并且因此被有效地屏蔽。
为了提供故障恢复,应该比较每个指令结果以提供对应于每个指令的检验点。因此,在此更加详细地描述SoR寄存器体系结构。
同步和冗余线程体系结构的概述
图2是同步和冗余线程体系结构的一个实施例的框图。图2的体系结构是SoR寄存器体系结构,其中比较每个指令的输出或结果以检测错误。
前导线程210和拖尾线程220表示以一个时间差来执行的相应线程,以使前导线程210在拖尾线程220执行指令之前执行相同的指令。在一个实施例中,前导线程210和拖尾线程220是相同的。作为选择,前导线程210和/或拖尾线程220能够包括未在副本(counterpart)线程中包含的控制或其他信息。可以通过同一处理器执行前导线程210和拖尾线程220,或者可以通过不同处理器执行前导线程210和拖尾线程220。
指令地址经由指令复制队列230而从前导线程210传递到拖尾线程220。通过指令复制队列230传递指令允许对在前导线程210中指令的执行与拖尾线程220中同一指令的执行之间的时间差或“空闲时间”进行控制。
输入数据通过源寄存器值队列240而从前导线程210传递到拖尾线程220。在一个实施例中,源寄存器值队列240为前导线程210和拖尾线程220复制输入数据。输出数据通过目的寄存器值队列250而从拖尾线程220传递到前导线程210。在一个实施例中,目的寄存器值队列240比较前导线程210和拖尾线程220的输出数据。
在一个实施例中,前导线程210比拖尾线程220提前运行数百条指令。可以使用任何数量的指令的“空闲时间”。在一个实施例中,通过放慢和/或延迟拖尾线程220的指令提取而产生空闲时间。在可选的实施例中,如果指令复制队列230不执行指令复制,那么可以通过指令复制队列230或指令复制机构来产生空闲时间。
用于在同步和冗余线程体系结构中产生空闲时间的技术的更多细节可以在以下文献中找到:Shubhendu S.Mukherjee,Michael Kontz和Steven K.Reinhardt的“Detailed Design and Evaluation of RedundantMultithreading Alternatives(冗余多线程替代的详细设计和评估)”inProc.29th Int’l Symp.on Computer Architecture,May 2002以及Steven K.Reinhardt和Shubhendu S.Mukherjee的“Transient FaultDetection via Simultaneous Multithreading(经由同步多线程的瞬时故障检测)”in Proc.27th Int’l Symp.on Computer Architecture,June2000。
图3说明同步和冗余线程体系结构的一个实施例的最小和最大空闲时间关系。图3的实施例是如上所述的SoR寄存器体系结构。最小空闲时间是高速缓存未命中、从执行到退出(retire)的等待时间以及招致将装入地址和值转发到拖尾线程的等待时间的总等待时间。如果前导线程经历高速缓存未命中,并且来自拖尾线程的相应装入在最小空闲时间之前到达执行点,那么停止拖尾线程。
类似地,最大空闲时间是前导线程中从退出到故障检测的等待时间。通常,存在确定数量的缓冲以允许从前导线程退出的指令在退出之后保留在处理器中。这在前导线程和拖尾线程之间定义了最大空闲时间。如果缓冲器装满,那么停止前导线程以允许拖尾线程使用缓冲器的附加指令。所以,如果两个线程之间的空闲时间大于最大空闲时间,那么整体性能降低。
推测性(speculative)存储器支持
在推测性多线程系统中,将顺序程序分成逻辑上的顺序段,称为时期(epoch)或任务。多个时期在独立的处理器核心上或者作为SMT处理器内的独立线程来被并行执行。在时间中的任一给定点,仅最老的时期对应于原始顺序程序的执行。所有其它时期的执行基于推测过去可能的控制和数据冒险(hazard)。在时期间错误推测的情况下,错误推测的时期被压制。如果时期完成执行并且变成最老的时期,那么其结果被提交到计算的顺序体系结构状态。
在推测性多线程系统的一个实施例中,编译器可以基于试探法来静态地将代码划分成时期。例如,通常可以使用循环体来形成时期。在该情况中,所述循环的多次迭代将在运行时间时创建能够并行执行的多个时期。
系统必须实施时期间数据冒险以维持在该并行执行上的顺序程序的语义。在一个实施例中,编译器负责时期的形成,所以它能够明确地管理基于寄存器的时期间通信(也许具有硬件支持)。基于存储器的数据冒险(一般)不可静态预测,因此必须在运行时间时处理。管理时期间存储器数据相关性的存储器系统扩展是任一推测性多线程系统的关键部件,当可能的时候,它满足所述相关性,并且检测违犯以及另外压制时期。
图4说明管理时期间存储器数据相关性的存储器系统扩展。检测违犯和压制时期是任一推测性多线程系统的重要特征。在一个实施例中,在步骤400,装入必须将存储值返回到在程序的逻辑顺序执行中直接在其之前的相同地址。例如,系统必须以优先次序返回以下内容。首先,如果有的话是同一时期内最近预先存储的值。其次,如果有的话是逻辑上最近的前述时期中最后存储的值。最后是来自所提交的顺序存储器状态的值。此外,装入必须未受到已经执行的任何逻辑上接连的存储内容的影响。这假设处理器保证存储器引用出现以在时期内顺序执行,因此,任何逻辑上接连的存储内容将属于逻辑上接连的时期。
接下来,在410,存储内容必须检测任何逻辑上接连的装入是否已经执行。如果它们已经执行,那么它们违犯了数据相关性。然后必须压制包含所述装入的任何时期以及可能的任何随后的时期。在420,提交操作获得在时期期间所执行的外露的存储内容组,并且自动地将它们应用于提交的顺序存储器状态。外露的存储内容是时期中特定位置的最后存储内容。非外露存储内容,即同一时期内其值被重写的存储内容在它们执行的时期外是不可观测到的。最后,在430,异常中止操作获得在时期期间所执行的存储内容组并丢弃它们。
图5是用于冗余多线程系统中故障检测的使用推测性存储器支持将冗余执行与外部存储器更新隔离的框图。通过将执行与外部存储器更新隔离提供了装入输入的精确复制。
在该实施例中,前导线程510和拖尾线程520并行执行时期。指令复制队列530从前导线程510发送时期到拖尾线程520。前导线程510和拖尾线程520都具有复制范围500。
特定时期的单独执行被称为时期“实例”。通过RMT系统的前导线程510和拖尾线程520并行执行时期的两个实例。一旦执行,存储内容就被发送到存储器系统540。可以修改在当前时期期间已经访问过的位置的外部代理的存储器修改没有被应用。而是将它们放置在存储器540中。由于它们被放置在存储器中,所以当相应拖尾线程装入发生时,在时期期间由前导线程读取的任何位置将具有相同的值。使用上述的推测性存储器支持,存储内容作为推测性存储内容被保存在存储器系统中。一旦完成时期的两个实例,那么在550比较外露的存储内容。如果所比较的存储内容匹配,那么将单个组的外露存储内容提交到体系结构存储器状态560。
在该实施例中,如上所述检测的条件是对在当前执行的时期内已经读取的位置的外部写。在推测性存储器系统中,该条件的出现将表示不正确的推测,并且使当前执行的时期被压制。在RMT系统中压制当前时期的两个实例将同样避免发散(divergent)执行,并且只要能够保证向前进展就表示一种适当的解法。然而,在具有松弛的存储器一致性模型的RMT系统中,该事件不需要引起压制。如果外部写位置的先前值能够被保持直到时期结束,并且被提供给在两个时期实例内的任何随后装入,那么这两个实例将沿着同一执行路径继续。在570,在完成当前时期时能够使外部写为本地线程可见。
推测性存储器系统的冲突访问检测机构能够识别在RMT系统能够引起发散执行的事件的超集。具体而言,可能存在三种不同的情况,其中在当前时期期间已经本地读取的块内位置上出现外部写,所有的情况将通过推测性存储器系统来标记。
在第一种情况中,虽然在同一高速缓存块中,但是外部写位置与本地处理器所读取的位置不同。在该情况中,推测性存储器系统指示“假冲突”。通过使用附加状态位以精确指示块内哪些字被访问而能够避免这种情况。
在第二种情况中,在前导线程和拖尾线程都完成它们相应的访问之后(但在时期结束之前)出现外部写。两个冗余线程已经检索相同的值,所以不会出现发散。
在第三种情况中,在一个线程完成其访问之后,但在另一线程完成其相应访问之前出现外部写。在该情况中,仅在其到达时应用外部写可以引起发散执行。
有利的是,如果检测到的访问冲突使当前时期被压制,那么将头两种情况与第三种情况区别可能是值得的,以避免不必要地丢弃工作。如果仅冲突外部写被延迟直到时期边界,那么用于向所有情况应用该策略的惩罚应该是最小的。
相对于原始LVQ设计的推测性存储器方法的另一优点在于两次访问存储器系统,从而将高速缓存访问路径带到复制范围并且扩展RMT的故障覆盖。然而,这种好处是以增加存储器系统带宽需求为代价的。
另外,当前推测性存储器方法在时期内将所有的装入集合在一起。迫使外部无效仅在时期之间起作用确保了先前时期内的每个装入的两个实例已经完成,并且在接连的时期内的任一装入的两个实例都不发生。
在随后的描述中,为了解释而非限制的目的来阐述诸如特定结构、体系结构、接口、技术等等之类的具体细节,以便提供对本发明各个方面的彻底理解。然而,对于具有本公开益处的本领域技术人员而言显而易见的是,可以在其他脱离这些具体细节的实例中实行本发明的各个方面。在某些情况中,省略了公知设备、电路和方法的描述,以便不用不必要的细节来模糊本发明的描述。

Claims (10)

1.一种方法,包括:
将相应的指令线程作为前导线程和拖尾线程来并行执行;
将在前导线程中执行指令的结果以及在拖尾线程中执行指令的结果保存到存储器中;
对在存储器中保存的结果进行比较;
基于比较结果来将单组指令提交给存储器状态;以及
延迟外部更新一直到完成提交步骤。
2.权利要求1所述的方法,其中将保存的结果保存为推测性的。
3.权利要求1所述的方法,其中指令是时期指令。
4.权利要求3所述的方法,其中当相应拖尾线程装入发生时,在时期期间由前导线程读取的相应指令包含相同的值。
5.一种设备,包括:
用于将并行线程作为前导线程和拖尾线程来执行的装置;
用于将执行的线程保存在存储器中的装置;
用于比较在存储器中保存的结果的装置;
基于比较结果来将单组线程提交到存储器状态的装置;以及
用于延迟外部更新一直到完成提交步骤的装置。
6.权利要求5所述的设备,其中所执行的线程是时期线程。
7.权利要求6所述的设备,其中每个时期被执行两次。
8.权利要求5所述的设备,其中当相应拖尾线程装入发生时,在时期期间由前导线程读取的相应指令包含相同的值。
9.权利要求8所述的设备,其中缓冲的线程被存储为推测性的。
10.权利要求9所述的设备,其中如果比较结果匹配,那么提交单个组。
CN200480039553.2A 2003-12-30 2004-12-22 在冗余多线程系统中管理外部存储器更新的方法和设备 Expired - Fee Related CN100480996C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/750,039 2003-12-30
US10/750,039 US7444497B2 (en) 2003-12-30 2003-12-30 Managing external memory updates for fault detection in redundant multithreading systems using speculative memory support

Publications (2)

Publication Number Publication Date
CN1902581A true CN1902581A (zh) 2007-01-24
CN100480996C CN100480996C (zh) 2009-04-22

Family

ID=34739092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200480039553.2A Expired - Fee Related CN100480996C (zh) 2003-12-30 2004-12-22 在冗余多线程系统中管理外部存储器更新的方法和设备

Country Status (5)

Country Link
US (1) US7444497B2 (zh)
JP (1) JP4531060B2 (zh)
CN (1) CN100480996C (zh)
DE (1) DE112004002576T5 (zh)
WO (1) WO2005066780A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111630595A (zh) * 2018-01-23 2020-09-04 微芯片技术股份有限公司 用于存储器攻击检测的存储器设备、存储器地址解码器、系统和相关方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7166847B2 (en) * 2004-06-30 2007-01-23 Intel Corporation System with response to cosmic ray detection
US7581152B2 (en) 2004-12-22 2009-08-25 Intel Corporation Fault free store data path for software implementation of redundant multithreading environments
US7818744B2 (en) * 2005-12-30 2010-10-19 Intel Corporation Apparatus and method for redundant software thread computation
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
US8397052B2 (en) * 2009-08-19 2013-03-12 International Business Machines Corporation Version pressure feedback mechanisms for speculative versioning caches
US8521961B2 (en) * 2009-08-20 2013-08-27 International Business Machines Corporation Checkpointing in speculative versioning caches
US20110099439A1 (en) * 2009-10-23 2011-04-28 Infineon Technologies Ag Automatic diverse software generation for use in high integrity systems
US8250395B2 (en) * 2009-11-12 2012-08-21 International Business Machines Corporation Dynamic voltage and frequency scaling (DVFS) control for simultaneous multi-threading (SMT) processors
US20110208948A1 (en) * 2010-02-23 2011-08-25 Infineon Technologies Ag Reading to and writing from peripherals with temporally separated redundant processor execution
US8516356B2 (en) 2010-07-20 2013-08-20 Infineon Technologies Ag Real-time error detection by inverse processing
US8745440B1 (en) * 2010-09-21 2014-06-03 F5 Networks, Inc. Computer-implemented system and method for providing software fault tolerance
JP5850774B2 (ja) 2012-03-22 2016-02-03 ルネサスエレクトロニクス株式会社 半導体集積回路装置及びそれを用いたシステム
JP2014063258A (ja) 2012-09-20 2014-04-10 Renesas Electronics Corp 半導体集積回路装置及びマイクロコントローラ
CN103092714A (zh) * 2012-12-31 2013-05-08 哈尔滨工业大学 用于容错系统的处理器瞬时故障检测方法
GB2565338B (en) * 2017-08-10 2020-06-03 Mips Tech Llc Fault detecting and fault tolerant multi-threaded processors

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5415835A (en) 1992-09-16 1995-05-16 University Of New Mexico Method for fine-line interferometric lithography
JP2970553B2 (ja) * 1996-08-30 1999-11-02 日本電気株式会社 マルチスレッド実行方法
JP3139392B2 (ja) * 1996-10-11 2001-02-26 日本電気株式会社 並列処理システム
US6567839B1 (en) * 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
JP3101594B2 (ja) 1997-11-06 2000-10-23 キヤノン株式会社 露光方法及び露光装置
JP4065468B2 (ja) 1998-06-30 2008-03-26 キヤノン株式会社 露光装置及びこれを用いたデバイスの製造方法
US6625749B1 (en) * 1999-12-21 2003-09-23 Intel Corporation Firmware mechanism for correcting soft errors
US20020023202A1 (en) 2000-04-19 2002-02-21 Mukherjee Shubhendu S. Load value queue input replication in a simultaneous and redundantly threaded processor
JP2003015900A (ja) * 2001-06-28 2003-01-17 Hitachi Ltd 追走型多重化システム、及び追走により信頼性を高めるデータ処理方法
US7752423B2 (en) * 2001-06-28 2010-07-06 Intel Corporation Avoiding execution of instructions in a second processor by committing results obtained from speculative execution of the instructions in a first processor
JP3702815B2 (ja) * 2001-07-12 2005-10-05 日本電気株式会社 プロセッサ間レジスタ継承方法及びその装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111630595A (zh) * 2018-01-23 2020-09-04 微芯片技术股份有限公司 用于存储器攻击检测的存储器设备、存储器地址解码器、系统和相关方法

Also Published As

Publication number Publication date
DE112004002576T5 (de) 2008-03-06
CN100480996C (zh) 2009-04-22
JP4531060B2 (ja) 2010-08-25
WO2005066780A2 (en) 2005-07-21
JP2007519101A (ja) 2007-07-12
US20050154944A1 (en) 2005-07-14
WO2005066780A3 (en) 2006-05-04
US7444497B2 (en) 2008-10-28

Similar Documents

Publication Publication Date Title
CN1902593B (zh) 使用推测存储器支持的冗余多线程系统中缓冲未检验存储的方法
KR101546033B1 (ko) Smt 기계에서 비교 및 전달 명령어를 사용한 안정적 실행
CN101286123B (zh) 用于高效地执行事务的装置、方法和系统
US7243262B2 (en) Incremental checkpointing in a multi-threaded architecture
US7802136B2 (en) Compiler technique for efficient register checkpointing to support transaction roll-back
US8132158B2 (en) Mechanism for software transactional memory commit/abort in unmanaged runtime environment
US7308607B2 (en) Periodic checkpointing in a redundantly multi-threaded architecture
US7921331B2 (en) Write filter cache method and apparatus for protecting the microprocessor core from soft errors
US7373548B2 (en) Hardware recovery in a multi-threaded architecture
CN109891393B (zh) 使用检查器处理器的主处理器错误检测
US8140773B2 (en) Using ephemeral stores for fine-grained conflict detection in a hardware accelerated STM
US20080244354A1 (en) Apparatus and method for redundant multi-threading with recovery
CN100480996C (zh) 在冗余多线程系统中管理外部存储器更新的方法和设备
US9710280B2 (en) Overlapping atomic regions in a processor
US9594648B2 (en) Controlling non-redundant execution in a redundant multithreading (RMT) processor
US10671512B2 (en) Processor memory reordering hints in a bit-accurate trace
US8898401B2 (en) Methods and apparatuses for improving speculation success in processors
Amslinger et al. Multiversioning hardware transactional memory for fail-operational multithreaded applications
CN117687895A (zh) 跨cpu内核的伪锁步执行
CN113557497A (zh) 指令排序
JPH07200400A (ja) バスエラー回復機能付きマイクロプロセッサ

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: 20090422

Termination date: 20131222