CN100578462C - 降低时钟同步双模冗余系统中错误率的装置、方法和系统 - Google Patents
降低时钟同步双模冗余系统中错误率的装置、方法和系统 Download PDFInfo
- Publication number
- CN100578462C CN100578462C CN200680021365A CN200680021365A CN100578462C CN 100578462 C CN100578462 C CN 100578462C CN 200680021365 A CN200680021365 A CN 200680021365A CN 200680021365 A CN200680021365 A CN 200680021365A CN 100578462 C CN100578462 C CN 100578462C
- Authority
- CN
- China
- Prior art keywords
- value
- kernel
- checker
- clock synchronization
- micro
- 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
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/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/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/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/1683—Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
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)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了用于降低时钟同步双模冗余系统中的不可纠正错误率的装置和方法的实施例。在一个实施例中,该装置包括两个处理器内核、微校验器、全局校验器以及故障逻辑。微校验器用于检测来自一个内核中的结构的值是否与来自另一内核中的相应结构的值相匹配。全局校验器用于检测两个内核之间的时钟同步故障。故障逻辑用于如果存在时钟同步故障,而校验器检测到不匹配,则使这两个内核重新同步。
Description
技术领域
本发明涉及数据处理领域,尤其涉及在数据处理装置中抑制错误的领域。
背景技术
随着集成电路制造技术的改进不断使微处理器和其他数据处理装置具有更小的尺寸和更低的工作电压,这些设备的制造商和用户变得更加关心软错误现象。当α粒子和高能中子碰撞集成电路并改变存储在电路节点上的电荷时,产生软错误。如果电荷改变足够大,则节点上的电压可能从表示一种逻辑状态的电平改变为表示一种不同的逻辑状态的电平,在这种情况下,存储在该节点上的信息被破坏。通常,软错误率随着电路尺寸的减小而增加,这是因为当电路密度增加时碰撞粒子击中电压节点的可能性增加。同样,随着工作电压减小,表示不同逻辑状态的电压电平之间的差值减小,因此改变电路节点上的逻辑状态需要更少的能量,并且产生更多的软错误。
阻挡导致软错误的粒子是极其困难的,因此数据处理装置常常包括用于检测并且有时用于纠正软错误的技术。这些错误抑制技术包括双模冗余(“DMR”)和三模冗余(“TMR”)。利用DMR,两个相同的处理器或处理器内核以时钟同步(lockstep)的方式执行相同的程序,并且对它们的结果进行比较。利用TMR,以时钟同步的方式运行三个相同的处理器。
使用DMR或TMR可以检测任何一个处理器中的错误,这是因为错误将导致结果出现差异。TMR提供了如下优点,即可以通过假定三个处理器当中的两个处理器的匹配结果是正确的结果来实现从错误中的恢复。
通过在将所有结果提交给寄存器或者所有结果被允许影响系统的架构状态(architectural state)之前校验所有的结果,DMR系统中的恢复也是可行的。然后,如果检测到错误,则通过重新执行自最后一个检查点以来的所有指令,可以实现恢复。然而,由于延迟时间或其他设计限制,这种方法并不实用。另一种方法是加入回退机制,如果检测到错误,其允许恢复原来的架构状态。由于设计的复杂性,这种方法也不实用,并且可能存在以下问题:由于发生非确定性事件,例如异步中断或不等幂的输出操作的重新执行,而使从先前状态重新执行的结果可能与原始结果不同。
另外,因为DMR和TMR的实现需要会受软错误影响的附加电路,并且因为它们可以检测到不然会变为未被检测到的但又不会引起系统故障的错误,所以DMR和TMR实际上可能增加错误率。例如,用于进行预测的结构中的错误可能导致不正确的预测,其中所述结构用于预测应该推测性地执行程序的哪个分支,但是当最终评定分支条件时,处理器将自动恢复。
发明内容
为了解决上述问题,本发明提供一种能够克服上述缺陷的装置、方法和系统。
本发明的目的在于提供一种能够降低时钟同步双模冗余系统中的错误率的装置、方法和系统。
根据本发明的第一方面,提供一种使内核重新同步的装置,该装置包括有:包括第一结构的第一内核;包括第二结构的第二内核;微校验器,用于检测来自所述第一结构的第一值是否与来自所述第二结构的第二值相匹配;全局校验器,用于检测所述第一内核与所述第二内核之间的时钟同步故障;以及故障逻辑,用于如果所述全局校验器检测到所述时钟同步故障且所述微校验器检测到所述第一值与所述第二值之间的不匹配,则使所述第一内核和所述第二内核重新同步。
根据本发明的第二方面,提供一种使内核重新同步的方法,该方法包括:校验来自第一内核中的第一结构的第一值是否与来自第二内核中的第二结构的第二值相匹配;检测所述第一内核与所述第二内核之间的时钟同步故障;以及如果检测到所述第一值与所述第二值之间的不匹配并且检测到所述第一内核与所述第二内核之间的时钟同步故障,则使所述第一内核和所述第二内核重新同步。
根据本发明的第三方面,提供一种使内核重新同步的系统,该系统包括:动态随机存取存储器;包括第一结构的第一内核;包括第二结构的第二内核;微校验器,用于检测来自所述第一结构的第一值是否与来自所述第二结构的第二值相匹配;全局校验器,用于检测所述第一内核与所述第二内核之间的时钟同步故障;以及故障逻辑,用于如果所述全局校验器检测到所述时钟同步故障且所述微校验器检测到所述第一值和所述第二值之间的不匹配,则使所述第一内核与所述第二内核重新同步。
附图说明
借助实例说明本发明,但不限于附图。
图1示出本发明在多核处理器中的实施例;
图2示出使用微校验指纹逻辑(microcheck fingerprint logic)来降低内核间带宽(cross-core bandwidth)的本发明的实施例;
图3示出本发明在用于降低时钟同步双模冗余系统中的不可纠正错误率的方法中的实施例;
图4示出本发明在用于降低时钟同步双模冗余系统中的不可纠正错误率的方法中的另一实施例;
图5示出本发明在用于降低时钟同步双模冗余系统中的不可纠正错误率的方法中的另一实施例;
图6示出本发明在时钟同步双模冗余系统中的实施例。
具体实施方式
以下说明用于降低时钟同步双模冗余系统中的不可纠正错误率的装置和方法的实施例。在以下说明中,为了对本发明有更加全面的理解,阐明了许多具体的细节,例如部件和系统结构。然而,本领域技术人员应该理解的是,可以在没有这些具体细节的情况下实施本发明。另外,没有对一些公知的结构、电路、技术等进行详细的说明,以避免不必要地使本发明含混不清。
DMR可以用于提供错误检测和纠正。然而,通过检测到不会引起系统故障的错误,DMR也可能增加错误率。本发明的实施例可以通过使用微校验器检测这种“假”错误以便将它们忽略,来降低DMR系统中的错误率。其他实施例可以通过如下方式来降低DMR系统中的错误率:将微校验器用于特定结构,例如高速缓存,为其重新产生值并将该值与原始值进行比较以确定两个处理器中的哪一个应该与另一个处理器的状态同步,由此避免完全回退机制的成本。本发明的这些实施例是可取的,其提供了DMR的一些益处(例如,错误检测和纠正能力),同时减少了一些缺点(例如,假错误、完全恢复能力的成本)。
而且,本发明的实施例是可取的,其避免了用奇偶校验或纠错码机制保护特定的结构,所述机制可能很昂贵,并且对于不能破坏架构状态的结构也可能是不必要的。根据本发明的实施例,将这些结构连接到微校验器可以在不需要通过奇偶校验或其他方式确定两个DMR内核中的哪一个出现了错误的情况下,提供从错误中恢复的能力。
图1示出本发明在多核处理器100中的实施例。通常,多核处理器是包括一个以上执行内核的单个集成电路。执行内核包括用于执行指令的逻辑。除执行内核之外,多核处理器可以包括在本发明范围内的专用或共享资源的任何组合。专用资源可以是专用于单内核的资源,例如专用的一级高速缓存,或者可以是专用于内核的任何子集的资源。共享资源可以是由所有内核共享的资源,例如支持多核处理器和另一部件之间的接口的共享外部总线单元或共享的二级高速缓存,或者可以是由内核的任何子集共享的资源。本发明还在多核处理器之外的装置中实现,例如在具有至少两个处理器的多处理器系统中实现,其中每个所述处理器具有至少一个内核。
处理器100包括内核110和内核120。内核110和120可以基于各种不同类型的处理器中的任何一种的设计,例如处理器系列、处理器系列、或来自Intel公司的其他处理器系列中的处理器,或者来自另一公司的另一处理器。处理器100还包括全局校验器130和微校验器140。
根据任何公知的用于检测DMR系统中的时钟同步故障的技术,例如利用比较器电路,全局校验器130将来自内核110的输出与来自内核120的输出进行比较。例如,当内核110和120同步运行具有相同输入的相同程序副本时,可以对内核110和120的输出进行比较。
内核110包括结构111,其可以是任何电路、逻辑、功能块、模块、单元或其他结构,所述其他结构当内核110和120以时钟同步的方式操作时产生或保持与来自包括在内核120中的相应结构121的相应值相匹配的值。
在一个实施例中,结构111和121可以是不能改变处理器100或包括处理器100的系统的架构状态的结构。例如,结构111和121可以是预测结构,例如条件分支预测器、跳转预测器、返回地址预测器、或存储器相关性(memory dependence)预测器。
在另一实施例中,结构111和121可以是其内容在包括处理器100的系统中的其他处被复制、或被重新产生的结构。例如,结构111和121可以是高速缓存结构,其中每个未修改的高速缓存线或项是可以通过从系统中的更高级高速缓存或其他存储器中重新加载高速缓存线或项来重新产生的值。
微校验器140将来自结构111的值与来自结构121的相应值相比较。在不同的实施例中,所比较的值可以根据结构111和112的性质而不同,并且例如可以是指示是应该进行条件分支还是应该发生跳转的单个比特、多比特预测返回地址、或多比特高速缓存线或项。因此,微校验器140的性质在不同的实施例中可以不同,并且可以根据任何公知的技术,例如利用专用电路或门电路或比较器电路,来进行比较。
在一个实施例中,可以将微校验器140配置为保留其比较结果至少直到时钟同步的程序执行已经到达这样一个点为止,即在该点全局校验器130所检测到的时钟同步故障不能被归因于在微校验器140所比较的值之间的不匹配。例如,如果微校验器是组合逻辑,并且所比较的值保持静态至少直到到达每个时钟同步故障检测点为止,则可以在没有任何特殊存储元件的情况下实现微校验器140的这种配置,或者可以利用寄存器或其他存储微校验器140的结果的存储元件来实现微校验器140的这种配置。在其他实施例中,不需要将微校验器配置为保留其比较结果。
处理器100还包括故障逻辑150。故障逻辑150可以是任何硬件、微代码、可编程逻辑、处理器抽象层、固件、软件、或其他命令处理器100对全局校验器130检测到时钟同步故障进行响应的逻辑。在全局校验器130检测到时钟同步故障时,如果微校验器140已经检测到来自结构111的值和来自结构121的相应值之间的不匹配,则故障逻辑150使内核110和内核120如下所述那样被重新同步。然而,如果微校验器140没有检测到来自结构111的值和来自结构121的相应值之间的不匹配,则根据任何公知的指示系统故障的方法,例如报告故障码和中断操作,故障逻辑150指示检测到不可纠正的错误。
尽管图1仅仅示出内核110中的结构111和内核120中的结构121向微校验器140提供输入,但是在本发明的范围内可以使用任何数量的结构和微校验器。例如,图2示出使用每个内核多个结构、单个微校验器和用于降低内核间带宽的指纹逻辑的本发明的实施例。
在图2中,处理器200包括内核210和220、全局校验器230、微校验器240以及故障逻辑250。内核210包括结构211、213和215,并且处理器内核220包括结构221、223和225。
结构211包括根据来自结构213和215的值产生指纹的指纹逻辑212,其中结构213和215可以是如以上相对于图1中的结构111所述的任何结构。同样,结构221包括根据与指纹逻辑212所用的方法相同的方法、基于来自结构223和225的值产生指纹的指纹逻辑222。
指纹逻辑212和指纹逻辑222可以利用任何公知的将两个或多个值组合成单个值的方法(例如,使用循环冗余校验器产生校验和)来实现。可以使用指纹逻辑212和指纹逻辑222,以便微校验器240可以检测结构213与223以及结构215与225之间的不匹配,而不是对于结构213和223使用一个微校验器,对于结构215和225使用另一个微校验器。
指纹逻辑212和指纹逻辑222还可以用于降低内核间带宽。例如,指纹逻辑212可以用于组合来自结构213和215的值,从而使指纹逻辑212的输出中的比特的数量小于这两个值中的比特的总数量。尽管在一些实施例中,希望指纹逻辑212对于每一输入组合输出唯一的值,但是在其他实施例中,希望在与减少连接到微校验器240的每一输入的比特数量的交换中接受来自微校验器240的小于100%的准确度。微校验器240的小于100%的准确度是可以接受的,这是因为微校验器240未能检测到可纠正的时钟同步故障将被解释为不可纠正的时钟同步故障,而不是被解释为可以导致系统破坏的正确时钟同步操作。
图3示出本发明在用于降低包括图1的处理器100的时钟同步双模冗余系统中的不可纠正错误率的方法300中的实施例,其中结构111和121是不能改变架构状态的结构,例如预测结构。
在方框310中,内核110和120以时钟同步的方式进行操作。在方框311中,结构111产生第一值,而结构121产生第二值。第一值可以与第二值匹配,也可以与第二值不匹配。在方框320中,微校验器140将来自结构111和121的值相比较。在方框330中,存储在方框320中的比较结果。
在方框331中,内核110基于结构111所产生的值执行第一指令,而内核120基于结构121所产生的值执行第二指令。第一和第二指令可以是相同的指令,也可以是不同的指令。通过指示条件分支预测、跳转预测、返回地址预测、存储器相关性预测、或者任何其他不能改变架构状态的预测或结果,第一和第二值可以用作用于确定执行什么指令的基础。
方法300从方框331直接前进到方框340,或在内核110和120执行了任何数量的附加指令之后前进到方框340。
在方框340,全局校验器130将来自内核110和120的输出相比较。如果输出相匹配,则在方框310中内核110和120的时钟同步操作继续进行,不管存储在方框330中的结果如何,都不受任何错误纠正、恢复或通知技术(notification technique)的影响。然而,如果在方框340中全局校验器140检测到时钟同步故障,则方法300前进到方框350。
如果存储在方框330中的结果指示来自结构111的值与来自结构121的值相匹配,则方法300从方框350前进到方框360。在方框360中,例如通过报告故障码并中断系统,故障逻辑150指示检测到不可纠正的错误。
如果存储在方框330中的结果指示在来自结构111和121的值之间不匹配,则方法300从方框350前进到方框370。在方框370中,故障逻辑150导致内核110和120的重新同步。可以通过改变内核110的架构状态以与内核120的架构状态相匹配,或反之亦然,来实现该重新同步。然后,方法300返回到方框310。
图4示出本发明在用于降低包括图1的处理器100的时钟同步双模冗余系统中的不可纠正错误率的方法400中的实施例,其中结构111和121是其内容在系统中的其他处被复制或可以被重新产生的结构,例如高速缓存。
在方框410中,内核110和120以时钟同步的方式进行操作。在方框411中,导致对结构111中的未修改的高速缓存线进行加载的指令由内核110执行,并且导致对结构121中的未修改的高速缓存线进行加载的指令产生第二值。方法400从方框411直接前进到方框420,或在内核110和120执行了任何数量的附加指令之后前进到方框420。
在方框420中,微校验器140将来自结构111的值(例如,在方框411中被加载的高速缓存线)与来自结构121的值(例如,在方框411中被加载的高速缓存线)相比较。在方框430中,存储方框420中的比较结果。
方法400从方框430直接前进到方框440,或在内核110和120执行了任何数量的附加指令之后前进到方框440。
在方框440中,全局校验器130将来自内核110和120的输出相比较。如果输出相匹配,则在方框410中内核110和120的时钟同步操作继续进行,不管存储在方框430中的结果如何,都不受任何错误纠正、恢复或通知技术的影响。然而,如果在方框440中全局校验器140检测到时钟同步故障,则方法400前进到方框450。
如果存储在方框430中的结果指示来自结构111的值与来自结构121的值相匹配,则方法400从方框450前进到框460。在方框460中,例如通过报告故障码且中断系统,故障逻辑150指示检测到不可纠正的错误。
如果存储在方框430中的结果指示在来自结果111和121的值之间不匹配,则方法400从方框450前进到方框470。在方框470到473中,故障逻辑150导致内核110和120的重新同步。
在方框470中,例如通过重新加载在方框411中加载的高速缓存线,在系统中的其他处发现,或者不然重新产生来自结构111和121的值。所重新产生的一个值(例如,如果从该值在系统中被复制的地方获得其单个副本)或多个值(例如,如果从该值在系统中被复制的地方获得每一结构该值的副本)可以被加载到一个寄存器或多个寄存器中,或者其它的一个或多个位置,其提供用来与来自结构111和121的值进行比较。或者,可以将来自结构111和121的值移至寄存器、或其它提供用来与所重新产生的一个或多个值进行比较的位置,例如通过重新执行在方框411中执行的指令可以获得所述重新产生的一个或多个值。
在方框471中,将所重新产生的一个或多个值与来自结构111和121的值相比较。如果所重新产生的值与来自结构111的值相匹配,则在方框472中,例如通过改变内核120的架构状态以与内核110的架构状态相匹配,使内核120与内核110同步。如果所重新产生的值与来自结构121的值相匹配,则在方框473中,例如通过改变内核110的架构状态以与内核120的架构状态相匹配,使内核110与内核120相匹配。方法400从方框472和473返回到方框410。
图5示出本发明在用于降低包括图2的处理器200的时钟同步双模冗余系统中的不可纠正错误率的方法500中的实施例。
在方框510中,内核210和220以时钟同步的方式进行操作。在方框511中,结构213产生值,并且结构223产生值。来自结构213的值可以与来自结构223的值相匹配,也可以与来自结构223的值不匹配。在方框512中,结构215产生值,并且结构225产生值。来自结构215的值可以与来自结构225的值相匹配,也可以与来自结构225的值不匹配。
在方框513中,结构211基于来自结构213和215的值产生指纹值,并且结构221基于来自结构223和225的值产生指纹值。可以根据任何公知的用于组合值的技术(例如,使用循环冗余校验器产生校验和)来产生指纹值。
在方框520中,微校验器240将来自结构211和221的指纹值相比较。在方框530中,存储方框520中的比较结果。
在方框540中,全局校验器230将来自内核210和220的输出相比较。如果输出相匹配,在方框510中内核210和220的时钟同步操作继续进行,不管存储在方框530中的结果如何,都不受任何错误纠正、恢复、或通知技术的影响。然而,如果在方框540中全局校验器240检测到时钟同步故障,则方法500前进到方框550。
如果存储在方框530中的结果指示来自结构211的指纹值与来自结构221的指纹值相匹配,则方法500从方框550前进到方框560。在方框560中,例如通过报告故障码且中断系统,故障逻辑250指示检测到不可纠正的错误。
如果存储在方框530中的结果指示在来自结构211和221的值之间不匹配,则方法500从方框550前进到方框570。在方框570中,故障逻辑250导致内核210和220的重新同步。可以通过改变内核210的架构状态以与内核220的架构状态相匹配,或反之亦然,来实现该重新同步。然后,方法500返回到方框510。
在本发明的范围内,可以以不同的顺序执行图3、4和5所示的方法,可以省略所示的步骤,加入额外的步骤,或者将记录、组合、省略或额外的步骤组合。例如,如果微校验器的输出保持为静态直到分别执行方框350、450或550(检查微校验器的比较结果)为止,则可以省略方框330、430或530(存储微校验器的比较结果)。
其中可以省略方框330(存储微校验器的比较结果)的方法的其他实例是其中不需要保留微校验器输出的本发明的实施例。在一个这样的实施例中,方法可以从方框320的微校验器比较前进到基于微校验器比较的方框350的判定(或者,可以将方框320和350合并)。在该实施例中,如果微校验器检测到不匹配(在320或350中),则处理器现有的分支误预测恢复机制可以用于除掉推测状态,由此在方框370中将内核同步到非推测状态。如果微校验器没有检测到不匹配,则该实施例的方法可以前进到方框331,以基于预测执行指令,然后前进到方框340,以便全局校验器为时钟同步故障进行检测,然后,如果检测到时钟同步故障,则前进到方框360,以指示不可恢复的错误。
图6示出本发明在时钟同步双模冗余系统600中的实施例。系统600包括多内核处理器610和系统存储器620。处理器610可以是如以上对于图1和2所述的任何处理器。系统存储器620可以是任何类型的存储器,例如基于半导体的静态或动态随机存取存储器、基于半导体的闪存或只读存储器、或者磁盘或光盘存储器。可以以任何布置,利用任何组合总线或者直接或点对点连接,并且通过任何其他部件使处理器610和系统存储器620彼此耦合。系统600也可以包括任何总线(例如外围总线)或部件(例如输入/输出设备),在图6中未示出。
在系统600中,系统存储器620可以用于存储可以加载到诸如上述结构111、121、213、215、223和225的结构的值。因此,系统存储器620可以是根据本发明的方法实施例的复制或重新产生的值的来源,例如,如图4的方框470所示。
可以在从生成到模拟到制造的各个阶段设计处理器100、处理器200或者根据本发明的实施例设计的任何其他部件或部件的一部分。表示设计的数据可以以多种方式表示设计。首先,如在模拟中所使用的那样,可以使用硬件描述语言或另一功能描述语言表示硬件。另外或可选择地,在设计过程的某些阶段可以产生具有逻辑和/或晶体管门电路的电路级模型。此外,在某些阶段,大部分设计达到可以利用表示各个器件的物理布局的数据对它们进行建模的级别。在使用常规的半导体制造技术的情况下,表示器件布局模型的数据可以是指定在用于掩模的不同掩模层上各种特征是存在或还是不存在的数据,所述掩模用于制造集成电路。
在设计的任何表示中,可以将数据存储在任何形式的机器可读介质中。调制的或者以其他方式产生的用以传送这种信息的光波或电波、存储器、或者磁或光存储介质,例如盘片,可以是机器可读介质。这些介质中的任何一种可以“承载”或“指示”设计、或在本发明的实施例中使用的其他信息,例如在错误恢复例程中的指令。当传送指示或承载信息的电载波时,到执行电信号的复制、缓冲、或重发的程度,进行新的复制。因此,通信供应商或网络供应商的行为可以是对体现本发明的技术的对象(例如,载波)进行复制的行为。
因此,公开了用于降低时钟同步双模冗余系统中的不可纠正错误率的装置和方法。尽管对特定实施例进行了说明并且在附图中示出了所述特定实施例,但是应该理解的是,这些实施例仅仅是说明性的而不是限制本发明的宽广范围,并且本发明不限于所示和所述的具体结构和布置,因为对于本领域技术人员而言,在研究本公开文本时可以想到多种其他修改。在诸如发展迅速且不容易预见更大的进步的技术领域中,由于实现技术进步而得到帮助,使得可以在不脱离本公开的原则或所附权利要求的范围的情况下,轻易地修改所公开的实施例的布置和细节。
Claims (19)
1、一种使内核重新同步的装置,包括:
包括第一结构的第一内核;
包括第二结构的第二内核;
微校验器,用于检测来自所述第一结构的第一值是否与来自所述第二结构的第二值相匹配;
全局校验器,用于检测所述第一内核与所述第二内核之间的时钟同步故障;以及
故障逻辑,用于如果所述全局校验器检测到所述时钟同步故障且所述微校验器检测到所述第一值与所述第二值之间的不匹配,则使所述第一内核和所述第二内核重新同步。
2、根据权利要求1所述的装置,其中所述微校验器包括用于将所述第一值与所述第二值相比较的比较器。
3、根据权利要求1所述的装置,其中所述全局校验器包括用于将所述第一内核的第一输出与所述第二内核的第二输出相比较的比较器。
4、根据权利要求1所述的装置,其中所述故障逻辑还用于如果所述全局校验器检测到所述时钟同步故障且所述微校验器检测到所述第一值与所述第二值相匹配,则指示检测到不可纠正的错误。
5、根据权利要求1所述的装置,其中:
所述第一内核还包括第三结构和第四结构;
所述第二内核还包括第五结构和第六结构;
所述第一结构包括第一指纹逻辑,以基于来自所述第三结构的第三值和来自所述第四结构的第四值产生所述第一值;并且
所述第二结构包括第二指纹逻辑,以基于来自所述第五结构的第五值和来自所述第六结构的第六值产生所述第二值。
6、根据权利要求1所述的装置,其中:
所述第一内核的架构状态与所述第一值无关;并且
所述第二内核的架构状态与所述第二值无关。
7、根据权利要求6所述的装置,其中:
所述第一结构是第一预测结构;并且
所述第二结构是第二预测结构。
8、根据权利要求1所述的装置,其中所述故障逻辑还用于如果所述全局校验器检测到所述时钟同步故障且所述微校验器检测到所述不匹配,则使所述第一值和所述第二值被重新产生。
9、根据权利要求8所述的装置,其中:
所述第一结构是第一高速缓存;
所述第一值是第一高速缓存项;
所述第二结构是第二高速缓存;以及
所述第二值是第二高速缓存项。
10、根据权利要求9所述的装置,其中所述故障逻辑还用于如果所述全局校验器检测到所述时钟同步故障且所述微校验器检测到所述不匹配,则使所述第一高速缓存项和所述第二高速缓存项被重新加载。
11、一种使内核重新同步的方法,包括:
校验来自第一内核中的第一结构的第一值是否与来自第二内核中的第二结构的第二值相匹配;
检测所述第一内核与所述第二内核之间的时钟同步故障;以及
如果检测到所述第一值与所述第二值之间的不匹配并且检测到所述第一内核与所述第二内核之间的时钟同步故障,则使所述第一内核和所述第二内核重新同步。
12、根据权利要求11所述的方法,还包括如果所述第一值与所述第二值相匹配,则指示检测到不可纠正的错误。
13、根据权利要求12所述的方法,还包括:
基于来自所述第一内核中的第三结构的第三值和来自所述第一内核中的第四结构的第四值产生所述第一值;以及
基于来自所述第二内核中的第五结构的第五值和来自所述第二内核中的第六结构的第六值产生所述第二值。
14、根据权利要求13所述的方法,其中:
产生所述第一值包括基于所述第三值和所述第四值产生校验和;并且
产生所述第二值包括基于所述第五值和所述第六值产生校验和。
15、根据权利要求11所述的方法,还包括:
预测第一指令是否将由所述第一内核基于所述第一值来执行;以及
预测第二指令是否将由所述第二内核基于所述第二值来执行。
16、根据权利要求11所述的方法,还包括如果检测到所述不匹配,则重新产生所述第一值和所述第二值。
17、根据权利要求16所述的方法,还包括:
将所述第一值与所重新产生的第一值相比较;
将所述第二值与所重新产生的第二值相比较;
如果所述第二值与所重新产生的第二值相匹配,则使所述第一内核与所述第二内核同步;以及
如果所述第一值与所重新产生的第一值相匹配,则使所述第二内核与所述第一内核同步。
18、根据权利要求16所述的方法,其中所述第一结构是第一高速缓存,所述第一值是第一高速缓存项,所述第二结构是第二高速缓存,并且所述第二值是第二高速缓存项,其中重新产生所述第一值和所述第二值包括重新加载所述第一高速缓存项和所述第二高速缓存项。
19、一种使内核重新同步的系统,包括:
动态随机存取存储器;
包括第一结构的第一内核;
包括第二结构的第二内核;
微校验器,用于检测来自所述第一结构的第一值是否与来自所述第二结构的第二值相匹配;
全局校验器,用于检测所述第一内核与所述第二内核之间的时钟同步故障;以及
故障逻辑,用于如果所述全局校验器检测到所述时钟同步故障且所述微校验器检测到所述第一值和所述第二值之间的不匹配,则使所述第一内核与所述第二内核重新同步。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/173,835 | 2005-06-30 | ||
US11/173,835 US7747932B2 (en) | 2005-06-30 | 2005-06-30 | Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101213522A CN101213522A (zh) | 2008-07-02 |
CN100578462C true CN100578462C (zh) | 2010-01-06 |
Family
ID=37605123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680021365A Expired - Fee Related CN100578462C (zh) | 2005-06-30 | 2006-06-29 | 降低时钟同步双模冗余系统中错误率的装置、方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7747932B2 (zh) |
JP (1) | JP4795433B2 (zh) |
CN (1) | CN100578462C (zh) |
DE (1) | DE112006001652T5 (zh) |
RU (1) | RU2385484C2 (zh) |
WO (1) | WO2007005818A2 (zh) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008518313A (ja) * | 2004-10-25 | 2008-05-29 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 可変のクロックレートを伴うデータ処理システム |
US7581152B2 (en) * | 2004-12-22 | 2009-08-25 | Intel Corporation | Fault free store data path for software implementation of redundant multithreading environments |
US7743285B1 (en) * | 2007-04-17 | 2010-06-22 | Hewlett-Packard Development Company, L.P. | Chip multiprocessor with configurable fault isolation |
US8817597B2 (en) * | 2007-11-05 | 2014-08-26 | Honeywell International Inc. | Efficient triple modular redundancy on a braided ring |
US8117512B2 (en) * | 2008-02-06 | 2012-02-14 | Westinghouse Electric Company Llc | Failure detection and mitigation in logic circuits |
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 |
US8171328B2 (en) * | 2008-12-31 | 2012-05-01 | Intel Corporation | State history storage for synchronizing redundant processors |
US8745440B1 (en) * | 2010-09-21 | 2014-06-03 | F5 Networks, Inc. | Computer-implemented system and method for providing software fault tolerance |
GB2494098B (en) * | 2011-04-11 | 2014-03-26 | Bluecava Inc | Thick client and thin client integration |
EP2533154B1 (en) | 2011-06-09 | 2015-08-12 | Westinghouse Electric Company LLC | Failure detection and mitigation in logic circuits |
US9500705B2 (en) * | 2013-08-28 | 2016-11-22 | Wisconsin Alumni Research Foundation | Integrated circuit providing fault prediction |
CN104731666B (zh) * | 2013-12-23 | 2017-12-08 | 深圳市国微电子有限公司 | 一种抗单粒子翻转的自纠错集成电路及其纠错方法 |
US10761925B2 (en) * | 2015-03-24 | 2020-09-01 | Nxp Usa, Inc. | Multi-channel network-on-a-chip |
EP3085596B1 (en) * | 2015-04-20 | 2017-11-29 | Autoliv Development AB | A vehicle safety electronic control system |
FR3037158B1 (fr) | 2015-06-05 | 2018-06-01 | Thales | Surveillance de trajectoire |
EP3118694A1 (de) * | 2015-07-13 | 2017-01-18 | Siemens Aktiengesellschaft | Verfahren zum betreiben eines redundanten automatisierungssystems und redundantes automatisierungssystem |
KR101651370B1 (ko) * | 2015-08-26 | 2016-08-26 | 한국항공우주연구원 | 추력기의 구동 제어방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터 판독 가능 기록 매체 |
DE102015218898A1 (de) * | 2015-09-30 | 2017-03-30 | Robert Bosch Gmbh | Verfahren zur redundanten Verarbeitung von Daten |
CN105630732B (zh) * | 2015-12-17 | 2018-09-14 | 西北工业大学 | 一种双模冗余微处理器的热切换方法 |
US10089194B2 (en) * | 2016-06-08 | 2018-10-02 | Qualcomm Incorporated | System and method for false pass detection in lockstep dual core or triple modular redundancy (TMR) systems |
KR101923778B1 (ko) * | 2016-11-22 | 2018-11-29 | 연세대학교 산학협력단 | 듀얼 모듈러 리던던시 및 오류 예측을 이용한 고성능 컴퓨팅 장치 및 그 방법 |
US10740167B2 (en) * | 2016-12-07 | 2020-08-11 | Electronics And Telecommunications Research Institute | Multi-core processor and cache management method thereof |
KR102376396B1 (ko) * | 2016-12-07 | 2022-03-21 | 한국전자통신연구원 | 멀티 코어 프로세서 및 그것의 캐시 관리 방법 |
KR102377729B1 (ko) * | 2016-12-08 | 2022-03-24 | 한국전자통신연구원 | 멀티 코어 프로세서 및 그것의 동작 방법 |
US10429919B2 (en) | 2017-06-28 | 2019-10-01 | Intel Corporation | System, apparatus and method for loose lock-step redundancy power management |
US10303566B2 (en) * | 2017-07-10 | 2019-05-28 | Arm Limited | Apparatus and method for checking output data during redundant execution of instructions |
CN112424753B (zh) * | 2018-07-18 | 2024-08-23 | 三垦电气株式会社 | 多核系统 |
US10831628B2 (en) | 2018-12-12 | 2020-11-10 | Intel Corporation | Hardware lockstep checking within a fault detection interval in a system on chip |
US11221901B2 (en) | 2019-11-26 | 2022-01-11 | Siemens Industry Software Inc. | Monitoring processors operating in lockstep |
CN111104243B (zh) * | 2019-12-26 | 2021-05-28 | 江南大学 | 一种低延迟的双模lockstep容软错误处理器系统 |
EP3869338A1 (en) | 2020-02-18 | 2021-08-25 | Veoneer Sweden AB | A vehicle safety electronic control system |
US11797673B2 (en) | 2020-08-27 | 2023-10-24 | Ventana Micro Systems Inc. | Processor that mitigates side channel attacks by expeditiously initiating flushing of instructions dependent upon a load instruction that causes a need for an architectural exception |
US11733972B2 (en) | 2020-10-06 | 2023-08-22 | Ventana Micro Systems Inc. | Processor that mitigates side channel attacks by providing random load data as a result of execution of a load operation that does not have permission to access a load address |
US11868469B2 (en) * | 2020-08-27 | 2024-01-09 | Ventana Micro Systems Inc. | Processor that mitigates side channel attacks by preventing all dependent instructions from consuming architectural register result produced by instruction that causes a need for an architectural exception |
US11907369B2 (en) | 2020-08-27 | 2024-02-20 | Ventana Micro Systems Inc. | Processor that mitigates side channel attacks by preventing cache memory state from being affected by a missing load operation by inhibiting or canceling a fill request of the load operation if an older load generates a need for an architectural exception |
US11853424B2 (en) | 2020-10-06 | 2023-12-26 | Ventana Micro Systems Inc. | Processor that mitigates side channel attacks by refraining from allocating an entry in a data TLB for a missing load address when the load address misses both in a data cache memory and in the data TLB and the load address specifies a location without a valid address translation or without permission to read from the location |
US11734426B2 (en) | 2020-10-06 | 2023-08-22 | Ventana Micro Systems Inc. | Processor that mitigates side channel attacks by prevents cache line data implicated by a missing load address from being filled into a data cache memory when the load address specifies a location with no valid address translation or no permission to read from the location |
CA3136322A1 (en) * | 2020-12-02 | 2022-06-02 | The Boeing Company | Debug trace streams for core synchronization |
US11892505B1 (en) | 2022-09-15 | 2024-02-06 | Stmicroelectronics International N.V. | Debug and trace circuit in lockstep architectures, associated method, processing system, and apparatus |
CN118035006B (zh) * | 2024-04-12 | 2024-06-18 | 西北工业大学 | 一种三核处理器独立和锁步运行可动态配置的控制系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3156429B2 (ja) * | 1993-03-17 | 2001-04-16 | 株式会社日立製作所 | 高信頼型計算機用システム制御lsi及びそれを用いたコンピュータシステム |
US5748873A (en) * | 1992-09-17 | 1998-05-05 | Hitachi,Ltd. | Fault recovering system provided in highly reliable computer system having duplicated processors |
US5838894A (en) * | 1992-12-17 | 1998-11-17 | Tandem Computers Incorporated | Logical, fail-functional, dual central processor units formed from three processor units |
US5604754A (en) * | 1995-02-27 | 1997-02-18 | International Business Machines Corporation | Validating the synchronization of lock step operated circuits |
WO1997022929A1 (en) * | 1995-12-18 | 1997-06-26 | Elsag International N.V. | Processor independent error checking arrangement |
JPH10261762A (ja) * | 1997-03-19 | 1998-09-29 | Hitachi Ltd | メモリを内蔵した多重化マイクロコントローラ |
US6115365A (en) * | 1998-07-30 | 2000-09-05 | Motorola, Inc. | Method and apparatus for queuing and transmitting messages |
JP2000298594A (ja) * | 1999-04-13 | 2000-10-24 | Nec Corp | フォールトトレラント制御方法および冗長コンピュータシステム |
US6615366B1 (en) * | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability mode |
US6604177B1 (en) * | 2000-09-29 | 2003-08-05 | Hewlett-Packard Development Company, L.P. | Communication of dissimilar data between lock-stepped processors |
US6772368B2 (en) * | 2000-12-11 | 2004-08-03 | International Business Machines Corporation | Multiprocessor with pair-wise high reliability mode, and method therefore |
US6938183B2 (en) * | 2001-09-21 | 2005-08-30 | The Boeing Company | Fault tolerant processing architecture |
JP2004046599A (ja) * | 2002-07-12 | 2004-02-12 | Nec Corp | フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム |
US7055060B2 (en) * | 2002-12-19 | 2006-05-30 | Intel Corporation | On-die mechanism for high-reliability processor |
-
2005
- 2005-06-30 US US11/173,835 patent/US7747932B2/en not_active Expired - Fee Related
-
2006
- 2006-06-29 WO PCT/US2006/025959 patent/WO2007005818A2/en active Application Filing
- 2006-06-29 JP JP2008519683A patent/JP4795433B2/ja not_active Expired - Fee Related
- 2006-06-29 CN CN200680021365A patent/CN100578462C/zh not_active Expired - Fee Related
- 2006-06-29 RU RU2007147000/09A patent/RU2385484C2/ru not_active IP Right Cessation
- 2006-06-29 DE DE112006001652T patent/DE112006001652T5/de not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US7747932B2 (en) | 2010-06-29 |
RU2007147000A (ru) | 2009-08-10 |
RU2385484C2 (ru) | 2010-03-27 |
JP2009501367A (ja) | 2009-01-15 |
WO2007005818A2 (en) | 2007-01-11 |
CN101213522A (zh) | 2008-07-02 |
WO2007005818A3 (en) | 2007-05-10 |
DE112006001652T5 (de) | 2008-05-08 |
JP4795433B2 (ja) | 2011-10-19 |
US20070022348A1 (en) | 2007-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100578462C (zh) | 降低时钟同步双模冗余系统中错误率的装置、方法和系统 | |
US10579463B2 (en) | Error recovery within integrated circuit | |
US8185786B2 (en) | Error recovery within processing stages of an integrated circuit | |
US7320091B2 (en) | Error recovery within processing stages of an integrated circuit | |
US6708284B2 (en) | Method and apparatus for improving reliability in microprocessors | |
US10657010B2 (en) | Error detection triggering a recovery process that determines whether the error is resolvable | |
US10185635B2 (en) | Targeted recovery process | |
CN117112318A (zh) | 基于risc-v架构的双核容错系统 | |
CN115080315B (zh) | 故障检测及处理方法、装置、处理器及电子设备 | |
Rivers et al. | Reliability challenges and system performance at the architecture level | |
Nezzari et al. | ACEDR: Automatic compiler error detection and recovery for COTS CPU and caches | |
US9542266B2 (en) | Semiconductor integrated circuit and method of processing in semiconductor integrated circuit | |
Sakata et al. | A cost-effective dependable microcontroller architecture with instruction-level rollback for soft error recovery | |
Mach et al. | A New RISC-V CPU for Safety-Critical Systems | |
El Salloum et al. | Recovery mechanisms for dual core architectures | |
Yao et al. | [2009] A stage-level recovery scheme in scalable pipeline modules for high dependability | |
Kudva et al. | Balancing new reliability challenges and system performance at the architecture level | |
Nicolaidis et al. | Transparent BIST for ECC-based memory repair | |
Touloupis et al. | Efficient protection of the pipeline core for safety-critical processor-based systems | |
Yao et al. | A stage-level recovery scheme in scalable pipeline modules for high dependability | |
Soundararajan et al. | Fault Tolerant Memory In Processor-SuperComputer On a Chip | |
Chen et al. | Fault-tolerant verification platform for systems modeled at high level of abstraction | |
Liang | Micro rollback on a VLSI RISC |
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: 20100106 Termination date: 20100629 |