CN102246155A - 多处理器数据处理系统中的错误检测 - Google Patents

多处理器数据处理系统中的错误检测 Download PDF

Info

Publication number
CN102246155A
CN102246155A CN2009801494735A CN200980149473A CN102246155A CN 102246155 A CN102246155 A CN 102246155A CN 2009801494735 A CN2009801494735 A CN 2009801494735A CN 200980149473 A CN200980149473 A CN 200980149473A CN 102246155 A CN102246155 A CN 102246155A
Authority
CN
China
Prior art keywords
processor
cache
mistake
signal
error
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
CN2009801494735A
Other languages
English (en)
Other versions
CN102246155B (zh
Inventor
W·C·莫耶
M·J·罗奇福特
D·M·桑托
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.)
NXP USA Inc
Original Assignee
Freescale Semiconductor Inc
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 Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Publication of CN102246155A publication Critical patent/CN102246155A/zh
Application granted granted Critical
Publication of CN102246155B publication Critical patent/CN102246155B/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling

Abstract

提供了一种系统和方法。系统包括第一和第二处理器(12、14)和交叉信号通知接口(22)。第二处理器(14)以与所述第一处理器(12)锁定同步的方式执行指令。交叉信号通知接口(22)耦合在所述第一和第二处理器之间,用于向所述第二处理器(12)发送信号通知所述第一处理器(12)的非预期改变的状态和所述第一处理器(12)中的非预期改变的状态的位置,以便使得所述第二处理器(14)以与所述第一处理器(12)锁定同步的方式模拟所述非预期改变的状态。方法包括:在第一处理器(12)中执行指令;以与所述第一处理器(12)锁定同步的方式在第二处理器(14)中执行所述指令;检测所述第一处理器(12)中的错误状况;将关于所述错误状况的信息传输至所述第二处理器(14);处理所述第一处理器(12)中的错误状况;以及使得所述第一和第二处理器以锁定同步的方式模拟所述错误状况。

Description

