CN1682194A - 用于事件同步特别是针对容错系统处理器的方法 - Google Patents

用于事件同步特别是针对容错系统处理器的方法 Download PDF

Info

Publication number
CN1682194A
CN1682194A CNA038215462A CN03821546A CN1682194A CN 1682194 A CN1682194 A CN 1682194A CN A038215462 A CNA038215462 A CN A038215462A CN 03821546 A CN03821546 A CN 03821546A CN 1682194 A CN1682194 A CN 1682194A
Authority
CN
China
Prior art keywords
cpu
operational mode
processor module
instruction
performance element
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.)
Pending
Application number
CNA038215462A
Other languages
English (en)
Inventor
P·佩勒斯卡
D·施纳贝尔
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of CN1682194A publication Critical patent/CN1682194A/zh
Pending legal-status Critical Current

Links

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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal 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)

Abstract

对于冗余系统设置多个相同构造的处理器板,它们以锁步(lockstep)模式运行。为实现一个锁步系统的基本前提是所有在板中包含的部件亦即CPU、芯片组、主存储器等的确定性响应。在此确定性响应意味着,在无错误的情况下当给这些部件在相同时刻受到相同激励时这些部件在相同时刻提供相同结果。确定性响应此外还以应用脉冲同步接口为前提。异步接口在许多情况下在系统中引起时间上的某种不精确性,由此不能正确保持系统的脉冲同步的整体响应。然而为了能够执行锁步操作,本发明提供一种外部事件同步的方法,所述外部事件引向一个组件(CPU),并对其施加影响,因此外部事件要通过缓冲器单元缓存,其中在缓冲器单元中存储的外部事件在该组件的一种独特的运行模式中由该组件的一个执行单元(EU)调用,和其中该组件相应于满足一个可预先给定的或者预先给定的反映所执行的指令数的条件而进入这种运行模式。

Description

