CN100422943C - 潜在错误检测系统和方法 - Google Patents
潜在错误检测系统和方法 Download PDFInfo
- Publication number
- CN100422943C CN100422943C CNB2005100874976A CN200510087497A CN100422943C CN 100422943 C CN100422943 C CN 100422943C CN B2005100874976 A CNB2005100874976 A CN B2005100874976A CN 200510087497 A CN200510087497 A CN 200510087497A CN 100422943 C CN100422943 C CN 100422943C
- Authority
- CN
- China
- Prior art keywords
- memory block
- data
- potential
- processor
- error detection
- 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/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/1633—Error detection by comparing the output of redundant processing systems using mutual exchange of the output between the redundant processing components
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Hardware Redundancy (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
在潜在错误检测的实现中,扫描存储区(304)以查找保存为错误数据的潜在处理错误,存储区(304)的每一个对应于冗余处理器系统(300)的不同处理器元件(302)。比较在存储区(304)中保存的数据以检测在第一存储区(304(1))中的潜在处理错误。通过将数据从第二存储区(304(2))拷贝到第一存储区(304(1))来消除潜在处理错误,其中确定在第二存储区(304(2))中保存的数据至少与在第三存储区(304(3))中保存的数据是相同的。
Description
技术领域
本发明涉及潜在错误检测。
背景技术
将多个冗余的处理器系统实现为防止停机、系统运行中断、避免数据破坏的容错系统。多个冗余的处理器系统提供连续应用可用性并维持数据完整性,诸如用于股票交易系统、信用卡和借记卡系统、电子资金划拨系统、旅行预订系统等。在这些系统中,在多个独立处理元件上执行数据处理运算,相互比较结果以检测处理错误。冗余处理器系统可能产生处理错误,将处理错误写到存储器并作为错误数据存储,在发起输入/输出操作(例如,写到盘或到通信线)之前,错误数据一直未被检测。如果独立处理元件测试错误数据并据此转移,然后执行某些其它的比较操作,也可检测错误数据。或者,如果不请求数据和/或如果重写存储错误处理数据的存储单元,可能从不会检测到未检测的错误处理数据。
然而,可能不知不觉地保存了这些在冗余处理器系统中未检测或潜在的错误。例如,在三重冗余处理器系统中,第一处理器可将数据错误写到对应于第一处理器的存储区中的第一存储单元。另外,第二处理器可将数据错误写到对应于第二处理器的存储区中的第二存储单元。如果错误数据未被经由输入/输出操作请求或另外的比较,则未检测为错误数据的两个处理错误被存储在不同的冗余存储单元中。
如果系统的第三处理器失效,随后被移走并替代,将第三处理器和相应的存储区重新集成到冗余处理器系统。将对应于第一或第二处理器的存储区拷贝到对应于第三处理器的替代存储区。例如,如果将第一存储区拷贝到替代存储区,则写到第一存储单元的第一处理器数据错误也被拷贝到替代存储区。
当在冗余存储区的第一存储单元发起输入/输出操作时,将比较在第一存储单元的每个存储区中的数据以确定哪个是正确数据。将比较第一存储区中的错误数据和替代存储区中的拷贝的错误数据并通过投票操作(例如,2/3)确定为正确数据,而第二存储区中的实际正确数据将被确定是错误数据。
发明内容
根据本发明的一个方面,提供一种冗余处理器系统,包括:逻辑处理器的处理器元件,每个处理器元件配置为执行一组指令并产生相同的数据输出;存储区,每个存储区与不同的处理器元件关联并配置为保存处理器元件的数据输出;以及错误检测逻辑,配置为扫描存储区以查找在存储区中保存为从处理器元件输出的错误数据的潜在处理错误。
在本发明的一个实施例中,还将所述错误检测逻辑配置为:检测在第一存储区中的潜在处理错误;以及通过将数据从第二存储区拷贝到第一存储区来消除所述潜在处理错误,其中确定在第二存储区中保存的所述数据至少与在第三存储区中保存的数据相同。
在本发明的一个实施例中,还将所述错误检测逻辑配置为:检测在存储区中的潜在处理错误;以及重新扫描存储区以验证检测的潜在处理错误不是由于存储器存取输入/输出操作引起的。
在本发明的一个实施例中,所述系统还包括逻辑同步单元,其中:还将处理器元件的每一个配置为执行错误检测逻辑的例示,以便为从相应存储区中的存储块读取的数据产生校验和;将逻辑同步单元配置为在所述处理器元件之间交换校验和;以及还将处理器元件的每一个配置为比较所交换的校验和以检测潜在处理错误。
根据本发明的另一方面,提供一种错误检测系统,包括配置为扫描存储区的错误检测逻辑,每一个存储区对应于冗余处理器系统的不同处理器元件,错误检测逻辑配置为扫描在第一存储区中保存为错误数据的潜在处理错误,错误检测逻辑还配置为通过将数据从第二存储区拷贝到第一存储区来消除潜在处理错误、其中在第二存储区中保存的数据被验证为至少与在第三存储区中保存的数据相同。
在本发明的一个实施例中,还将所述错误检测逻辑配置为:扫描所述存储区以查找保存为错误数据的潜在存储错误;根据指示一位潜在存储错误的纠错码消除所述一位潜在存储错误;以及通过将数据从所述第二存储区拷贝到所述第一存储区来消除在所述第一存储区中的多位潜在存储错误。
根据本发明的另一方面,提供一种方法,包括:扫描在存储区中保存为错误数据的潜在处理错误,每个所述存储区对应于冗余处理器系统的不同处理器元件;比较在所述存储区中保存的数据以检测在第一存储区中的潜在处理错误;以及通过将数据从第二存储区拷贝到所述第一存储区来消除所述潜在处理错误,其中确定在所述第二存储区中保存的所述数据至少与在第三存储区中保存的数据相同。
在本发明的一个实施例中,所述方法还包括:当检测到所述潜在处理错误时,暂停所述扫描;以及在暂停所述扫描之后重新扫描所述存储区以验证所述潜在处理错误不是由于存储器存取输入/输出操作引起的。
在本发明的一个实施例中,所述方法还包括:扫描所述存储区以查找在存储区中保存为错误数据的潜在存储错误;根据指示一位潜在存储错误的纠错码消除所述一位潜在存储错误;以及通过将数据从所述第二存储区拷贝到所述第一存储区来消除在所述第一存储区中的多位潜在存储错误。
在本发明的一个实施例中,比较包括:对分查找在所述存储区中保存的数据以减少用于比较的数据;为来自所述存储区的所述减少的数据的每一个产生校验和;以及比较所述校验和以检测在所述第一存储区中的潜在处理错误。
附图说明
各图中相同的编号用于引用相同的特征和组件:
图1说明示范性的冗余处理器系统,其中可实现潜在错误检测的实施例。
图2进一步说明图1所示的示范性的冗余处理器系统的各种组件。
图3说明示范性的冗余处理器系统的各种组件,其中可实现潜在错误检测的实施例。
图4是说明用于潜在错误检测的方法的实施例的流程图。
图5是说明用于潜在错误检测的方法的实施例的流程图。
具体实施方式
下面描述潜在错误检测的实施例。将错误检测逻辑实现为周期地扫描存储区以查找潜在处理错误和/或潜在存储错误。每个存储区对应于冗余处理器系统中逻辑处理器的不同处理器元件。当相关处理器元件执行指令集并且输出的数据不同于执行同一指令集的冗余处理器元件的数据输出时,可将潜在处理错误存储在存储区。通过比较来自两个或两个以上冗余存储区的数据以确定数据错误存在,可检测潜在处理错误。通过比较来自三个或三个以上冗余存储区的数据可确定正确数据,然后通过拷贝正确数据以替代潜在处理错误,可消除数据错误。
可以将潜在存储错误存储在存储区作为在存储区本身中的数据破坏错误。潜在存储错误可以是一位数据错误或多位数据错误并且通过纠错码在存储器中识别。错误检测逻辑根据识别潜在存储错误的纠错码消除一位数据错误。为消除多位数据错误,从其它冗余存储区之一拷贝正确数据以替代在该存储区中检测为多位数据破坏错误的潜在存储错误。
虽然可以用各种冗余处理器系统实现潜在错误检测的实施例,但是参照下面的处理环境描述了潜在错误检测。
图1说明冗余处理器系统100的实例,其中能实现潜在错误检测的实施例。冗余处理器系统100包括具有处理器组104(1-3)的复合处理器102。每个处理器组104包括任何数目的处理器元件,每个处理器元件是执行或处理计算机可执行指令的微处理器。处理器组104(1)包括处理器元件106(1-N),处理器组104(2)包括处理器元件108(1-N),处理器组104(3)包括处理器元件110(1-N)。虽然在潜在错误检测的这个实施例中复合处理器102仅包括三个处理器组104(1-3),但是复合处理器可包括两个、四个处理器组、或处理器组的任何其它组合。
处理器组104(1-3)中的每一个处理器元件一起实现为逻辑处理器112(1-N)。例如,第一逻辑处理器112(1)包括处理器组104(1)中的处理器元件106(1)、处理器组104(2)中的处理器元件108(1)、处理器组104(3)中的处理器元件110(1)。同样,逻辑处理器112(2)包括处理器元件106(2)、108(2)、110(2),而逻辑处理器112(3)包括处理器元件106(3)、108(3)、110(3)。
三个处理器元件联合实现逻辑处理器112并合作执行逻辑处理器112的计算。在逻辑处理器112中分别执行三次输入/输出操作或处理器之间通信的逻辑计算,在逻辑处理器的三个处理器元件中每个一次。另外,逻辑处理器112中的三个处理器元件能相互协调并同步以交换数据、复制输入数据、对输入/输出操作和通信输出表决。
每个处理器组104(1-3)分别具有相关的存储器组件114(1-3)。可将存储器组件114实现为任何一个或多个存储器组件,存储器组件的实例包括随机存取存储器(RAM)、DRAM、SRAM、盘驱动器等。虽然将存储器组件114(1-3)图解说明为独立组件,但是在备选实施例中,每个处理器组104可包括各自的作为集成组件的存储器组件114。
在这个实例中,复合处理器102是具有三重模块冗余度的三重冗余处理器系统,因为每个逻辑处理器112包括三个冗余处理器元件。当冗余处理器系统100保持联机时,有错误的处理器元件可被替代并被重新集成到系统中,而不会损失提供数据完整性的处理能力。
逻辑处理器112的处理器元件在松散的前后紧接实现中是不严格同步的,以便在处理器元件的每一个中以稍微不同的时间执行或处理指令。该实现规定逻辑处理器能比典型的紧密前后紧接配置执行指令快,因为没有将处理器元件和逻辑处理器112限制到同步代码执行。该实现也为逻辑处理器112中处理器元件之间的不确定执行、例如不确定转移预测、高速缓存置换算法等作好准备。各个处理器元件也可执行独立错误恢复而没有失去与其它处理器元件的同步。
图2进一步说明图1所示的冗余处理器系统100的各种组件200。图2示出了处理器组104(1)的处理器元件106(1-N),各个相应逻辑处理器112(1-N)对应一个处理器元件。每个处理器元件106(1-N)与用于数据存储的存储器组件114(1)的相应存储区202(1-N)关联。将与处理器组104(1)关联的存储器组件114(1)在处理器组104(1)的处理器元件106(1-N)之间划分。在备选实施例中,可将每个存储区202(1-N)实现为用于数据存储的独立、分离的存储器。虽然没有示出,但是处理器组104(2)的处理器元件108(1-N)均与存储器组件114(2)的各个划分的存储区关联。同样,处理器组104(3)的处理器元件110(1-N)均与存储器组件114(3)的各个划分的存储区关联。
逻辑处理器112(1-N)的每一个对应于一个或多个相应的逻辑同步单元204(1-N)。逻辑同步单元204执行相关逻辑处理器112的各种约定操作,以便在合作形成逻辑处理器112的处理器元件之间就同步问题达成一致。例如,能将输入/输出操作和/或处理器之间的通信从逻辑处理器112的每个处理器元件传送到相关的逻辑同步单元204以比较和表决输入/输出操作和/或处理器元件产生的处理器之间的通信。
还可通过逻辑同步单元204实现约定操作,以在逻辑处理器112的处理器元件之间交换状态信息和/或数据,以便使处理器元件的操作和响应同步。例如,可实现约定操作以便处理器元件确定地响应新来的异步中断,适应这些处理器元件的不同处理速率,当执行在处理器元件上分布的操作时交换软件状态信息,等等。
图3说明示范性的冗余处理器系统300的各种组件,其中可实现潜在错误检测的实施例。冗余处理器系统300包括图1和2中所示的冗余处理器系统100的各种组件、例如多个逻辑处理器112(1-N)和相关的逻辑同步单元204(1-N)。然而,为了说明,图3中仅示出了一个逻辑处理器112和一个相关的逻辑同步单元204。
逻辑处理器112包括处理器元件302(1-3),每一个元件是执行或处理计算机可执行指令的微处理器。冗余处理器系统300包括均与如图1所示的相应处理器组104(1-3)关联的存储器元件114(1-3)。处理器元件302(1-3)的每一个是相应处理器组中的处理器元件之一,每个处理器元件302与在相应存储器组件114(1-3)中划分的存储区关联。例如,处理器元件302(1)对应于存储器组件114(1)中的存储区304(1),处理器元件302(2)对应于存储器组件114(2)中的存储区304(2),处理器元件302(3)对应于存储器组件114(3)中的存储区304(3)。
存储区304(1-3)构成对应于逻辑处理器112的逻辑存储器306。逻辑处理器112的处理器元件302(1-3)均对应于逻辑存储器306的相应划分的存储区304(1-3)。
存储器组件114(1-3)均包括对应于逻辑处理器112的相应处理器元件302(1-3)的错误检测逻辑308(1-3)和检测的错误日志310(1-3)。在这个例子中,将错误检测逻辑308(1-3)实现为软件应用并存储在存储器组件114(1-3)中。处理器元件302(1-3)的每一个执行错误检测逻辑308(例如,作为软件)的例示以实现潜在错误检测。
本文所用的术语“逻辑”(例如,错误检测逻辑308或者其组件)也可指可被实现为执行与潜在错误检测关联的逻辑操作的硬件、固件、软件或其任何组合。逻辑也可包括用于完成指定任务的任何支持电路,指定任务包括支持的类似操作。例如,逻辑也可包括模拟电路、存储器组件、输入/输出(I/O)电路、接口电路、功率提供/调节电路等。
错误检测逻辑308(1-3)扫描相应存储区304(1-3)以查找保存在逻辑存储器306中的潜在处理错误和/或潜在存储错误。错误检测逻辑308在处理器元件302(1-3)之一失效或出故障并需要替代之前也检测潜在错误。当处理器元件302失效并连同相关的存储区被替代时,将保留的两个存储区304之一拷贝到替代的存储区。在替代失效的处理器元件和相关存储区之前,如果没有检测到在保留的两个存储区304之一中的潜在错误,如果数据不一致,则不能够确定保留的两个存储区304中的哪个数据是正确的。
例如,当相关处理器元件302(1)执行指令集并输出与均执行同一指令集的处理器元件302(2)和302(3)的输出不同的值、数据或状态时,可将潜在处理错误引入到存储区304(1)。未注意的和潜在的处理错误则存储在存储区304(1)。
另外,潜在存储错误可被引入到存储区304作为存储区本身中的数据中断错误。通常将潜在存储错误称为可纠正存储错误和不可纠正存储错误,通过纠错码在存储器中识别。可纠正存储错误可能是一位错误并且是可纠正的,因为根据纠错码可识别并纠正一个错误位。在备选实施例中,可将纠错码实现为既检测某些多位错误又纠正某些多位错误。
同样地标记不可纠正存储错误,因为不能利用特定纠错码纠正多位错误。然而,在潜在错误检测的实施例中,可纠正的和所谓的“不可纠正的”存储错误两者以及检测的潜在处理错误都能被纠正。与潜在存储错误不同,通过纠错码不能检测潜在处理错误,因为处理错误发生在纠错码的计算之前。通过纠错码能检测潜在存储错误,因为错误发生在纠错码的计算之后。
用于每个相应处理器元件302(1-3)的错误检测逻辑308(1-3)周期地扫描存储区304(1-3)以查找潜在处理错误和潜在存储错误。在一个实施例中,可将错误检测逻辑308(1-3)实现为在每日基础上(例如,每24小时一次)扫描相应存储区304(1-3),并可作为后台进程执行,以免过分地加重处理资源的负担。
当错误检测逻辑308通过纠错码检测在相应存储区304(1-3)中识别的一位潜在存储错误(例如,“可纠正”存储错误)时,根据纠错码消除潜在存储错误。例如,当错误检测逻辑308(1)通过纠错码检测在存储区304(1)中识别的多位潜在存储错误(例如,所谓的“不可纠正”存储错误)时,通过将数据从第二存储区304(2)拷贝到第一存储区304(1)来消除潜在存储错误。
同样,例如,当错误检测逻辑308(1)检测存储区304(1)中的潜在处理错误时,错误检测逻辑308可发起在第二存储区304(2)中的数据与在第三存储区304(3)中的数据的比较,以确定数据是相同的,然后将数据拷贝到第一存储区304(1)以消除潜在处理错误。在一个实施例中,逻辑同步单元204比较存储区304(1-3)的冗余数据并通过表决操作(例如,2/3)确定哪个是正确数据以及哪个是错误数据。
在潜在错误检测的实施例中,错误检测逻辑308(1-3)在任一时间对于潜在错误检测只读取每个冗余存储区304(1-3)的一小部分。错误检测逻辑308(1-3)从各个相应存储区304(1-3)中的存储块读数据,例如一个高速缓存行或一千字节数据。在另一个实施例中,错误检测逻辑308(1-3)产生读取自各个相应存储区304(1-3)用于比较的数据的校验和。然后通过逻辑同步单元204交换用于比较的校验和,因为可交换并比较校验和比数据本身快。通过错误检测逻辑308(1-3)可实现任何可应用校验和,例如可基于性能、大小、预防的错误等而选择的修改的Fletcher校验和、循环冗余校验和、和/或任何其它校验和。
若检测潜在错误,为提高性能,当比较来自存储区304(1-3)的冗余数据时,也可将错误检测逻辑308(1-3)实现为对分查找检测的潜在处理错误以缩小范围。例如,错误检测逻辑308能对分查找范围小到16或8字节的检测的潜在处理错误,然后隔离包括潜在处理错误的字。
在另一个实施例中,错误检测逻辑308(1-3)重新扫描检测的潜在处理错误以验证检测的潜在处理错误不是由于异步存储器存取输入/输出操作引起的。例如,如果存储区304(1)中的存储单元在错误检测逻辑308(1)读存储单元的特定时刻受到直接存储器存取,则不可将数据与从其它冗余存储区304(2)和304(3)读取的数据进行比较。即使存储区304(1)中的数据是正确的或无错误的,由于同时发生(及时)的直接存储器存取操作,可将其暂时检测为不正确。如果错误检测逻辑308(1)不在重新扫描该存储单元时检测潜在处理错误,则错误检测逻辑308(1)继续扫描冗余存储区304(1)的另一个存储单元。
错误检测逻辑308(1-3)在检测潜在处理错误之后在不同时间能发起对检测的潜在处理错误的重新扫描。例如,错误检测逻辑308能在检测潜在处理错误之后立即发起重新扫描,或者能暂停扫描过程一个时间间隔(例如,1到5毫秒)然后再发起重新扫描。在备选和/或附加实施例中,错误检测逻辑308(1-3)能在相应的检测的错误日志310(1-3)中记录检测的潜在处理错误,然后在预定的扫描间隔(例如,在下一24小时之内)重新扫描记录的错误。
逻辑同步单元204包括为处理器元件302(1-3)提供交换或存储处理器元件之间可预计不同的数据的存储区的非对称数据存储装置312。非对称数据存储装置312可包括用于逻辑处理器112的每个处理器元件302(1-3)的一组寄存器,每个处理器元件302(1-3)可从它自己的一组寄存器读数据以及把数据写到它自己的一组寄存器,以及从对应于其它处理器元件的寄存器读数据。而且,虽然将非对称数据存储装置312描述为逻辑同步单元204的单个数据存储区,但是可将非对称数据存储装置312实现为独立数据存储区。
可以在计算机可执行指令的常规上下文中描述用于潜在错误检测的方法、例如参照图4和5分别描述的示范性方法400和500。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、过程、模块、功能等。也可将方法实现到分布式计算环境中,其中通过通信网络连接的远程处理设备执行功能。在分布式计算环境中,可将计算机可执行指令设置在包括存储器存储设备的本地和远程计算机存储媒体两者中。
图4说明用于潜在错误检测的方法400的实施例。描述方法的顺序不要理解为限制,可将任何数量的所描述的方法块以任何顺序组合以实现该方法。而且,可在任何适合的硬件、软件、固件或其组合中实现该方法。
在块402,发起存储区的扫描以检测保存为错误数据的潜在处理错误。例如,存储区304(1-3)的每一个对应于冗余处理器系统300(图3)中逻辑处理器112的各个不同的处理器元件302(1-3)。相应的错误检测逻辑308(1-3)发起冗余存储区304(1-3)的扫描以检测潜在处理错误。
在块404,为存储区中的每个数据产生校验和。例如,错误检测逻辑308(1-3)产生读取自各个相应存储区304(1-3)用于比较的数据的校验和。在块406,在逻辑处理器的处理器元件之间交换每个数据的校验和。例如,逻辑处理器112的每个处理器元件302(1-3)与其它处理器元件302的每一个交换来自相应存储区304(1-3)的数据的校验和。
在块408,比较在至少三个存储区中保存的数据以检测在第一存储区中的潜在处理错误。例如,错误检测逻辑308(1-3)发起校验和的比较以检测在存储区304(1-3)之一中的潜在处理错误。而且,当比较存储区304(1-3)中的冗余数据时,错误检测逻辑308(1-3)能对分查找检测的潜在处理错误以缩小范围。在备选实施例中,在处理器元件302(1-3)之间交换数据本身(而不是数据的校验和)并比较数据以检测潜在处理错误。
在块410,作关于在块408比较的每个数据的校验和是否相等(例如,相同或逻辑上相同)的决定。如果确定校验和是相同的(即,块410的“是”),则在如上所述的块404对于来自下一存储区的数据继续存储区的扫描。如果确定校验和是不相同的(即,块410的“否”),则当检测到潜在处理错误时在块412暂停扫描,在块414将潜在处理错误记录为已检测过。例如,错误检测逻辑308(1-3)能在相应的检测的错误日志310(1-3)中记录检测的潜在处理错误。
在块416,当检测到潜在处理错误时重新扫描存储区,以验证潜在处理错误不是由于存储器存取输入/输出操作引起的。例如,错误检测逻辑308(1-3)能在检测到潜在处理错误之后在不同时间发起对检测的潜在处理错误的重新扫描,例如立即、在暂停几毫秒之后或在下一个预定扫描间隔重新扫描记录的错误。
在块418,作关于在块410检测的潜在处理错误是否在块418被验证为潜在处理错误并且该错误不是由于存储器存取输入/输出操作引起的决定。如果将潜在处理错误验证为这样(即,块418的“是”),则在块420通过将数据从第二存储区拷贝到第一存储区来消除潜在处理错误。例如,如果在第一存储区304(1)中检测到潜在处理错误,则将数据从第二存储区304(2)拷贝到第一存储区304(1)。错误检测逻辑308能发起在第二存储区304(2)中的数据与在第三存储区304(3)中的数据的比较,以确定数据是相同的,然后将数据拷贝到第一存储区304(1)以消除潜在处理错误。
在块416如果重新扫描不能验证潜在处理错误(即,块418的“否”),则在如上所述的块404继续存储区的扫描。另外,在块420消除潜在处理错误之后,在如上所述的块404也可继续存储区的扫描。在备选实施例中,在块410、418和/或块420之后,错误检测逻辑308(1-3)能发起相应存储区304(1-3)的扫描以查找潜在存储错误,如参照图5所述。
图5说明用于潜在错误检测的方法500的实施例。描述方法的顺序不是要理解为限制,可将任何数量的所描述的方法块以任何顺序结合以实现该方法。而且,可将该方法在任何适合的硬件、软件、固件或其组合中实现。
在块502,发起存储区的扫描以检测在存储区中保存为数据的潜在存储错误。例如,错误检测逻辑308(1-3)扫描相应存储区304(1-3)以查找纠错码在存储区中识别的一位数据错误和/或多位数据错误。
在块504,作关于是否将错误检测为一位潜在存储错误的决定。如果检测到一位潜在存储错误(即,块504的“是”),则在块506根据指示潜在存储错误的纠错码消除潜在存储错误。例如,错误检测逻辑308根据指示潜在存储错误的纠错码消除一位潜在存储错误。
如果没有检测到一位潜在存储错误(即,块504的“否”),则在块508作关于错误是否被检测为多位潜在存储错误的决定。如果没有检测到多位潜在存储错误(即,块508的“否”),则可在如上所述的块502继续存储区的扫描。如果检测到多位潜在存储错误(即,块508的“是”),则在块510通过将数据从第二存储区拷贝到第一存储区来消除多位潜在存储错误。
虽然用结构特征和/或方法的具体语言描述了潜在错误检测的实施例,但是应理解所附权利要求的主题不一定限于所描述的具体特征或方法。而是将具体特征和方法公开为潜在错误检测的示范实现。
Claims (9)
1. 一种冗余处理器系统(300),包括:
逻辑处理器(112)的处理器元件(302),每个处理器元件配置为执行一组指令并产生相同的数据输出;
存储区(304),每个存储区与不同的处理器元件(302)关联并配置为保存处理器元件(302)的数据输出;以及
错误检测逻辑(308),配置为扫描所述存储区(304)以查找在存储区(304)中保存为从处理器元件(302)输出的错误数据的潜在处理错误;
其中还将所述错误检测逻辑(308)配置为:
检测在存储区(304)中的潜在处理错误;以及
重新扫描所述存储区(304)以验证所述检测的潜在处理错误不是由于存储器存取输入/输出操作引起的。
2. 如权利要求1所述的冗余处理器系统(300),其特征在于,还将所述错误检测逻辑(308)配置为:
检测在第一存储区(304(1))中的潜在处理错误;以及
通过将数据从第二存储区(304(2))拷贝到所述第一存储区(304(1))来消除所述潜在处理错误,其中确定在所述第二存储区(304(2))中保存的所述数据与至少在第三存储区(304(3))中保存的数据相同。
3. 如权利要求1所述的冗余处理器系统(300),其特征在于,还包括逻辑同步单元(204),其中:
还将处理器元件(302)的每一个配置为执行错误检测逻辑(308)的例示,以便为从相应存储区(304)中的存储块读取的数据产生校验和;
将所述逻辑同步单元(204)配置为在所述处理器元件(302)之间交换所述校验和;以及
还将所述处理器元件(302)的每一个配置为比较所交换的校验和以检测所述潜在处理错误。
4. 一种错误检测系统(300),包括:
配置为扫描存储区(304)的错误检测逻辑(308),每一个存储区(304)对应于冗余处理器系统(100)的不同处理器元件(302),
所述错误检测逻辑(308)配置为扫描以查找在第一存储区(304(1))中保存为错误数据的潜在处理错误,
所述错误检测逻辑(308)配置为当检测到潜在处理错误时重新扫描所述存储区(304)以验证所述潜在处理错误不是由存储器存取输入/输出操作引起的,
所述错误检测逻辑(308)还配置为通过将数据从第二存储区(304(2))拷贝到所述第一存储区(304(1))来消除所述潜在处理错误,其中在所述第二存储区(304(2))中保存的所述数据被验证为与至少在第三存储区(304(3))中保存的数据相同。
5. 如权利要求4所述的错误检测系统(300),其特征在于,还将所述错误检测逻辑(308)配置为:
扫描所述存储区(304)以查找保存为错误数据的潜在存储错误;
根据指示一位潜在存储错误的纠错码消除所述一位潜在存储错误;以及
通过将数据从所述第二存储区(304(2))拷贝到所述第一存储区(304(1))来消除在所述第一存储区(304(1))中的多位潜在存储错误。
6. 一种方法(400),包括:
扫描(402)以查找在存储区(304)中保存为错误数据的潜在处理错误,每个所述存储区(304)对应于冗余处理器系统(300)的不同处理器元件(302);
比较(408)在所述存储区(304)中保存的数据以检测在第一存储区(304(1))中的潜在处理错误;
当检测到所述潜在处理错误时,重新扫描(416)所述存储区(304)以验证所述潜在处理错误不是由于存储器存取输入/输出操作引起的;以及
通过将数据从第二存储区(304(2))拷贝到所述第一存储区(304(1))来消除(420)所述潜在处理错误,其中确定在所述第二存储区(304(2))中保存的所述数据与至少在第三存储区(304(3))中保存的数据相同。
7. 如权利要求6所述的方法(400),其特征在于,还包括:
当检测到所述潜在处理错误时,在重新扫描(416)所述存储区(304)之前,暂停(412)所述扫描(402)。
8. 如权利要求6所述的方法(400),其特征在于,还包括:
扫描(502)所述存储区(304)以查找在存储区(304)中保存为错误数据的潜在存储错误;
根据指示一位潜在存储错误的纠错码消除(506)所述一位潜在存储错误;以及
通过将数据从所述第二存储区(304(2))拷贝到所述第一存储区(304(1))来消除(510)在所述第一存储区(304(1))中的多位潜在存储错误。
9. 如权利要求6所述的方法(400),其特征在于,所述比较的步骤包括:
对分查找(402)在所述存储区(304)中保存的数据以减少用于比较的数据;
为来自所述存储区(304)的所述减少的数据的每一个产生(404)校验和;以及
比较(408)所述校验和以检测在所述第一存储区(304(1))中的潜在处理错误。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/894825 | 2004-07-20 | ||
US10/894,825 US7308605B2 (en) | 2004-07-20 | 2004-07-20 | Latent error detection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1755638A CN1755638A (zh) | 2006-04-05 |
CN100422943C true CN100422943C (zh) | 2008-10-01 |
Family
ID=35658662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100874976A Expired - Fee Related CN100422943C (zh) | 2004-07-20 | 2005-07-19 | 潜在错误检测系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7308605B2 (zh) |
CN (1) | CN100422943C (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060020852A1 (en) * | 2004-03-30 | 2006-01-26 | Bernick David L | Method and system of servicing asynchronous interrupts in multiple processors executing a user program |
US20050240806A1 (en) * | 2004-03-30 | 2005-10-27 | Hewlett-Packard Development Company, L.P. | Diagnostic memory dump method in a redundant processor |
US7426656B2 (en) * | 2004-03-30 | 2008-09-16 | Hewlett-Packard Development Company, L.P. | Method and system executing user programs on non-deterministic processors |
US7681104B1 (en) * | 2004-08-09 | 2010-03-16 | Bakbone Software, Inc. | Method for erasure coding data across a plurality of data stores in a network |
US7681105B1 (en) * | 2004-08-09 | 2010-03-16 | Bakbone Software, Inc. | Method for lock-free clustered erasure coding and recovery of data across a plurality of data stores in a network |
KR100652399B1 (ko) * | 2005-02-02 | 2006-12-01 | 삼성전자주식회사 | 하드디스크 드라이브의 디펙트 처리 방법, 이에 적합한하드디스크 드라이브 및 기록 매체 |
DE102005037233A1 (de) * | 2005-08-08 | 2007-02-15 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Datenverarbeitung |
US8032889B2 (en) | 2006-04-05 | 2011-10-04 | Maxwell Technologies, Inc. | Methods and apparatus for managing and controlling power consumption and heat generation in computer systems |
US7797575B2 (en) * | 2007-04-04 | 2010-09-14 | International Business Machines Corporation | Triple voting cell processors for single event upset protection |
US7743285B1 (en) * | 2007-04-17 | 2010-06-22 | Hewlett-Packard Development Company, L.P. | Chip multiprocessor with configurable fault isolation |
TW200846896A (en) * | 2007-05-16 | 2008-12-01 | Icp Electronics Inc | System for backing up and recovering data and method for the same applied to data processing apparatus |
US20100169886A1 (en) * | 2008-12-31 | 2010-07-01 | Seakr Engineering, Incorporated | Distributed memory synchronized processing architecture |
US20100163756A1 (en) * | 2008-12-31 | 2010-07-01 | Custom Test Systems, Llc. | Single event upset (SEU) testing system and method |
JP5344936B2 (ja) * | 2009-01-07 | 2013-11-20 | 株式会社日立製作所 | 制御装置 |
US8117496B2 (en) * | 2009-06-18 | 2012-02-14 | International Business Machines Corporation | Detecting and recovering from silent data errors in application cloning systems |
WO2011101707A1 (en) * | 2010-02-16 | 2011-08-25 | Freescale Semiconductor, Inc. | Data processing method, data processor and apparatus including a data processor |
DE102010002309B4 (de) * | 2010-02-24 | 2013-04-18 | Endress + Hauser Gmbh + Co. Kg | Verfahren zur Überprüfung der Funktionsfähigkeit eines Speicherelements |
US8335951B2 (en) * | 2010-05-06 | 2012-12-18 | Utc Fire & Security Americas Corporation, Inc. | Methods and system for verifying memory device integrity |
US8370689B2 (en) | 2010-05-06 | 2013-02-05 | Utc Fire & Security Americas Corporation, Inc. | Methods and system for verifying memory device integrity |
WO2012058597A1 (en) * | 2010-10-28 | 2012-05-03 | Maxwell Technologies, Inc. | System, method and apparatus for error correction in multi-processor systems |
US9292392B2 (en) | 2011-06-30 | 2016-03-22 | Hewlett Packard Enterprise Development Lp | Memory module that includes a memory module copy engine for copying data from an active memory die to a spare memory die |
JP5699057B2 (ja) * | 2011-08-24 | 2015-04-08 | 株式会社日立製作所 | プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス |
US8862952B1 (en) * | 2012-03-16 | 2014-10-14 | Western Digital Technologies, Inc. | Prioritized memory scanning for data storage systems |
JP5910356B2 (ja) * | 2012-06-29 | 2016-04-27 | 富士通株式会社 | 電子装置、電子装置制御方法及び電子装置制御プログラム |
US9842014B2 (en) | 2012-11-22 | 2017-12-12 | Nxp Usa, Inc. | Data processing device, method of execution error detection and integrated circuit |
US9229825B2 (en) * | 2013-06-28 | 2016-01-05 | International Business Machines Corporation | Quick failover of blade server |
US9823983B2 (en) | 2014-09-25 | 2017-11-21 | Nxp Usa, Inc. | Electronic fault detection unit |
US10185633B2 (en) * | 2015-12-15 | 2019-01-22 | Intel Corporation | Processor state integrity protection using hash verification |
US10013192B2 (en) * | 2016-08-17 | 2018-07-03 | Nxp Usa, Inc. | Soft error detection in a memory system |
GB2575668B (en) | 2018-07-19 | 2021-09-22 | Advanced Risc Mach Ltd | Memory scanning operation in response to common mode fault signal |
US20210294707A1 (en) * | 2020-03-20 | 2021-09-23 | Nvidia Corporation | Techniques for memory error isolation |
CN112579337A (zh) * | 2021-01-05 | 2021-03-30 | 株洲中车时代电气股份有限公司 | 一种表决错误信息的定位方法、系统及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5295258A (en) * | 1989-12-22 | 1994-03-15 | Tandem Computers Incorporated | Fault-tolerant computer system with online recovery and reintegration of redundant components |
CN1259212A (zh) * | 1997-04-02 | 2000-07-05 | 通用动力信息系统公司 | 容错计算机系统 |
CN1434941A (zh) * | 1999-12-21 | 2003-08-06 | 英特尔公司 | 纠正软错误的固件机制 |
CN1495611A (zh) * | 2002-07-12 | 2004-05-12 | �ձ�������ʽ���� | 容错计算机系统及其再同步方法和再同步程序 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4503535A (en) * | 1982-06-30 | 1985-03-05 | Intel Corporation | Apparatus for recovery from failures in a multiprocessing system |
EP0306211A3 (en) * | 1987-09-04 | 1990-09-26 | Digital Equipment Corporation | Synchronized twin computer system |
JPH0797328B2 (ja) * | 1988-10-25 | 1995-10-18 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | フオールト・トレラント同期システム |
US4982402A (en) * | 1989-02-03 | 1991-01-01 | Digital Equipment Corporation | Method and apparatus for detecting and correcting errors in a pipelined computer system |
SE465056B (sv) * | 1989-05-12 | 1991-07-15 | Ellemtel Utvecklings Ab | Foerfarande foer att undvika latenta fel i ett logiknaet foer majoritetsval av binaera signaler |
US5613127A (en) * | 1992-08-17 | 1997-03-18 | Honeywell Inc. | Separately clocked processor synchronization improvement |
US5689689A (en) * | 1992-12-17 | 1997-11-18 | Tandem Computers Incorporated | Clock circuits for synchronized processor systems having clock generator circuit with a voltage control oscillator producing a clock signal synchronous with a master clock signal |
US5572620A (en) * | 1993-07-29 | 1996-11-05 | Honeywell Inc. | Fault-tolerant voter system for output data from a plurality of non-synchronized redundant processors |
US5812757A (en) * | 1993-10-08 | 1998-09-22 | Mitsubishi Denki Kabushiki Kaisha | Processing board, a computer, and a fault recovery method for the computer |
JPH0863365A (ja) * | 1994-08-23 | 1996-03-08 | Fujitsu Ltd | データ処理装置 |
US6397365B1 (en) * | 1999-05-18 | 2002-05-28 | Hewlett-Packard Company | Memory error correction using redundant sliced memory and standard ECC mechanisms |
JP2001275140A (ja) * | 2000-03-28 | 2001-10-05 | Matsushita Electric Ind Co Ltd | 運用/待機構成の通信制御装置及び運用/待機系切替方法 |
US7017073B2 (en) * | 2001-02-28 | 2006-03-21 | International Business Machines Corporation | Method and apparatus for fault-tolerance via dual thread crosschecking |
US6862693B2 (en) * | 2001-04-13 | 2005-03-01 | Sun Microsystems, Inc. | Providing fault-tolerance by comparing addresses and data from redundant processors running in lock-step |
US20040078650A1 (en) * | 2002-06-28 | 2004-04-22 | Safford Kevin David | Method and apparatus for testing errors in microprocessors |
US20050240806A1 (en) * | 2004-03-30 | 2005-10-27 | Hewlett-Packard Development Company, L.P. | Diagnostic memory dump method in a redundant processor |
-
2004
- 2004-07-20 US US10/894,825 patent/US7308605B2/en active Active
-
2005
- 2005-07-19 CN CNB2005100874976A patent/CN100422943C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5295258A (en) * | 1989-12-22 | 1994-03-15 | Tandem Computers Incorporated | Fault-tolerant computer system with online recovery and reintegration of redundant components |
CN1259212A (zh) * | 1997-04-02 | 2000-07-05 | 通用动力信息系统公司 | 容错计算机系统 |
CN1434941A (zh) * | 1999-12-21 | 2003-08-06 | 英特尔公司 | 纠正软错误的固件机制 |
CN1495611A (zh) * | 2002-07-12 | 2004-05-12 | �ձ�������ʽ���� | 容错计算机系统及其再同步方法和再同步程序 |
Non-Patent Citations (4)
Title |
---|
Fault-Containment in Cache Memories for TMR RedundantProcessor Systems. Chung-Ho Chen,Arun K.Somani.IEEE TRANSACTIONS ON COMPUTERS,Vol.48 No.4. 1999 |
Fault-Containment in Cache Memories for TMR RedundantProcessor Systems. Chung-Ho Chen,Arun K.Somani.IEEE TRANSACTIONS ON COMPUTERS,Vol.48 No.4. 1999 * |
Fault-Containment in Cache Memories for TMRRedundantProcessor Systems. Chung-Ho Chen,Arun K.Somani.IEEE TRANSACTIONS ON COMPUTERS,Vol.48 No.4. 1999 |
Fault-Containment in Cache Memories for TMRRedundantProcessor Systems. Chung-Ho Chen,Arun K.Somani.IEEE TRANSACTIONS ON COMPUTERS,Vol.48 No.4. 1999 * |
Also Published As
Publication number | Publication date |
---|---|
CN1755638A (zh) | 2006-04-05 |
US20060020850A1 (en) | 2006-01-26 |
US7308605B2 (en) | 2007-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100422943C (zh) | 潜在错误检测系统和方法 | |
US6480970B1 (en) | Method of verifying data consistency between local and remote mirrored data storage systems | |
US4914657A (en) | Operations controller for a fault tolerant multiple node processing system | |
US5379417A (en) | System and method for ensuring write data integrity in a redundant array data storage system | |
US8117496B2 (en) | Detecting and recovering from silent data errors in application cloning systems | |
US6029254A (en) | Method for synchronizing reserved areas in a redundant storage array | |
CN1776675B (zh) | 用于存储并使用多存储位置中的元数据的方法和系统 | |
US7606971B2 (en) | Storage control apparatus and external storage apparatus | |
US6604177B1 (en) | Communication of dissimilar data between lock-stepped processors | |
EP0261031B1 (en) | Method and apparatus for error correction in a parallel processor data processing system | |
CN100419695C (zh) | 将进程删除错误引向应用程序 | |
US20090187806A1 (en) | System and method for error detection in a redundant memory system | |
US7020805B2 (en) | Efficient mechanisms for detecting phantom write errors | |
US20080301528A1 (en) | Method and apparatus for controlling memory | |
US5632013A (en) | Memory and system for recovery/restoration of data using a memory controller | |
US7076686B2 (en) | Hot swapping memory method and system | |
WO2024119762A1 (zh) | 一种raid卡的构建方法、系统及相关装置 | |
US6859890B2 (en) | Method for reducing data/parity inconsistencies due to a storage controller failure | |
WO2013080299A1 (ja) | データ管理装置、データコピー方法、およびプログラム | |
US7133883B2 (en) | General techniques for diagnosing data corruptions | |
US20100169572A1 (en) | Data storage method, apparatus and system for interrupted write recovery | |
RU2327236C2 (ru) | Оперативное запоминающее устройство с высокой степенью отказоустойчивости | |
Van Driel et al. | The error-resistant interactively consistent architecture (ERICA) | |
JPH05143472A (ja) | データ転送方法 | |
CN113157484A (zh) | 通过错误分析应对错误的存储器系统和数据处理系统 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170207 Address after: American Texas Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Patentee before: HP Development Co., Ltd. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081001 Termination date: 20190719 |
|
CF01 | Termination of patent right due to non-payment of annual fee |