多处理器数据处理系统中的错误检测
技术领域
本发明通常涉及数据处理,以及更具体地涉及多处理器数据处理系统中的错误检测。
现有技术
集成电路数据处理系统的某些应用需要高于平均水平的可靠性。例如,遥控自动驾驶仪、防抱死制动、汽车安全气囊及故障可能导致伤害的其他系统,这些是需要高可靠性操作的系统的例子。
存在多种方法提高可靠性。例如,在存储器中,可以通过增加在基本组件故障时接管工作的冗余组件来改善可靠性。在多处理器系统中,已经通过以“锁定同步”的方式来运行多个处理器从而实现了更好的可靠性。当两个或更多个处理器以锁定同步的方式运行时,每一个处理器同时执行相同的指令流。为了保持锁定同步,每一个处理器、中央处理单元(CPU)或者核心必须被暴露于相同的激励,包括例如异常处理。通常,这不是问题,因为所有核心正在执行相同的指令流。然而,内部错误可能发生在一个核心中,例如高速缓存中的软错误,而这几乎不会在另一个核心(多个)中被复制。在软错误检测之后,核心的行动将会不同,并且可能导致核心失去锁定同步,导致系统故障。
因此,需要一种多处理器系统解决上述问题。
附图说明
通过举例的方式示出了本发明,并且本发明不限于附图,其中相同的参考标号表明相同的部件。为了简单和清楚起见而示出了附图中的部件,其并不一定是按比例描绘的。
图1以框图形式示出了根据一个实施例的多处理器系统。
图2以框图形式示出了根据另一个实施例的多处理器系统。
图3以框图形式示出了图1或者图2的多处理器系统的第一处理器的更多细节。
图4以框图形式示出了图1或者图2的多处理器系统的第二处理器的更多细节。
图5示出了当其中一个处理器检测到内部高速缓存错误并且选择了机器检查操作时的图1或者图2的各种信号的时序图。
图6示出了当其中一个处理器接收到高速缓存错误交叉信号并且选择了机器检查操作时的图1或者图2的各种信号的时序图。
图7示出了当其中一个处理器检测到内部高速缓存错误并且选择自动无效操作时的图1或者图2的各种信号的时序图。
图8示出了当其中一个处理器接收到高速缓存错误交叉信号并且选择了自动无效操作时的图1或者图2的各种信号的时序图。
具体实施方式
总的来说,提供了一种多核心数据处理系统,其中多个处理器、核心或者CPU以同步的方式操作,例如以锁定同步的方式。当其中一个核心检测到由于内部产生的异常(不是基于指令译码或者指令执行)而导致的改变的状态时,所述内部产生的异常例如是高速缓存中的软错误,其他核心被强制进入相同的改变的状态。这通过提供耦合在各核心之间的交叉信号通知接口来实现。交叉信号通知接口从经历改变的状态的核心接收选择的内部状态信息,并且将所选择的内部状态信息提供给其他核心,由此使得其他核心有效地经历或者模仿同样的改变的状态。以对于系统透明的方式提供内部状态信息,在一个实施例中,内部状态信息包括错误的类型和错误的位置,用以从多个不同的错误类型中区分该错误。在一个实施例中,由经历改变的状态的核心产生表明硬件故障的机器检查异常。交叉信号通知接口使得另一个核心(多个)产生相同的机器检查异常,由此使得所有核心运行相同的机器检查异常。在一个实施例中,还可以交换与异常相关联的状态及其他信息。例如,改变的状态可以是由于利用纠错码(ECC)、奇偶或者其他错误检测机制发现的奇偶校验错误、解码错误、逻辑错误和单个和多个位错误而导致的。在另一实施例中,代替响应于检测到错误产生机器检查异常,交叉信号通知接口强制例如“未命中”状况的高速缓存控制操作,并且所有核心启动自动无效该高速缓存位置并且重新加载该高速缓存位置。此外,在多于一个核心同时经历错误的情况下,交叉信号通知接口可以包括错误逻辑,其确定应当由其他核心模拟哪种误差状况或者使得一个或更多个核心复位。
根据此处描述的实施例提供了一种交叉信号通知接口,这提供如下的优点,例如,防止在多核心处理系统中当一个或更多个核心经历并非基于指令译码或者执行(例如软错误)的改变的状态时丢失锁定同步,因此提高了系统的可靠性。此外,与在丢失锁定同步之后确定行动的进程的现有技术的系统相比,一开始便防止丢失锁定同步会更有效地提高系统的可靠性。
如此处使用的,术语″总线″被用于指可以被用于传送一种或更多种类型的信息的多个信号或者导体,所述信息例如是数据、地址、控制或者状态。可能参考单个导体、多个导体、单向导体或者双向导体来说明或描述此处讨论的导体。然而,不同的实施例可以改变导体的实施方式。例如,可以使用单独的单向导体而不是双向导体,反之亦然。此外,多个导体可以被替换为串行地传送多个信号或者以时分复用的形式传送多个信号的单个导体。同样地,承载多个信号的单个导体可以被分离为承载这些信号的子集的各种不同的导体。因此对于传送信号存在多种选择。
此处,当描述使得信号、状态位或者类似的装置分别变为其逻辑真或者逻辑假状态时,使用了术语″断言″或者″置位″和″清零″(或者″反断言″或者″清除″)。如果逻辑真状态是逻辑电平一,则逻辑假状态是逻辑电平零。并且如果逻辑真状态是逻辑电平零,则逻辑假状态是逻辑电平一。
此处描述的每一个信号可以被设计为正或者负逻辑,其中负逻辑可以由信号名称之上的横条或者信号名称之后跟随的字母″B″表示。在负逻辑信号的情况下,信号是低电平有效,其中逻辑真状态对应于逻辑电平零。在正逻辑信号的情况下,信号是高电平有效,其中逻辑真状态对应于逻辑电平一。注意,此处描述的任何信号都可以被设计为负或者正逻辑信号。因此,在可选实施例中,被描述为正逻辑信号的那些信号可以被实现为负逻辑信号,并且被描述为负逻辑信号的那些信号可以被实现为正逻辑信号。
在一方面,提供了一种系统,包括:用于执行指令的第一处理器;用于以与所述第一处理器锁定同步的方式执行所述指令的第二处理器;以及交叉信号通知接口,耦合在所述第一和第二处理器之间,用于向所述第二处理器发送信号通知所述第一处理器的非预期改变的状态和所述第一处理器中的非预期改变的状态的位置,以便使得所述第二处理器以与所述第一处理器锁定同步的方式模拟所述非预期改变的状态。所述非预期改变的状态可以是触发所述第一处理器中的异常的错误状况。所述非预期改变的状态可以是触发高速缓存中的位置的无效的错误状况。所述非预期改变的状态可以是所述第一处理器中的高速缓存标签错误。所述非预期改变的状态可以是与所述第一处理器相关联的高速缓存中的数据错误。作为所述非预期改变的状态的结果,可以在所述第一处理器中启动异常处理,并且以与所述第一处理器锁定同步的方式在所述第二处理器中强制进行异常处理。所述非预期改变的状态还可以导致所述第一处理器中的高速缓存填充操作,并且以与所述第一处理器锁定同步的方式在所述第二处理器中强制高速缓存未中。所述系统可以进一步包括错误逻辑,耦合到所述第一处理器和第二处理器,其中如果所述第一和第二处理器同时经历非预期改变的状态,则所述错误逻辑用于确定应当由另一个处理器模拟哪一个非预期改变的状态。
在另一方面,提供了一种方法,包括:在第一处理器中执行指令;以与所述第一处理器锁定同步的方式在第二处理器中执行所述指令;检测所述第一处理器中的错误状况;将关于所述错误状况的信息传输至所述第二处理器,所述信息包含错误位置指示符或者错误类型指示符中的至少其中之一,用于区分多个类型的错误;处理所述第一处理器中的错误状况;以及使得所述第二处理器以与所述第一处理器锁定同步的方式模拟所述错误状况。处理所述第一处理器中的所述错误状况可以进一步包括启动所述第一处理器中的异常处理。处理所述第一处理器中的所述错误状况可以进一步包括启动所述第一处理器中的高速缓存控制操作。向所述第二处理器传输关于所述错误状况的信息可以进一步包括向所述第二处理器传输所述错误状况的错误类型和位置。所述错误类型可以是高速缓存标签错误或者高速缓存数据错误中的一个。检测所述第一处理器中的错误可以进一步包括同时检测所述第一处理器中的第一错误和所述第二处理器中的第二错误,以及进一步包括确定处理第一错误还是第二错误。
在还一个方面,提供了一种多处理器数据处理系统中的方法,包括:在第一处理器中执行指令;与所述第一处理器同时在第二处理器中执行所述指令;检测所述第一处理器中的错误状况;向所述第二处理器传输关于所述错误状况的错误类型和错误位置;处理所述第一处理器中的所述错误状况;以及使得所述第二处理器与所述第一处理器同时地模拟所述错误状况。处理所述第一处理器中的所述错误状况可以进一步包括启动所述第一处理器中的异常处理。处理所述第一处理器中的所述错误状况可以进一步包括启动所述第一处理器中的高速缓存未中。所述错误类型可以是高速缓存标签错误或者高速缓存数据错误中的一个。检测所述第一处理器中的错误可以进一步包括同时检测所述第一处理器中的第一错误和所述第二处理器中的第二错误,以及可以进一步包括确定处理第一错误还是第二错误。
图1以框图形式示出了根据一个实施例的多处理器系统10的简化图。系统10包括处理器12、处理器14、存储器16、存储器18、系统互连20和错误逻辑22。处理器12包括高速缓存控制逻辑21、高速缓存24。在所示的实施例中,处理器12和14基本上相同。在其他实施例中,处理器12和14可以彼此不同。例如,处理器12可以是通用处理器,而处理器14可以数字信号处理器(DSP)。此外,虽然仅仅示出了两个处理器,然而本领域技术人员将理解,所描述的实施例也可应用到具有多于两个处理器的系统。此外,在其他实施例中,处理器12和14可以包括与所示出的那些逻辑块不同的逻辑块,或者可能存在额外的在图1中未示出的逻辑块。处理器12和14和存储器16和18双向地耦合到系统互连20。注意,可以存在图1中未示出的耦合到系统互连20的其他功能块。在一个实施例中,系统互连20可以被特征化为包括耦合到系统的各个块(例如存储器16和18)的多个导体的总线。在另一实施例中,系统互连20可以是现有的″交叉开关″类型的总线,其允许系统的各块之间的同时通信。在另一实施例中,系统互连20可以是先进的高性能的总线(AHB)。AHB是由ARM Ltd Company公布的AMBA规范版本2中引入的总线协议。在另一实施例中,系统互连20可以是其它类型的系统互连系统。
可以利用任何类型的存储器来实现存储器16和18,例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和闪存。处理器12和14可以访问存储器16和18二者以取回地址、数据和指令。例如,处理器12可以访问存储器16中的位置17,从而在标为″ADDR A″的地址处利用存储器位置的值来更新处理器12或者14的高速缓存中的位置。此外,高速缓存可以用于存储指令、地址或者数据或者指令、地址或者数据的组合。
错误逻辑22双向耦合到处理器12,用于发送和接收标为″PROCESSOR 0 CROSS-SIGNALING″的控制信号。此外,错误逻辑22双向耦合到处理器14,用于发送和接收标为″PROCESSOR 1CROSS-SIGNALING″的控制信号。以下将进一步讨论错误逻辑22。
图2以框图形式示出了根据另一实施例的多处理器系统50。系统50与系统10相同,不同之处在于系统50包括耦合在处理器12和14二者与系统互连20之间的锁定同步逻辑51。在图2的实施例中,锁定同步逻辑51包括总线接口单元(BIU)52,用于将锁定同步逻辑51耦合到系统互连20。锁定同步逻辑51接收CPU 12和14的输出并且包括比较器,用于确定当系统50以锁定同步模式操作时哪一个CPU将耦合到系统互连20。在一个实施例中,锁定同步逻辑51执行处理器12和处理器14的输出的比较,并且确定处理器何时不再以锁定同步操作,这可能是其中一个处理器的故障的指示。随后锁定同步逻辑可以采取适当的行动,例如通过BIU 52将无故障的处理器耦合到系统互连20,或者以可选的方式进行响应,例如发出信号表明异常或者复位状况到其中一个处理器或者全部两个处理器。在现有技术中锁定同步逻辑51的操作为本领域技术人员所熟知,因此不会进一步讨论。
图3以框图形式示出了图1或者图2的多处理器系统的处理器12的更多细节。在一个实施例中,处理器12被表征为中央处理单元(CPU)。在可选实施例中,处理器12可以是任何形式的数据处理器或者控制处理器。处理器12被标记为″PROCESSOR 0″,其包括高速缓存控制逻辑21、高速缓存24、寄存器26、28和29、BIU38、数据路径41、和处理器控制逻辑42。在一个实施例中,高速缓存24是多路高速缓存,其包含标签阵列用于存储单独的数据阵列中的每一个条目的标签值,其存储高速缓存的“线路(line)”中的信息的一个或更多个部分。在操作中,通过在多路高速缓存的每个路中执行高速缓存查找操作以确定其中是否存储有相应的数据值,由此来处理对于信息的处理器请求。通过将查找地址(P0_ADDR)与存储在标签阵列中的标签值进行比较来执行该查找操作,并且如果对于有效的条目得到了匹配,则从高速缓存的数据阵列的该条目提供相应的数据。在高速缓存24中,代表性的条目32被标记为″ADDR A″,并且对应于标签阵列和数据阵列的标签部分和数据部分二者。在现有技术中高速缓存24的操作为本领域技术人员所熟知,并且不会进一步涉及不会被本发明所影响的那些方面。高速缓存控制逻辑21包括错误检测逻辑43。在处理器12中,处理器控制逻辑42被双向耦合到高速缓存控制逻辑21,用于提供和接收标记为″CONTROL″的控制信号以及用于从高速缓存控制逻辑接收多个控制信号(标记为″P0_TA-B″、″P0_TEA_B″、″P0_TREQ_B″、″P0_ERROR_DETECT″和″P0_CACHE_MISS″)。尽管为清晰起见并未示出,处理器控制逻辑42还在整个处理器0内被耦合以提供处理器12内的各种元件的控制,包括在现有技术中已知的用于控制处理器12内部操作的各种方面的未示出的元件。高速缓存控制逻辑21被双向耦合到高速缓存24,用于发送和接收数据、地址和控制信号。高速缓存24被耦合到数据路径41,用于接收包括地址信号″P0-ADDR″的多个信号,用于提供标记为″P0_DATA_IN″的数据信号,以及用于接收标记为″P0_DATA_OUT″的数据信号。数据路径41被双向耦合到BIU 38用于发送和接收标记为″I/O″(输入/输出)的信号。通过BIU 38传送各种数据、地址和控制信号用于访问存储器16和18,所述各种数据、地址和控制信号例如包括信号″H_TRANS″、″H_ADDR″、″H_BURST″、″H_RDATA″和″H_READY″。高速缓存控制逻辑25将交叉信号通知接口信号(标记为″P0_CERRADDR_OUT″、″P0_CACHE_TAGERR_OUT″、″P0_CACHE_DATAERR_OUT″和″P0_CERRWAY_OUT″)提供到错误逻辑22。高速缓存控制逻辑21接收标记为″P0_CERRADDR_IN″、″P0_CACHE_TAGERR_IN″、″P0_CACHE_DATAERR_IN″、″P0_CERRWAY_IN″和″P0_RST_B″的交叉信号通知接口信号。
图4以框图形式示出了图1或者图2的多处理器系统的处理器14的更多细节。标记为″PROCESSOR 1″的处理器14基本上与处理器12相同,并且包括高速缓存控制逻辑25、高速缓存30、寄存器34、36和37、BIU 40、数据路径44和处理器控制逻辑45。高速缓存控制逻辑25包括错误检测逻辑46。在处理器14中,处理器控制逻辑45被双向耦合到高速缓存控制逻辑25,用于提供和接收标记为″CONTROL″的控制信号以及用于从高速缓存控制逻辑接收多个控制信号(标记为″P1_TA-B″、″P1_TEA_B″、″P1_TREQ_B″、″P1_ERROR_DETECT″和″P1_CACHE_MISS″),并且耦合到处理器14的其他内部电路。高速缓存控制逻辑25被双向耦合到高速缓存30,用于发送和接收数据、地址和控制信号。高速缓存30被耦合到数据路径44,用于接收包括地址信号″P1-ADDR″的多个信号,用于提供标记为″P1_DATA_IN″的数据信号,以及用于接收标记为″P1_DATA_OUT″的数据信号。数据路径44被双向耦合到BIU 40用于发送和接收标记为″I/O″的信号。通过BIU 40传送各种数据、地址和控制信号用于访问存储器16和18,所述各种数据、地址和控制信号例如包括信号″H_TRANS″、″H_ADDR″、″H_BURST″、″H_RDATA″和″H_READY″。高速缓存控制逻辑21接收标记为″P1_CERRADDR_IN″、″P1_CACHE_TAGERR_IN″、″P1_CACHE_DATAERR_IN″和″P1_CERRWAY_IN″的交叉信号通知接口信号到错误逻辑22。高速缓存控制逻辑21提供标记为″P1_CERRADDR_OUT″、″P1_CACHE_TAGERR_OUT″、″P1_CACHE_DATAERR_OUT″、″P1_CERRWAY_OUT″和″P1_RST_B″的交叉信号通知接口信号。在不包括错误逻辑22的实施例中,交叉信号通知接口信号被直接耦合在处理器12和14之间,一个处理器的输出信号耦合到另一个处理器的相应的输入信号。图3和图4的处理器示出了可以根据所描述的实施例使用的处理器的一个实例。其他实施例可以使用具有不同构造的不同类型的处理器。例如,处理器12和14中的每一个都可以是数字信号处理器(DSP)。
处理器12和14包括多个寄存器,例如通用寄存器和专用寄存器。CPU 14的寄存器34和处理器12的寄存器26被标记为″MCAR″(机器检查地址寄存器)。处理器14的寄存器36和处理器12的寄存器28被标记为″MCSR″(机器检查状态寄存器)。寄存器29和37包括标记为″MCE″(机器检查使能)的位字段和标记为″INV″(无效)的位字段。MCE位(多个)被设置为使能机器检查异常模式,INV位(多个)被设置为使能自动无效模式。注意,为了简明和清晰起见,不会在一些块(例如寄存器26、28和29)之间绘出连接。此外,本领域技术人员将了解,在系统10中存在未在图1中示出的信号。
机器检查中断是由于硬件故障而导致的中断。当其中一个处理器12和14收到了机器检查中断,寄存器26和34中相应的一个(MCAR)被更新以表明与机器检查相关联的故障地址。相应的其中一个寄存器28和36被用于保存在机器检查中断期间处理器经历的故障的类型。例如,故障可以是TAG错误、数据错误或者地址错误。此外,与能够引发或报告机器检查状况的处理器12和14内的其他逻辑相对应地,各种其他机器检查原因可以被信号传递并记录在寄存器26和34中。当INV位(多个)被置位,在高速缓存中检测到错误时发布无效操作。无效操作将高速缓存的一个或更多个部分的状态标记为无效,而不将任何改变的线路写回到存储器。错误检测可以响应于处理器控制逻辑42(45)对高速缓存的访问。在这种情况下,当通过置位INV位(多个)使能自动无效时,高速缓存未中被信号通知到处理器,并且启动从存储器16或者18的高速缓存再填充,以取代错误的数据并且将正确数据转发到处理器,与高速缓存命中实际上是否发生无关。用这样的方式,可以获得在处理器12(14)内使用的正确数据。
以下讨论描述了高速缓存控制逻辑21和高速缓存控制逻辑25提供的各个交叉信号通知接口信号。在下文的讨论中,由于对应信号具有相同的定义,因此字母″P″已经被″P0″和″P1″代替。
信号P_CACHE_TAGERR_OUT为逻辑高或者一(1)有效,其被用于表明在当前周期期间已经出现了有效的高速缓存标签奇偶校验错误。其仅仅发送信号通知是否由于检测到的错误状况将发送信号通知高速缓存操作或者异常。该信号被复位到逻辑低或者零(0)。
信号P_CACHE_DATAERR_OUT是逻辑1有效并且被用于表明高速缓存数据输出错误。该信号被发布以表明在当前周期期间已经出现了有效的高速缓存数据阵列奇偶校验错误。其仅仅提供是否由于检测到的错误状况将发送信号通知高速缓存操作或者异常。该信号被复位到逻辑零。
信号P_CERRADDR_OUT是32位地址,逻辑一有效,并且是与信号P_CACHE_TAGERR_OUT和P_CACHE_DATAERR_OUT表明的高速缓存错误相对应的物理地址。在所示的实施例中,信号P_CERRADDR_OUT包括32位,但是在其他实施例中可以是不同的位数。在复位操作之后,这些信号是不确定的。
在所示的实施例中,信号P_CERRWAY_OUT是4位信号,并且是逻辑1有效。P_CERRWAY_OUT信号的位数取决于高速缓存中的路的数目。P_CERRWAY_OUT信号被用于表明高速缓存中的哪一个路或者哪些路遇到了高速缓存标签或者数据阵列错误。该信号应当由于信号P_CACHE_TAGERR_OUT  或者信号P_CACHE_DATAERR_OUT的断言而有效(qualify)。该信号被复位到零。
信号P_CACHE_TAGERR_IN是逻辑1有效,并且被用于表明在当前周期期间高速缓存标签奇偶校验错误正在从另一高速缓存进行交叉信号通知。P_CACHE_TAGERR_IN的断言表明,利用P_CERRADDR_IN提供的索引,应当使用P_CERRADDR_IN和P_CERRWAY_IN的值使得高速缓存奇偶校验错误被模拟用于高速缓存的指明的路(多个)。取决于第一级高速缓存控制状态寄存器的设置(对应于寄存器29(37)的控制寄存器位MCE和INV),应该发生机器检查或者无效。如果发送信号通知机器检查,则应当利用P_CERRADDR_IN上的值来更新寄存器MCAR。
信号P_CACHE_DATAERR_IN是逻辑1有效,并且被用于表明在当前周期期间高速缓存数据阵列奇偶校验错误正在从另一高速缓存进行交叉信号通知。P_CACHE_DATAERR_IN的断言表明,利用P_CERRADDR_IN提供的索引,应当使用P_CERRADDR_IN和P_CERRWAY_IN的值使得高速缓存奇偶校验错误被模拟用于高速缓存的指明的路(多个)。取决于第一级高速缓存控制状态寄存器的设置,应该发生高速缓存线路的无效或者机器检查。如果发送信号通知机器检查,则应当利用P_CERRADDR_IN的值来更新寄存器MCAR。
在所示的实施例中,信号P_CERRADDR_IN是32位地址并且是逻辑高有效。信号P_CERRADDR_IN被用于提供与将被模拟的高速缓存错误相对应的物理地址。该信号应当由于信号P_CACHE_TAGERR_IN或者P_CACHE_DATAERR_IN的断言而有效(qualify)。,尽管使得以锁定同步操作的两个(或更多)处理器之间失去同步的未检测到的内部错误可能导致这些值变得不同,然而,P_CERRADDR_IN的值通常将与P_CERRADDR_OUT的内部值相同。失去同步将在未来某个时间处被检测到。
在所示的实施例中,信号P_CERRWAY_IN是逻辑高有效的,并且是4位信号。P_CERRWAY_IN被用于表明高速缓存的相应路中的哪些应当模拟高速缓存错误。P_CERRWAY_IN信号应当由于信号P_CACHE_TAGERR_IN或者P_CACHE_DATAERR_IN的断言而有效。
处理器12和14可以以独立操作的方式和以锁定同步的操作方式操作。当处理器12和14以独立操作的方式操作时,其用作单独的、独立的数据处理器。在图1和图2所示的实施例中,处理器12和14以锁定同步模式操作,以及在一个实施例中,它们二者同时对相同的数据执行相同的指令。因为它们执行相同的指令,因此可以预料到它们的输出是相同的。因此,如果需要来自存储器中的地址的数据,则将会从例如存储器16中的位置17读取并且提供到处理器12和14二者并且在相同的时钟周期上并且在相同的位置被存储在它们相应的高速缓存存储器中。可选实施例可以以两个处理器之间的延迟操作,并且操作可以不发生相同的时钟周期上。
如果在一个处理器中检测到例如软错误的未预料到的改变的状态,则该处理器的输出将变得不同,使得处理器失去锁定同步。这是由于,如果从高速缓存取得的信息在一个处理器而不是在另一个(在相同周期在两个处理器中在相同位置发生软错误将是极其罕见的)中具有检测出的错误,则在没有错误的处理器中进行信息的随后的使用,但是信息的随后的使用将在招致错误的处理器内导致异常处理状况,使得在处理器中执行不同的指令流。所描述的实施例防止处理器在其中一个处理器中检测到的错误触发异常的情况下丢失锁定同步。当检测到错误时,其他处理器(多个)被强制响应于来自检测到错误的处理器的交叉信号通知而模拟或者模仿该错误。在一个实施例中,交叉信号通知导致所有处理器中的机器检查异常。在另一实施例中,交叉信号通知强制″未中″状况,并且所有处理器启动故障的高速缓存位置的自动无效,并且所有处理器重新加载该故障的高速缓存位置,即使仅仅一个处理器实际上具有错误状况,而其他处理器(多个)通常已经以高速缓存命中继续(执行)。在系统10和50中,用户可通过置位寄存器29(37)中的INV位字段的自动无效位和MCE位字段中的机器检查位来选择将采取的校正动作。
图5示出了当处理器12检测到内部高速缓存错误并具有选择的机器检查操作时产生的图1或者图2的各种信号的时序图。
高速缓存错误交叉信号通知接口信号被提供用于在存在高速缓存错误的情况下允许两个或更多个CPU的锁定同步操作,所述高速缓存错误例如是高速缓存奇偶校验或者EDC错误。高速缓存控制逻辑块21和25提供了用于发送信号通知已经发生了一个或更多个错误的装置,而锁定同步操作的其他高速缓存(多个)应该模拟锁定同步中的错误状况。交叉信号通知以对系统透明的方式提供错误的类型以及错误的位置。在有效的高速缓存查找期间,如果处理器12检测到奇偶校验/EDC错误,则通过P0_CACHE_TAGERR_OUT和P0_CACHE_DATAERR_OUT输出向其他处理器表明错误类型,并且用P0_CERRADDR_OUT和P0_CERRWAY_OUT信号表明引起错误的对应地址和高速缓存路(多个)。在系统10和50中,来自处理器12的这些输出信号可以被耦合到处理器14的对应的P1_CACHE_TAGERR_IN、P1_CACHE_DATAERR_IN、P1_CERRADDR_IN和P1_CERRWAY_IN输入。通常,由于极其低的概率,不会预期在相同查找周期期间两个处理器都将引起错误。如果这是一个需要检测的问题,那么可以使用图1和图2的系统的错误逻辑22检测多于一个处理器的错误输出信号的同时断言并且执行适当的错误恢复,例如通过断言P0_RST_B和P1_RST_B的复位操作。
在图5的实例中,在处理器时钟信号″M_CLK″的时钟周期1和2期间,多个地址P0_ADDR的标记为″ADDR A″和″ADDR A+8″的指令地址被提供到处理器12和14二者中的高速缓存。在所示的实施例中,为了简明和清楚起见,没有示出系统时钟信号。可以通过处理器之外的源产生处理器时钟信号M_CLK(未示出),并且随后通过系统互连20或者用其它方式提供到每一个处理器。在另一实施例中,可以在系统内产生系统时钟。在如图5所示的实施例中,各个处理器同时并且对相同的数据执行相同的指令。响应于对于地址″ADDR A″和″ADDR A+8″的访问请求,例如从高速缓存30和高速缓存24提供与″ADDR A″和″ADDR A+8″相对应的数据。在图5中,提供的数据被标记为″DATA A″和″DATA A+8″。各个处理器可以使用纠错码(ECC)或者奇偶校验以检测与访问地址相对应的数据值或者存储的高速缓存标签中的错误。如果在其中一个处理器的高速缓存的标签或者数据中发现错误,例如在处理器12中,则错误检测信号P0_ERROR_DETECT从高速缓存控制逻辑21到处理器控制逻辑42被断言为逻辑高。由于将要采取机器检查状况以及不需要重新加载高速缓存24或者30,因此错误检测信号P0_ERROR_DETECT还使得高速缓存未中信号P0_CACHE_MISS从高速缓存控制逻辑21到处理器控制逻辑42被清零为逻辑低,表明″命中″。在周期2中断言传送确认P0_TA_B和传送错误确认P0_TEA_B二者,以发送信号表明对于ADDR A的访问请求的完成。在所示的实施例中,传送错误确认信号P0_TEA_B导致机器检查异常。不需要取出来自处理器12和14外部的存储器(例如存储器16)的数据用于更新各个处理器的高速缓冲存储器。如在图5中在时钟周期2处可以看到的,响应于P0_ERROR_DETECT信号,P0_CACHE_TAGERR_OUT和P0_CACHE_DATAERR_OUT中的一个信号从经历高速缓存错误的处理器被传输到另一个处理器(多个)。信号P0_CACHE_TAGERR_OUT和P0_CACHE_DATAERR_OUT中的哪一个被传输取决于检测到的错误的类型。信号P0_CERRADDR_OUT和P0_CERRWAY_OUT向另一个处理器(多个)(例如处理器14)提供包含错误(多个)的地址和路(多个)。随后在第三时钟周期开始时产生异常控制、异常检测信号P0_EC_EXCP_DET,在时钟周期3和4期间在两个处理器中开始异常处理。利用与处理器12内检测到的高速缓存错误(多个)相关联的地址和异常类型信息更新寄存器MCAR和MCSR。在一个实施例中,当使能机器检查操作时,检测出的错误不会导致硬件改变高速缓存的状态,而机器检查中断处理器软件的责任才是利用存储在MCAR和MCSR控制寄存器中的关于错误的来源和位置的信息恰当地改正高速缓存内容。因为处理器12和14中的异常处理同时开始,因此不会失去锁定同步操作,并且两个处理器可以开始对于该异常的异常处理。因为与异常处理相关联的状态信息(处理器12通过P0_CERRADDR_OUT信号至P1_CERRADDR_IN信号向处理器14提供的地址信息、将被记录的错误类型(分别通过信号P0_CACHE_TAGERR_OUT  和P0_CACHE_DATAERR_OUT  至P1_CACHE_TAGERR_IN和P1_CACHE_DATAERR_IN用信号通知的)和遇到错误的多路高速缓存内的位置(多个)(P0_CERRWAY_OUT至P0_CERRWAY_IN))已经在没有引起错误的处理器(多个)内被复制,因此可以以锁定同步的方式进行相同的异常处理,并且在完成异常处理之后可以同时恢复正常操作。用这样的方式,当在一个处理器中出现软错误或者其他类型的瞬时错误时不会失去锁定同步操作。
图6示出了当处理器14接收来自处理器12的高速缓存错误指示并且选择了机器检查操作时的图1或者图2的各种信号的时序图。由于处理器12和14正在以锁定同步的方式操作,因此两个处理器在同一时刻并且对相同的数据执行相同的指令,如通过图5和图6的比较可以看到的。在图6中,在时钟信号″M_CLK″的时钟周期1和2期间,多个指令地址P1_ADDR的标记为″ADDR A″和″ADDR A+8″的指令地址被提供到处理器12和14二者中的高速缓存。响应于指令地址″ADDR A″和″ADDR A+8″,例如从高速缓存30和高速缓存24提供与″ADDR A″和″ADDR A+8″相对应的数据。在图6中,数据被标记为″DATA A″和″DATA A+8″。如上所述,当处理器12检测到错误时,错误的类型和错误的位置被传递到多处理器系统中的其他处理器。从错误逻辑22接收错误信号P1_CACHE_TAGERR_IN或者P1_CACHE_DATAERR_IN,并且错误信号P1_CACHE_TAGERR_IN或者P1_CACHE_DATAERR_IN对应于来自处理器12的P0_CACHE_TAGERR_OUT和P0_CACHE_DATAERR_OUT。此外,地址和路信号P1_CERRADDR_IN和P1_CERRWAY_IN分别对应于P0_CERRADDR_OUT和P0_CERRWAY_OUT。如通过清零的P1_ERROR_DETECT信号可以看到的,在处理器14中没有检测到错误。然而,响应于交叉信号通知接口信号P1_CACHE_TAGERR_IN或者P1_CACHE_DATAERR_IN,传送错误确认信号P1_TEA_B被强制断言为逻辑低,以便启动机器检查操作,正如在处理器12中同时正在发生的那样。此外,通过停止断言信号P1_CACHE_MISS,P1_TEA_B信号停止任何高速缓存未中操作,由此停止取操作。随后,在第三时钟周期开始时产生异常控制、异常检测信号P1_EC_EXCP_DET,并且在时钟周期3和4期间在两个处理器中开始异常处理。利用处理器12的对应输出驱动的信号P1_CERRADDR_IN、P1_CERRWAY_IN、P1_CACHE_TAGERR_IN和P1_CACHE_DATAERR_IN提供的地址和异常信息来更新处理器14中的寄存器MCAR和MCSR。因为处理器12和14中的异常处理同时开始,因此不会失去锁定同步操作,并且两个处理器可以开始对于该异常的异常处理。因为与异常处理相关联的状态信息(处理器12通过P0_CERRADDR_OUT信号至P1_CERRADDR_IN信号向处理器14提供的地址信息、将被记录的错误类型(分别通过信号P0_CACHE_TAGERR_OUT和P0_CACHE_DATAERR_OUT至P1_CACHE_TAGERR_IN和P1_CACHE_DATAERR_IN用信号通知的)和遇到错误的多路高速缓存内的位置(多个))已经在没有引起错误的处理器(多个)内被复制,因此可以以锁定同步的方式进行相同的异常处理,并且在完成异常处理之后可以同时恢复正常操作。用这样的方式,当在一个处理器中出现软错误或者其他类型的瞬时错误时不会失去锁定同步操作。
图7示出了当处理器12检测到内部高速缓存错误并且选择了自动无效操作时的图1或者图2的各种信号的时序图。在图7的实例中,在处理器时钟信号″M_CLK″的时钟周期1和2期间,多个指令地址P1_ADDR的标记为″ADDR A″和″ADDR A+8″的地址被提供到处理器12和14二者中的高速缓存。在如图7所示的实施例中,各个处理器同时并且对相同的数据执行相同的指令。响应于对于地址″ADDR A″和″ADDR A+8″的访问请求,例如从高速缓存30和高速缓存24提供与″ADDR A″和″ADDR A+8″相对应的数据。在图7中,数据被标记为″DATA A″和″DATA A+8″。各个处理器可以使用纠错码(ECC)或者奇偶校验以检测与访问地址相对应的数据值或者存储的高速缓存标签中的错误。如果在其中一个处理器的高速缓存的标签或者数据中发现错误,例如在处理器12中,则错误检测信号P0_ERROR_DETECT从高速缓存控制逻辑21到处理器控制逻辑42被断言为逻辑高。错误检测信号P0_ERROR_DETECT还使得高速缓存未中信号P0_CACHE_MISS在时钟周期2处被强制到逻辑高,由此导致对于处理器12外部的存储器的取数据操作。错误检测信号P0_ERROR_DETECT还使得产生交叉信号通知信号P0_CACHE_TAGERR_OUT和P0_CACHE_DATAERR_OUT中的一个,并使得将其传递至处理器14,由此使得处理器14模仿处理器12的高速缓存未中和取数据操作。此外,P0_ERROR_DETECT信号导致停止传送确认P0_TA_B,或者使得传送确认P0_TA_B被清零为逻辑高。作为取数据操作总线业务信号H_TRANS的一部分,地址信号H_ADDR、业务类型信号H_BURST、读取数据信号H_RDATA和业务就绪H_READY被传递至例如存储器16或者存储器18的外部存储器。在信号名前面的字母″H″表明AHB信号。响应于在周期4中接收到所请求的数据,传送确认信号P0_TA_B被断言为逻辑低。在图7的实例中,检测到的错误已经导致处理器中的旧的数据或者标签值的自动无效,以及导致进行从存储器再充填新的数据,以便改正错误。在处理器中已经成为高速缓存命中状况(的内容)被强制进入未中状况,以便简化,用于恢复高速缓存内容的从存储器取回正确数据的处理。
图8示出了当处理器14接收到高速缓存错误交叉信号并且选择了自动无效操作时的图1或者图2的各种信号的时序图。如上所述,处理器12和14正在以锁定同步的方式操作,意味着两个处理器在同一时刻并且对相同的数据执行相同的指令,如通过图7和图8的比较可以看到的。在图8中,在时钟信号″M_CLK″的时钟周期1和2期间,多个指令地址P1_ADDR的标记为″ADDR A″和″ADDR A+8″的地址被提供到处理器12和14二者中的高速缓存。响应于指令地址″ADDR A″和″ADDR A+8″,例如从高速缓存30和高速缓存24提供与″ADDR A″和″ADDR A+8″相对应的数据。在图8中,数据被标记为″DATA A″和″DATA A+8″。如上所述,当处理器12检测到错误时,错误的类型和错误的位置被传递到多处理器系统中的其他处理器。从错误逻辑22接收错误信号P1_CACHE_TAGERR_IN或者P1_CACHE_DATAERR_IN,并且错误信号P1_CACHE_TAGERR_IN或者P1_CACHE_DATAERR_IN对应于来自处理器12的P0_CACHE_TAGERR_OUT和P0_CACHE_DATAERR_OUT。此外,地址和路信号P1_CERRADDR_IN  和P1_CERRWAY_IN  分别对应于P0_CERRADDR_OUT和P0_CERRWAY_OUT。如通过逻辑低P1_ERROR_DETECT信号可以看到的,在处理器14中没有检测到错误。然而,响应于交叉信号通知接口信号P1_CACHE_TAGERR_IN或者P1_CACHE_DATAERR_IN,通过使得信号P1_CACHE_MISS在时钟周期2期间与处理器12中产生的高速缓存未中同步地被断言,在处理器14中强制出现高速缓存未中(参见图7)。交叉信号通知信号P1_CACHE_TAGERR_IN或者P1_CACHE_DATAERR_IN还防止传送确认信号P1_TA_B被断言。由处理器14模仿上述图7中的对于处理器12的取数据操作。因此,作为处理器14的取数据操作的一部分,总线业务信号H_TRANS、地址信号H_ADDR、业务类型信号H_BURST、读取数据信号H_RDATA和业务就绪H_READY被传递至例如存储器16或者存储器18的外部存储器。由于两个处理器12和14同时执行高速缓存未中处理,因此尽管有存在于处理器14中的命中状况,也不会失去锁定同步操作。因为与高速缓存未中处理相关联的状态信息(处理器12通过P0_CERRADDR_OUT信号至P1_CERRADDR_IN信号向处理器14提供的地址信息和遇到错误的多方向的高速缓存内的位置(多个)(P0_CERRWAY_OUT至P1_CERRWAY_IN))已经在没有引起错误的处理器(多个)内被复制,因此可以以锁定同步的方式进行相同的高速缓存处理,并且在完成高速缓存自动无效处理之后可以同时恢复正常操作。用这样的方式,当在一个处理器中出现软错误或者其他类型的瞬时错误时不会失去锁定同步操作。
由于实现本发明的装置在很大程度上由本领域技术人员已知的电子元件和电路构成,因此为了理解和了解本发明的潜在方案并且为了不使得本发明的教导模糊或者分散,不会以任何超过上述被认为是需要的程度来描述电路细节。
如可应用的,可以利用各种不同的信息处理系统来实现上述的某些实施例。例如,尽管图1及其讨论描述了示例性的信息处理体系结构,然而该示例性体系结构仅仅被给出用于提供讨论本发明的各种方面时的有用的参考。当然,对讨论来说,体系结构的描述已经被简化了,其仅仅是可以根据本发明使用的多个不同类型的适当的体系结构中的一个。本领域技术人员将认识到各逻辑块之间的边界仅仅是说明性的,并且可选实施例可以合并各逻辑块或电路元件或者对各种逻辑块或电路元件赋予可选的功能分解。
由此,将要理解此处示出的体系结构仅仅是示例性的,并且实际上可以实现实现相同功能的多种其他的体系结构。简单然而仍然明确的,实现相同功能的任何的组件布置被有效地″关联″,由此使得实现期望的功能。因此,此处合并实现一个特定功能的任何两个组件可以被视为彼此″相关联″,由此使得实现期望的功能,而不考虑体系结构或者中间的组件。同样地,如此关联的任何两个组件还可以被视为彼此″操作地连接″或者″可操作地耦合″以实现期望的功能。
此外例如,在一个实施例中,系统10的示出元素是位于一个集成电路上的电路或者位于同一器件内的电路。可选地,系统10可以包括彼此相互连接的任意数目的独立的集成电路或者独立的器件。例如,存储器16可以位于与处理器12和14相同的集成电路上、或者独立的集成电路上、或者位于与系统10的其他元件分离的其他外围或者从属部件内。此外例如,系统10或者其一部分可以是软件或者物理电路或者能转变为物理电路的逻辑表示的代码表示。同样地,系统10可以以任何适当的类型的硬件描述语言实现。
此外,本领域技术人员将认识到,上述操作的功能之间的界限仅仅是说明性的。多个操作的功能可以合并成一个操作,和/或一个操作的功能可以分配到额外的操作中。此外,可选实施例可以包括一个特定操作的多个实例,并且各种其他实施例中的操作的顺序可以改变。
尽管此处参考特定实施例描述了本发明,但是在不背离如以下权利要求书所阐明的本发明的保护范围的情况下,可以作出各种改型和改变。因此,说明书和附图应当被认为是说明性的而非限制性的,且所有上述改型都被视为落入了本发明的保护范围之内。此处描述的相对于特定实施例的任何益处、优点或者对问题的解决方案不应被解读为所有权利要求的关键的、必须的或者必要的特征或者要素
此处使用的术语″耦合″不意指局限于直接耦合或者机械耦合。
此外,此处使用的术语″一个″或者″一种″被定义为一个(种)或多于一个(种)。此外,即使当相同权利要求包括所述引导性的短语″至少一个″或者″一个或更多个″以及不定冠词例如″一个″或者″一种″时,权利要求书中使用的引导性的短语例如“至少一个”和″一个或更多个″不应该被视为暗示通过不定冠词″一个″或者″一种″引入的另一权利要求要素将包含上述引入的权利要求要素的任何特定权利要求限制为仅仅包含一个上述要素的发明。这也适用于定冠词的使用。
除非另有说明,术语例如″第一″和″第二″被用于任意地区分上述术语描述的要素。由此,这些术语不一定意图指明上述要素的时间的或者其他的优先性。