用于事件同步特别是针对容错系统处理器的方法
在电信系统中,在数据中心和其他高可用性系统中在许多场合使用直到上百个所谓的处理器板,以便提供所需要的计算能力。一个这样的处理器板典型地由一个处理器或者CPU(Central Processing Unit)、一个芯片组、主存储器和外设组件组成。
每年典型的处理器板出现硬件故障的概率在一位百分点的范围。由于在一个系统中包括很大数目的处理器板,所以在一年的时间段内任一硬件部件故障产生的概率非常高,其中一个这样的单一故障,如果不采取适当的预防措施的话,能够引起全系统故障。
特别对于电信系统,越来越多地也对于数据中心,提出高系统可用性的要求。这例如以百分比表示,或者给出每年最大许可故障时间。典型的要求是例如可用性>99.999%或者年不可用性最高为数分钟。因为在硬件故障的场合处理器板的更换和服务的重新建立需要时间,这一时间在数十分钟到数小时的范围,所以对于硬件故障必须在系统级采取相应预防措施,以便能够满足对于系统可用性的要求。
对于保持对系统可用性的这种高要求的已知的解决方案是提供冗余系统部件。已知方法可以分成两大类:基于软件的方法和基于硬件的方法。
在基于软件的方法中通常使用中间件。然而基于软件的解决方法显得不够灵活,因为在一个这样的系统中仅能使用为这一特殊的冗余模式开发的(应用)软件。这极大地限制了可用(应用)软件的范围。此外,在实际中针对软件冗余原理的应用软件开发开销极大,其中该开发另外涉及复杂的测试方法。
基于硬件的方法的基本原理以在硬件级上包容冗余为基础,使得它对软件是透明的。由硬件自身管理的冗余的重要优点是,应用软件不受冗余原理影响,因此在大多数场合可以使用任意软件。
在实际中对于其冗余对于软件透明的硬件容错系统经常见到的原理是所谓的锁步(Lockstep)原理。锁步指的是,相同结构的硬件,例如两个板,被同类脉冲同步驱动。通过硬件机构保证,该冗余硬件在一个规定的时刻经受相同的输入激励,由此必定产生相同的结果。比较这些冗余部件的结果,在有偏差的场合确认发生错误,并采取适当的措施(对操作人员发出警告,部分或者全部安全关断,系统重新起动)。
为实现锁步系统的一个基本前提是所有板中包含的部件亦即CPU、芯片组、主存储器等的确定性响应。在此确定性响应意味着,这些部件在无错误的情况下当其在相同时刻受到相同激励时在相同时刻提供相同结果。确定性响应此外还以应用脉冲同步接口为前提。异步接口在许多情况下在系统中引起时间上的某种不精确性,由此不能正确保持系统的脉冲同步的整体响应。
然而对于芯片组和CPU,异步接口在提高性能时具有技术上的优点,由此按照锁步方法的脉冲同步驱动方式是不可能的。此外,现代CPU越来越多地使用使得脉冲同步驱动方式不可能的机构。这些例如是内部的、从外面不可见的改正措施,例如在存取高速缓存(cache)时对一个内部的、可改正错误的修正,它们能够导致指令执行的微小延迟,或者指令的推测执行。另一个例子是将来越来越多地实现CPU内部无脉冲的执行单元,这些单元对于速度和功耗具有极大的优点,然而禁止CPU脉冲同步地运行或者说确定性地运行。
因此本发明的一个任务是给出一种方法,通过该方法保持锁步方法的优点,并且该方法适应技术的发展。
这一任务通过按照权利要求1的特征的外部事件同步的方法、按照权利要求5的特征的处理器组件、和按照权利要求6的特征的系统来解决。
优选的实施形式是从属权利要求的主题。
根据本发明,提供一种外部事件同步的方法,所述外部事件引向一个CPU,并对其施加影响,因此将外部事件缓存,其中该存储的外部事件在该组件的一种独特的运行模式中由该组件的一个执行单元EU调用,和其中该组件相应于满足一个通过指令可给的或者固定给定的条件而进入这种运行模式。
根据本发明的一个有利的改进,如果通过该组件的一个比较单元K获知一个计数器单元CIC与一个寄存器单元MIR一致,则变换到独特的运行模式,这样来实现可给定的条件,其中寄存器单元MIR的内容可通过指令预先规定,而计数器单元CIC包含从上次切换到独特的运行模式起由执行单元执行的指令数。
本方法特别有利地可以与冗余系统一起应用,所述冗余系统具有至少两个组件CPU,并在其中为这些CPU设置一个相同的指令序列,由这些组件在独特的运行模式中调用相同的外部事件。
根据本发明的一个明确表示,在冗余系统中在独特的运行模式中通过一种控制保持一个较快的组件CPU,直到一个较慢的组件达到该独特运行模式的结束。
此外,本发明设置一个处理器组件CPU,它至少具有下述单元:
-至少一个执行单元EU,
-至少一个计数器单元CIC,用于计数从上次变换到独特运行模式起由执行单元执行的指令数,
-至少一个寄存器单元MIR,其内容可通过指令预先给定或者固定预先给定,
-至少一个比较单元K,用于相应于计数器单元CIC与寄存器单元MIR一致时将执行单元EU切换到独特运行模式,其中,在独特运行模式中缓存的、引向处理器组件的、对该处理器组件(CPU)有影响的外部事件由处理器组件CPU调用。
对于缓存的外部事件的调用在此可以有利地通过软件、固件、微代码或者硬件实现。
此外,根据本发明设置一个由至少两个处理器组件CPU组成的系统,其中各处理器组件CPU至少具有下述单元:
-至少一个执行单元EU,
-至少一个计数器单元CIC,用于计数从上次变换到独特运行模式起由执行单元执行的指令数,
-至少一个寄存器单元MIR,其内容可通过指令预先给定或者固定预先给定,
-至少一个比较单元K,用于相应于计数器单元CIC与寄存器单元MIR一致时将执行单元EU切换到独特运行模式,其中,在独特运行模式中缓存的、引向处理器组件的、对该处理器组件有影响的外部事件由处理器组件调用。
对于缓存的外部事件的调用在此可以有利地通过软件、固件、微代码或者硬件实现。
另外该系统有利地包含在至少两个执行一个相同指令序列的处理器组件CPU之间的至少一个连接,其中将所述连接设置用于传输独特运行模式的同步信息。
本发明的一个重要的优点在于,有可能在一个硬件容错平台上使用任意的新的或者已有的软件,其中在这一平台上可以使用支持本发明的CPU,无需脉冲同步的、确定性的CPU工作方式,和其中使用异步高速接口或者链路是可能的。
其他的优点是:
-彼此冗余的板和CPU不必锁相耦合地运行。
-CPU不必相同,它们只需在处理相同数目机器指令后停止,并且切换运行模式。
-这些CPU可以用不同的脉冲频率驱动。
-这些CPU有关推测执行指令可以有不同表现,因为只分析执行完的指令。
-相同CPU例如由于在干扰数据的α粒子出现后的修正引起的不同CPU内部执行时间仅导致在稍微不同的时刻达到同步模式。
在保证脉冲同步的确定性工作方式时的上述问题由于未来CPU的时间不精确导致在时间上不可精确修正的指令执行。因为CPU在典型的应用中必须响应外部事件,例如响应一个由外围设备产生的中断或者响应由一个设备向主存储器中写入的数据,因此必须保证在指令执行中的相同位置CPU被告知这些事件,因为否则这些事件的评价可能导致冗余CPU的不同的程序运行。
本发明考虑,把外部的、对于程序运行相关的事件,例如中断或者由外部设备产生的数据在指令执行的相同位置提供给冗余的CPU,并由此能够模拟锁步运行方式。
下面参考一个附图详细说明本发明的一个实施例。
图1示意描述根据本发明的处理器组件CPU。在此只画出与本发明有关的组成部分。所述CPU包括一个高速缓存C;一个或者多个执行单元EU;至少一个比较器K;至少一个用于计数由执行单元执行的指令数目的计数器CIC;和至少一个寄存器单元MIR,其内容可以通过指令预先给定或者固定给定。此外示意画出地址总线、数据总线、控制总线、连接或者链路和一个系统脉冲时钟。
影响程序运行的外部事件并不直接导向CPU,而是首先由一个适当构造的硬件缓冲。该硬件在此可以是CPU外部的一个组件的组成部分,或者是该CPU自身的组成部分。根据本发明所述CPU包括计数器CIC(CompletedInstruction Counter),它为CPU完全执行的指令或者机器指令计数。此外所述CPU包括一个寄存器MIR(Maximum Instruction Register),其由一个支持模拟锁步运行的软件(ELSO)写。
此外,CPU包含一个比较器K,该比较器将被执行的指令数亦即计数器CIC与寄存器MIR相比较,并在相等时例如产生一个中断请求,使比较器在由寄存器MIR预先给定的指令数后中断指令的执行,并把CPU切换到一个另外的运行模式。在这一运行模式下例如执行适当的微代码,或者向一个中断服务子程序跳转,或者通过硬件信号表示达到这一同步点。然后在这一运行模式下,向CPU如此提交外部事件,以致在离开这一方式后所有CPU可以同时分析这一事件,这样以后将执行相同的指令。
例如在达到由寄存器MIR预先给定的机器指令数后CPU向中断服务子例程跳转,在该子例程中询问通过所述硬件与CPU分开的中断信号的状态,使得在些许晚些时刻提出这个询问的一个冗余CPU得到同样的答复。
在离开独特的运行模式之前,计数器CIC复位。接着跳回通过达到由寄存器MIR预先给定的计数器值CIC而发生中断的程序点。然后CPU再次执行由寄存器MIR预先给定的机器指令数并在达到寄存器值MIR时通过计数器CIC切换模式并由此能够接收外部事件。
例如一个支持模拟锁步运行的软件ELSO能够把寄存器MIR置成10,000的值。一个用5GHz脉冲频率驱动的和平均每周期(一个周期的长度:1/200ps)执行一条机器指令的CPU在指令执行2μs后被中断,并且使得用外部事件同步成为可能。

Claims (7)

1.一种外部事件同步的方法,所述外部事件被引向一个组件(CPU),并对其施加影响,因此将外部事件缓存,其中,所述的存储的外部事件在该组件的一种独特的运行模式中由该组件的至少一个执行单元(EU)调用,和其中,该组件相应于满足一个通过指令预先给定的或者固定地预先给定的条件而进入这种运行模式。
2.根据权利要求1的方法,其特征在于,如果通过该组件的一个比较单元(K)获知一个计数器单元(CIC)与一个寄存器单元(MIR)一致,则执行到独特的运行模式的切换,其中该寄存器单元(MIR)的内容可通过指令预先给定,而该计数器单元(CIC)包含从上次切换到独特运行模式起由执行单元执行的指令数。
3.根据权利要求1或2之一的方法,其特征在于,在一个具有至少两个组件(CPU)的冗余系统中,为这些组件(CPU)设置一个相同的指令序列,由这些组件在独特的运行模式中调用相同的外部事件。
4.根据权利要求3的方法,其特征在于,在独特运行模式中通过一种控制来保持一个较快的组件(CPU),直到一个较慢的组件达到该独特运行模式的结束。
5.处理器组件(CPU),该处理器组件具有至少下列单元:
-至少一个执行单元(EU),
-至少一个计数器单元(CIC),用于为从上次变换到独特运行模式起由执行单元执行的指令计数,
-至少一个寄存器单元(MIR),使寄存器单元的内容可通过指令预先给定或者固定预先给定,
-至少一个比较单元(K),用于相应于计数器单元(CIC)与寄存器单元(MIR)一致时将执行单元(EU)切换到独特运行模式,其中,在独特运行模式中缓存的、被引向处理器组件(CPU)的、对该处理器组件(CPU)有影响的外部事件由处理器组件(CPU)调用。
6.由至少两个处理器组件(CPU)组成的系统,所述的处理器组件(CPU)各具有至少下列单元:
-至少一个执行单元(EU),
-至少一个计数器单元(CIC),用于为从上次变换到独特运行模式起由执行单元执行的指令计数,
-至少一个寄存器单元(MIR),该寄存器单元的内容可通过指令预先给定或者固定地预先给定,
-至少一个比较单元(K),用于相应于计数器单元(CIC)与寄存器单元(MIR)一致时将执行单元(EU)切换到一种独特运行模式,其中,在独特运行模式中缓存的、被引向处理器组件的、对该处理器组件有影响的外部事件由该处理器组件调用。
7.根据权利要求6的系统,所述的系统附加地包含在至少两个执行一个相同指令序列的处理器组件(CPU)之间的一个连接,其中,设置所述连接用于传输独特运行模式的同步信息。
CNA038215462A 2002-09-12 2003-08-06 用于事件同步特别是针对容错系统处理器的方法 Pending CN1682194A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02020602.5 2002-09-12
EP02020602A EP1398699A1 (de) 2002-09-12 2002-09-12 Verfahren zur Ereignissynchronisation, insbesondere für Prozessoren fehlertoleranter Systeme