Claims (19)

1.一种系统,包括:
用于执行指令的第一处理器;
用于以与所述第一处理器锁定同步的方式执行所述指令的第二处理器;以及
交叉信号通知接口,耦合在所述第一和第二处理器之间,用于向所述第二处理器发送信号通知所述第一处理器的非预期改变的状态和所述第一处理器中的非预期改变的状态的位置,以便使得所述第二处理器以与所述第一处理器锁定同步的方式模拟所述非预期改变的状态。
2.如权利要求1所述的系统,其中所述非预期改变的状态是触发所述第一处理器中的异常的错误状况。
3.如权利要求1所述的系统,其中所述非预期改变的状态是触发高速缓存中的位置的无效的错误状况。
4.如权利要求1所述的系统,其中所述非预期改变的状态是所述第一处理器中的高速缓存标签错误。
5.如权利要求1所述的系统,其中所述非预期改变的状态是与所述第一处理器相关联的高速缓存中的数据错误。
6.如权利要求1所述的系统,其中作为所述非预期改变的状态的结果,在所述第一处理器中启动异常处理,并且以与所述第一处理器锁定同步的方式在所述第二处理器中强制进行异常处理。
7.如权利要求1所述的系统,其中所述非预期改变的状态导致所述第一处理器中的高速缓存填充操作,并且以与所述第一处理器锁定同步的方式在所述第二处理器中强制高速缓存未中。
8.如权利要求1所述的系统,进一步包括错误逻辑,耦合到所述第一处理器和第二处理器,其中如果所述第一和第二处理器同时经历非预期改变的状态,则所述错误逻辑用于确定应当由另一个处理器模拟哪一个非预期改变的状态。
9.一种方法,包括:
在第一处理器中执行指令;
以与所述第一处理器锁定同步的方式在第二处理器中执行所述指令;
检测所述第一处理器中的错误状况;
将关于所述错误状况的信息传输至所述第二处理器,所述信息包含错误位置指示符或者错误类型指示符中的至少其中之一,用于区分多个类型的错误;
处理所述第一处理器中的错误状况;以及
使得所述第二处理器以与所述第一处理器锁定同步的方式模拟所述错误状况。
10.如权利要求9所述的方法,其中处理所述第一处理器中的所述错误状况进一步包括启动所述第一处理器中的异常处理。
11.如权利要求9所述的方法,其中处理所述第一处理器中的所述错误状况进一步包括启动所述第一处理器中的高速缓存控制操作。
12.如权利要求9所述的方法,其中向所述第二处理器传输关于所述错误状况的信息进一步包括向所述第二处理器传输所述错误状况的错误类型和位置。
13.如权利要求12的方法,其中所述错误类型是高速缓存标签错误或者高速缓存数据错误中的一个。
14.如权利要求9所述的方法,其中检测所述第一处理器中的错误进一步包括同时检测所述第一处理器中的第一错误和所述第二处理器中的第二错误,以及进一步包括确定处理第一错误还是第二错误。
15.一种多处理器数据处理系统中的方法,包括:
在第一处理器中执行指令;
与所述第一处理器同时在第二处理器中执行所述指令;
检测所述第一处理器中的错误状况;
向所述第二处理器传输关于所述错误状况的错误类型和错误位置;
处理所述第一处理器中的所述错误状况;以及
使得所述第二处理器与所述第一处理器同时地模拟所述错误状况。
16.如权利要求15所述的方法,其中处理所述第一处理器中的所述错误状况进一步包括启动所述第一处理器中的异常处理。
17.如权利要求15所述的方法,其中处理所述第一处理器中的所述错误状况进一步包括启动所述第一处理器中的高速缓存未中。
18.如权利要求15所述的方法,其中所述错误类型是高速缓存标签错误或者高速缓存数据错误中的一个。
19.如权利要求15所述的方法,其中检测所述第一处理器中的错误进一步包括同时检测所述第一处理器中的第一错误和所述第二处理器中的第二错误,以及进一步包括确定处理第一错误还是第二错误。
CN200980149473.5A 2008-12-10 2009-11-25 多处理器数据处理系统中的错误检测 Expired - Fee Related CN102246155B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/331,759 US8090984B2 (en) 2008-12-10 2008-12-10 Error detection and communication of an error location in multi-processor data processing system having processors operating in Lockstep
US12/331,759 2008-12-10
PCT/US2009/065896 WO2010068492A2 (en) 2008-12-10 2009-11-25 Error detection in a multi-processor data processing system

Publications (2)

Publication Number Publication Date
CN102246155A true CN102246155A (zh) 2011-11-16
CN102246155B CN102246155B (zh) 2014-10-15

Family

ID=42232423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980149473.5A Expired - Fee Related CN102246155B (zh) 2008-12-10 2009-11-25 多处理器数据处理系统中的错误检测

Country Status (5)

Country Link
US (1) US8090984B2 (zh)
EP (1) EP2377039B1 (zh)
CN (1) CN102246155B (zh)
TW (1) TWI502376B (zh)
WO (1) WO2010068492A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678013A (zh) * 2013-12-18 2014-03-26 哈尔滨工业大学 多核处理器操作系统级进程的冗余检测系统
CN109643262A (zh) * 2016-08-23 2019-04-16 德克萨斯仪器股份有限公司 具有故障检测的纠错硬件
CN109872150A (zh) * 2017-12-04 2019-06-11 恩智浦美国有限公司 具有时钟同步操作的数据处理系统
CN112930527A (zh) * 2018-10-10 2021-06-08 美光科技公司 一致性存储器存取

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381026B2 (en) * 2009-06-22 2013-02-19 Citrix Systems, Inc. Systems and method for transaction stall detection and propagating the result in a multi-core architecture
US8519739B1 (en) * 2010-05-03 2013-08-27 ISC8 Inc. High-speed processor core comprising direct processor-to-memory connectivity
US8458532B2 (en) * 2010-10-27 2013-06-04 Arm Limited Error handling mechanism for a tag memory within coherency control circuitry
US9086977B2 (en) * 2011-04-19 2015-07-21 Freescale Semiconductor, Inc. Cache memory with dynamic lockstep support
US9110830B2 (en) * 2012-01-18 2015-08-18 Qualcomm Incorporated Determining cache hit/miss of aliased addresses in virtually-tagged cache(s), and related systems and methods
US9244837B2 (en) * 2012-10-11 2016-01-26 Texas Instruments Incorporated Zero cycle clock invalidate operation
CN104699550B (zh) * 2014-12-05 2017-09-12 中国航空工业集团公司第六三一研究所 一种基于lockstep架构的错误恢复方法
US10761925B2 (en) * 2015-03-24 2020-09-01 Nxp Usa, Inc. Multi-channel network-on-a-chip
US9524205B1 (en) 2016-01-04 2016-12-20 International Business Machines Corporation Code fingerprint-based processor malfunction detection
US10002057B2 (en) 2016-06-03 2018-06-19 Nxp Usa, Inc. Method and apparatus for managing mismatches within a multi-threaded lockstep processing system
TWI655548B (zh) * 2017-10-13 2019-04-01 技嘉科技股份有限公司 介面優先排程及解決衝突之控制電路及介面優先排程及解決衝突之操作方法
US10831578B2 (en) 2018-09-28 2020-11-10 Nxp Usa, Inc. Fault detection circuit with progress register and status register
US11687428B2 (en) 2021-01-20 2023-06-27 Stmicroelectronics International N.V. Glitch suppression apparatus and method
RU204275U1 (ru) * 2021-01-26 2021-05-18 Межрегиональное общественное учреждение "Институт инженерной физики" Отказоустойчивый процессор с коррекцией ошибок в байте информации
RU204690U1 (ru) * 2021-01-26 2021-06-07 Межрегиональное общественное учреждение "Институт инженерной физики" Отказоустойчивый процессор с коррекцией ошибок в двух байтах информации

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829723B1 (en) * 1999-07-14 2004-12-07 Lg Information & Communications, Ltd. Duplicating processors and method for controlling anomalous dual state thereof
CN1924811A (zh) * 2005-08-31 2007-03-07 财团法人工业技术研究院 使用于多处理器系统的同步方法与装置
CN101048761A (zh) * 2004-10-25 2007-10-03 罗伯特·博世有限公司 用于在多处理器系统中进行同步的方法和设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3768074A (en) * 1972-05-12 1973-10-23 Burroughs Corp Multiprocessing system having means for permissive coupling of different subsystems
US5136704A (en) * 1989-06-28 1992-08-04 Motorola, Inc. Redundant microprocessor control system using locks and keys
US5574849A (en) * 1992-12-17 1996-11-12 Tandem Computers Incorporated Synchronized data transmission between elements of a processing system
DE4341082A1 (de) * 1993-12-02 1995-06-08 Teves Gmbh Alfred Schaltungsanordnung für sicherheitskritische Regelungssysteme
US5903717A (en) * 1997-04-02 1999-05-11 General Dynamics Information Systems, Inc. Fault tolerant computer system
US5883904A (en) * 1997-04-14 1999-03-16 International Business Machines Corporation Method for recoverability via redundant cache arrays
US5867511A (en) * 1997-04-14 1999-02-02 International Business Machines Corporation Method for high-speed recoverable directory access
US5835504A (en) * 1997-04-17 1998-11-10 International Business Machines Corporation Soft fuses using bist for cache self test
CA2309926A1 (en) * 1997-11-14 1999-05-27 Erik Muench Method for maintaining the synchronized execution in fault resilient/fault tolerant computer systems
US6393582B1 (en) * 1998-12-10 2002-05-21 Compaq Computer Corporation Error self-checking and recovery using lock-step processor pair architecture
US6625749B1 (en) * 1999-12-21 2003-09-23 Intel Corporation Firmware mechanism for correcting soft errors
US6629271B1 (en) * 1999-12-28 2003-09-30 Intel Corporation Technique for synchronizing faults in a processor having a replay system
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
JP2004046599A (ja) * 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US7467326B2 (en) 2003-02-28 2008-12-16 Maxwell Technologies, Inc. Self-correcting computer
US7111196B2 (en) * 2003-05-12 2006-09-19 International Business Machines Corporation System and method for providing processor recovery in a multi-core system
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
US7380169B2 (en) * 2004-09-24 2008-05-27 Intel Corporation Converting merge buffer system-kill errors to process-kill errors
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829723B1 (en) * 1999-07-14 2004-12-07 Lg Information & Communications, Ltd. Duplicating processors and method for controlling anomalous dual state thereof
CN101048761A (zh) * 2004-10-25 2007-10-03 罗伯特·博世有限公司 用于在多处理器系统中进行同步的方法和设备
CN1924811A (zh) * 2005-08-31 2007-03-07 财团法人工业技术研究院 使用于多处理器系统的同步方法与装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678013A (zh) * 2013-12-18 2014-03-26 哈尔滨工业大学 多核处理器操作系统级进程的冗余检测系统
CN109643262A (zh) * 2016-08-23 2019-04-16 德克萨斯仪器股份有限公司 具有故障检测的纠错硬件
CN109643262B (zh) * 2016-08-23 2023-08-08 德克萨斯仪器股份有限公司 具有故障检测的纠错硬件
US11740968B2 (en) 2016-08-23 2023-08-29 Texas Instruments Incorporated Error correction hardware with fault detection
CN109872150A (zh) * 2017-12-04 2019-06-11 恩智浦美国有限公司 具有时钟同步操作的数据处理系统
CN112930527A (zh) * 2018-10-10 2021-06-08 美光科技公司 一致性存储器存取
CN112930527B (zh) * 2018-10-10 2022-10-11 美光科技公司 一致性存储器存取