Publications (1)

Publication Number Publication Date
CN1682194A true CN1682194A (zh) 2005-10-12

Family

ID=31725420

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA038215462A Pending CN1682194A (zh) 2002-09-12 2003-08-06 用于事件同步特别是针对容错系统处理器的方法

Country Status (6)

Country Link
US (1) US20060195849A1 (zh)
EP (2) EP1398699A1 (zh)
CN (1) CN1682194A (zh)
AU (1) AU2003260375A1 (zh)
CA (1) CA2498656A1 (zh)
WO (1) WO2004034172A2 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0602641D0 (en) 2006-02-09 2006-03-22 Eads Defence And Security Syst High speed data processing system
JP4709268B2 (ja) * 2008-11-28 2011-06-22 日立オートモティブシステムズ株式会社 車両制御用マルチコアシステムまたは内燃機関の制御装置
CN102147755B (zh) * 2011-04-14 2012-07-04 中国人民解放军国防科学技术大学 一种基于内存缓存技术的多核系统容错方法
US20130019083A1 (en) * 2011-07-11 2013-01-17 International Business Machines Corporation Redundant Transactional Memory
US8739186B2 (en) * 2011-10-26 2014-05-27 Autodesk, Inc. Application level speculative processing
US9009734B2 (en) 2012-03-06 2015-04-14 Autodesk, Inc. Application level speculative processing
US11645185B2 (en) * 2020-09-25 2023-05-09 Intel Corporation Detection of faults in performance of micro instructions

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3810119A (en) * 1971-05-04 1974-05-07 Us Navy Processor synchronization scheme
DE3235762A1 (de) * 1982-09-28 1984-03-29 Fried. Krupp Gmbh, 4300 Essen Verfahren und vorrichtung zur synchronisation von datenverarbeitungsanlagen
CA2003338A1 (en) * 1987-11-09 1990-06-09 Richard W. Cutts, Jr. Synchronization of fault-tolerant computer system having multiple processors
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
AU625293B2 (en) * 1988-12-09 1992-07-09 Tandem Computers Incorporated Synchronization of fault-tolerant computer system having multiple processors
US5226152A (en) * 1990-12-07 1993-07-06 Motorola, Inc. Functional lockstep arrangement for redundant processors
US5233615A (en) * 1991-06-06 1993-08-03 Honeywell Inc. Interrupt driven, separately clocked, fault tolerant processor synchronization
WO1993009494A1 (en) * 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
EP0986007A3 (en) * 1993-12-01 2001-11-07 Marathon Technologies Corporation Method of isolating I/O requests
DE19625195A1 (de) * 1996-06-24 1998-01-02 Siemens Ag Synchronisationsverfahren
US5896523A (en) * 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution
DE69804489T2 (de) * 1997-11-14 2002-11-14 Marathon Technologies Corp., Boxboro Verfahren zur erhaltung von synchronisierter ausführung bei fehler-betriebssicheren/ fehlertoleranten rechnersystemen
US6374364B1 (en) * 1998-01-20 2002-04-16 Honeywell International, Inc. Fault tolerant computing system using instruction counting
US6772368B2 (en) * 2000-12-11 2004-08-03 International Business Machines Corporation Multiprocessor with pair-wise high reliability mode, and method therefore
US6928583B2 (en) * 2001-04-11 2005-08-09 Stratus Technologies Bermuda Ltd. Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep
US6802024B2 (en) * 2001-12-13 2004-10-05 Intel Corporation Deterministic preemption points in operating system execution