Also Published As

Publication number Publication date
WO2010068492A2 (en) 2010-06-17
US8090984B2 (en) 2012-01-03
TWI502376B (zh) 2015-10-01
WO2010068492A3 (en) 2010-09-02
EP2377039A2 (en) 2011-10-19
CN102246155B (zh) 2014-10-15
US20100146335A1 (en) 2010-06-10
EP2377039B1 (en) 2014-07-02
TW201027358A (en) 2010-07-16
EP2377039A4 (en) 2012-12-12

Similar Documents

Publication Publication Date Title
CN102246155B (zh) 多处理器数据处理系统中的错误检测
US7668923B2 (en) Master-slave adapter
US6826123B1 (en) Global recovery for time of day synchronization
CN102216904B (zh) 用于数据处理系统中的高速缓存的可编程错误动作
CN100375050C (zh) 高可靠性处理器的片上机制
US5535405A (en) Microsequencer bus controller system
CN102541756A (zh) 高速缓冲存储器系统
US7100096B2 (en) Special encoding of known bad data
US8131951B2 (en) Utilization of a store buffer for error recovery on a store allocation cache miss
US20050091383A1 (en) Efficient zero copy transfer of messages between nodes in a data processing system
US7987322B2 (en) Snoop request management in a data processing system
TWI437436B (zh) 在使用可組態方式多餘性之快取記憶體中誤差偵測
US20050080869A1 (en) Transferring message packets from a first node to a plurality of nodes in broadcast fashion via direct memory to memory transfer
CN101918923A (zh) 用于数据处理系统中的高速缓存事务的方法和装置
US20050080920A1 (en) Interpartition control facility for processing commands that effectuate direct memory to memory information transfer
CN104798059A (zh) 在检查点外部处理写入数据的多个计算机系统
CN102132248B (zh) 高效加载队列窥探
US20050078708A1 (en) Formatting packet headers in a communications adapter
US9106258B2 (en) Early data tag to allow data CRC bypass via a speculative memory data return protocol
US7954012B2 (en) Hierarchical debug information collection
CN111190774A (zh) 一种多核处理器可配置双模冗余结构
CN105511984B (zh) 一种基于主动链接备份数据的具有容错结构的处理器及容错方法
CN114253816A (zh) 确定崩溃日志记录的结构的设备、系统和方法
US20090276580A1 (en) Snoop request management in a data processing system
US20240070018A1 (en) End-to-end transaction integrity through standard interconnect

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141015

Termination date: 20171125

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