Also Published As

Publication number Publication date
AU2003260375A8 (en) 2004-05-04
WO2004034172A3 (de) 2004-09-23
CA2498656A1 (en) 2004-04-22
AU2003260375A1 (en) 2004-05-04
EP1398699A1 (de) 2004-03-17
US20060195849A1 (en) 2006-08-31
WO2004034172A2 (de) 2004-04-22
EP1543421A2 (de) 2005-06-22

Similar Documents

Publication Publication Date Title
CA2434494C (en) Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof
EP1668509B1 (en) Method and apparatus for monitoring and resetting a co-processor
US8010846B1 (en) Scalable self-checking processing platform including processors executing both coupled and uncoupled applications within a frame
US6834363B2 (en) Method for prioritizing bus errors
US7340574B2 (en) Method and apparatus for synchronizing an industrial controller with a redundant controller
US20080189570A1 (en) I/o device fault processing method for use in virtual computer system
US20070128895A1 (en) Redundant automation system for controlling a techinical device, and method for operating such an automation system
US20130019083A1 (en) Redundant Transactional Memory
US6158015A (en) Apparatus for swapping, adding or removing a processor in an operating computer system
US20040003317A1 (en) Method and apparatus for implementing fault detection and correction in a computer system that requires high reliability and system manageability
EP2518627A2 (en) Partial fault processing method in computer system
US10630802B2 (en) Read caching in PPRC environments
CN1744049A (zh) 用于调试输入/输出故障的方法和系统
CN1682194A (zh) 用于事件同步特别是针对容错系统处理器的方法
US6449729B1 (en) Computer system for dynamically scaling busses during operation
EP2592555A2 (en) Method of providing high integrity processing
US7000153B2 (en) Computer apparatus and method of diagnosing the computer apparatus and replacing, repairing or adding hardware during non-stop operation of the computer apparatus
EP0397471A2 (en) Initialization system amd methods for input/output processing units
CN117472623A (zh) 处理内存故障的方法、装置、设备及存储介质
CN114355802A (zh) 一种多核并起的处理器同步调试方法
JP2015176292A (ja) 情報処理装置、情報処理方法及びプログラム
CN1922579A (zh) 用于检测故障时钟的电子电路装置
US7330885B2 (en) Method and apparatus for managing data time-outs
CN1801109A (zh) 使用直接存储器存取的双工容错系统和方法
US11429628B2 (en) Transaction grouping for overwrite merge

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication