CN103443774A - 信息处理装置和控制方法 - Google Patents

信息处理装置和控制方法 Download PDF

Info

Publication number
CN103443774A
CN103443774A CN2007801008028A CN200780100802A CN103443774A CN 103443774 A CN103443774 A CN 103443774A CN 2007801008028 A CN2007801008028 A CN 2007801008028A CN 200780100802 A CN200780100802 A CN 200780100802A CN 103443774 A CN103443774 A CN 103443774A
Authority
CN
China
Prior art keywords
processing apparatus
arithmetic processing
cpu
instruction
control device
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
CN2007801008028A
Other languages
English (en)
Inventor
大胁威
石塚孝治
植木俊和
畑井田诚
细川由佳
诸泽笃史
山本崇史
伊藤大介
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN103443774A publication Critical patent/CN103443774A/zh
Pending legal-status Critical Current

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/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/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • 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/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

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

北桥芯片(11)如果检测到冗余CPU的同步崩溃,就使发生错误的异常CPU总线的动作停止,FWH(13-1)内的固件对北桥芯片(11)指示对外部指令的抑制。此外,固件把连接在正常CPU总线上的正常CPU的内部信息和高速缓存器数据保存到存储器(15-1)中,北桥芯片(11)对本***板内的全部CPU发出复位。接着,对于全部CPU,固件把保存在所述存储器(15-1)中的CPU的内部信息复原,对北桥芯片(11)指示解除对外部指令的抑制。

Description

信息处理装置和控制方法
技术领域
本发明涉及把多个运算处理装置(例如CPU)冗余化,例如作为冗余CPU,进行同步动作的信息处理装置和信息处理装置的控制方法,特别涉及在发生运算处理装置之间的同步崩溃时,进行被冗余化的运算处理装置的再同步的信息处理装置和信息处理装置的控制方法。
背景技术
在以UNIX(注册商标)或Linux等开源(open source)OS工作,多个CPU被冗余化的***(多处理器***)中,由于构成冗余CPU的CPU对中的一方的CPU暂时故障,发生向进行冗余(同步)运行的另一方CPU的退缩之后,为了使CPU再次回到冗余结构,需要暂停***并进行冗余CPU的再同步和OS的再起动。这里,进行同步运行的CPU是同时执行同一处理的CPU。
作为关于由多个处理器构成的多处理器***的具体的技术,以下的专利文献1记载了如下的多重***:把3个以上的处理器中的一个指定为通常模式,把剩下的处理器指定为用于监视通常模式的处理器的执行状态的监视模式,每个监视模式的处理器都产生了异常信号时,判断为通常模式的处理器异常,其中一个监视模式的处理器产生了异常信号时,判断为在监视模式的处理器中产生了异常。
此外,以下的专利文献2记载了如下的冗余***:例如当在分别设置在被冗余化的第一CPU、第二CPU中的状态装置中的第二CPU内的特定的状态装置中产生异常,需要进行再同步时,再同步服务器对特定的状态装置和第一CPU内的与特定的状态装置对应的状态装置发出再同步指令,重启双方的状态装置,实现状态装置的再同步。
专利文献1:日本特公平6-30069号公报
专利文献2:日本特表2002-538521号公报
如上所述,以往,在发生了向进行同步动作的冗余CPU中的任意一个CPU的退缩之后,为了使CPU再次回到冗余结构,需要暂停***并进行冗余CPU的再同步和OS的再起动。可是,在要求连续工作的主***中,如果进行***的暂停,就产生无法连续工作的问题。
此外,在所述专利文献1中记载的以往技术中,需要使用具有可以接收从检测出处理器异常的控制部发出的用于停止处理器的动作的控制信号的接口的专用处理器)。此外,在该以往技术中,即使在存在软错误等引起的处理器内部的暂时的故障时,也把处理器从***切离。此外,以往技术是根据多数决定,判定异常处理器的技术,所以在处理器的剩余数成为2个时,如果检测到异常,就会使双方的处理器停止。
此外,所述专利文献2中记载的以往技术是,即使重启与产生了异常的状态装置相关联的全部状态装置,对其他状态装置的状态也不产生影响的特定的***中的状态装置的再同步技术。因此,以往技术的状态装置的再同步处理依赖于在***上工作的OS具有的功能,在不具有这样的功能的通用OS上无法使用。
本发明的目的在于,提供在多个运算处理装置被冗余化而作为冗余运算处理装置进行同步动作的信息处理装置中,在发生了无法取得被冗余化的运算处理装置之间的同步之类的同步崩溃时,不用重启OS,而进行冗余运算处理装置的再同步处理的信息处理装置。
此外,本发明的目的在于,提供在多个运算处理装置被冗余化而作为冗余运算处理装置进行同步动作的信息处理装置中,在发生了无法取得被冗余化的运算处理装置之间的同步之类的同步崩溃时,不用重启OS,而进行冗余运算处理装置的再同步处理的控制方法。
本发明的信息处理装置是具有同时执行同一处理的相互冗余化的第一和第二运算处理装置、与所述第一和第二运算处理装置连接的第一控制装置、通过所述第一控制装置连接的存储装置及第二控制装置的信息处理装置,所述第一控制装置具有:同步崩溃检测单元,通过检测出在所述第一和第二运算处理装置中的任意一个的运算处理装置中发生的异常,来检测出同步崩溃;指令发出停止单元,使被检测到所述异常的运算处理装置的指令的发出停止;指令抑制单元,抑制从所述第二控制装置对所述第一控制装置发出的指令;保存单元,使所述第一和第二运算处理装置中的正常的运算处理装置具有的内部信息保存到所述存储装置中;初始化单元,进行所述第一和第二运算处理装置的初始化;复原单元,把保存到所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原;和指令抑制解除单元,在所述内部信息在所述第一和第二运算处理装置中已被复原的情况下,解除对从所述第二控制装置对所述第一控制装置发出的指令的抑制,使所述第一和第二运算处理装置的同步动作重新开始。
优选,在本发明的信息处理装置中,所述第一控制装置还具有判断单元,该判断单元,在被检测到所述异常的运算处理装置的指令发出被停止的情况下,判断重新开始所述第一和第二运算处理装置的同步动作的次数是否是规定次数以上,在重新开始所述同步动作的次数是所述规定次数以上的情况下,使所述复原单元把被保存在所述存储装置中的内部信息只在所述第一和第二运算处理装置中的所述正常的运算处理装置中复原。
优选,在本发明的信息处理装置中,所述第一控制装置还具有复原中断单元,该复原中断单元,当在将被保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的途中,所述同步崩溃检测单元再次检测到被检测出所述异常的运算处理装置中的异常的情况下,中断针对被检测到所述异常的运算处理装置的所述内部信息的复原,只使所述内部信息已被复原的正常的运算处理装置的动作重新开始,解除对从所述第二控制装置对所述第一控制装置发出的指令的抑制。
此外,本发明的控制方法是具有同时执行同一处理的相互冗余化的第一和第二运算处理装置、与所述第一和第二运算处理装置连接的第一控制装置、通过所述第一控制装置连接的存储装置及第二控制装置的信息处理装置的控制方法,包括:通过检测出在所述第一和第二运算处理装置中的任意一个的运算处理装置中发生的异常,来检测出同步崩溃的步骤;使被检测到所述异常的运算处理装置的指令的发出停止的步骤;抑制从所述第二控制装置对所述第一控制装置发出的指令的步骤;使所述第一和第二运算处理装置中的正常的运算处理装置具有的内部信息保存到所述存储装置中的步骤;进行所述第一和第二运算处理装置的初始化的步骤;把保存到所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的步骤;和在所述内部信息在所述第一和第二运算处理装置中已被复原的情况下,解除对从所述第二控制装置对所述第一控制装置发出的指令的抑制,重新开始所述第一和第二运算处理装置的同步动作的步骤。
优选,在本发明的控制方法中,还具有:在被检测到所述异常的运算处理装置的指令发出被停止的情况下,判断重新开始所述第一和第二运算处理装置的同步动作的次数是否是规定次数以上的步骤;和在重新开始所述同步动作的次数在所述规定次数以上的情况下,使被保存在所述存储装置中的内部信息只在所述第一和第二运算处理装置中的所述正常的运算处理装置中复原的步骤。
优选,在本发明的控制方法中,还具有:当在将被保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的途中,再次检测到被检测出所述异常的运算处理装置中的异常的情况下,中断针对被检测到所述异常的运算处理装置的所述内部信息的复原的步骤;只重新开始所述内部信息已被复原的正常的运算处理装置的动作的步骤;和解除对从所述第二控制装置向所述第一控制装置发出的指令的抑制的步骤。
此外,本发明的信息处理装置,具备具有同时执行同一处理的相互冗余化的第一和第二运算处理装置、与所述第一和第二运算处理装置连接的第一控制装置和与所述第一控制装置连接的存储装置的第一***板;具有第二控制装置的第二***板;和中继所述第一和第二***板的中继装置,所述第一***板具有:指令投入单元,把从所述第一和第二运算处理装置中的任意一个运算处理装置发出的指令通过所述中继装置对所述第二***板投入;同步崩溃检测单元,通过检测出在所述第一和第二运算处理装置中的任意一个运算处理装置中发生的异常,来检测出同步崩溃;指令发出停止单元,指示所述指令投入单元,使被检测到异常的运算处理装置的指令发出停止;指令抑制单元,抑制从所述第二***板对所述第一控制装置投入的指令;保存单元,使所述第一和第二运算处理装置中的正常的运算处理装置具有的内部信息保存到所述存储装置中;初始化单元,进行所述第一和第二运算处理装置的初始化;复原单元,把保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原;和指令抑制解除单元,在所述内部信息在所述第一和第二运算处理装置中已被复原的情况下,解除对从所述第二***板向所述第一控制装置发出的指令的抑制,使所述第一和第二运算处理装置的同步动作重新开始。
优选,在本发明的信息处理装置中,所述第一***板还具有判断单元,该判断单元,在被检测到所述异常的运算处理装置的指令发出被停止的情况下,判断重新开始所述第一和第二运算处理装置的同步动作的次数是否是规定次数以上,在重新开始所述同步动作的次数是所述规定次数以上的情况下,使所述复原单元把被保存在所述存储装置中的内部信息只在所述第一和第二运算处理装置中的所述正常的运算处理装置中复原。
优选,在本发明的信息处理装置中,所述第一***板还具有复原中断单元,该复原中断单元,当在将被保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的途中,所述同步崩溃检测单元再次检测到被检测出所述异常的运算处理装置中的异常的情况下,中断针对被检测到所述异常的运算处理装置的所述内部信息的复原,只使所述内部信息已被复原的正常的运算处理装置的动作重新开始,解除对从所述第二控制装置向所述第一控制装置发出的指令的抑制。
本发明,例如,如果检测到被冗余化的运算处理装置亦即冗余CPU中的任意一个CPU的错误引起的冗余运算处理装置(冗余CPU)的同步崩溃,就在抑制从外部的装置对本***发出的指令后,把正常的CPU(以下记载为“正常CPU”)的内部信息和高速缓存器数据保存到与北桥芯片连接的主存储器等存储装置中。而且,本发明把发生上述错误的CPU(以下,记载为“异常发生CPU”)和正常CPU复位,把保存到上述存储装置中的正常CPU的内部信息在所述已被复位的异常发生CPU内和正常CPU内复原。而且,本发明,在内部信息在异常发生CPU内和正常CPU内被复原了时,解除对从上述外部的装置对本***发出的指令的抑制,重新开始异常发生CPU和正常CPU的同步动作,由此,使上述冗余CPU再同步。因此,根据本发明,在发生了CPU之间的同步崩溃时,不用重启OS,就能进行冗余CPU的再同步处理。此外,本发明的冗余CPU的再同步处理不依赖于在***上动作的OS具有的功能,所以能够使用通用的OS实现。
此外,本发明,例如在停止了从异常发生CPU向外部装置的指令的发出时,判断冗余CPU的再同步的实施次数是否是冗余CPU的再同步的实施次数的上限值以上,在判断为冗余CPU的再同步的实施次数是冗余CPU的再同步的实施次数的上限值以上的情况下,只继续正常CPU的运行。因此,根据本发明,例如当在冗余CPU中的任意一个CPU中产生固定故障时,能够继续正常CPU的运行,使可以最大限度利用***中搭载的CPU资源的连续运行成为可能)。
此外,本发明,当在将保存到所述存储装置中的正常CPU的内部信息在所述被复位的异常发生CPU内和正常CPU内复原的途中,再次检测到异常发生CPU中的错误时,中断上述内部信息向异常发生CPU内的复原,只重新开始内部信息已被复原的正常CPU的运行,解除对从外部装置对本***发出的指令的抑制。因此,根据本发明,例如当在冗余CPU的再同步处理的途中,在异常发生CPU中再次发生错误时,能够重新开始正常CPU的运行。因此,根据本发明,使可以最大限度利用***中搭载的CPU资源的连续运行成为可能)。
附图说明
图1是表示本实施方式的整体结构的一例的图。
图2是说明本实施方式的冗余CPU的再同步处理的概要的图。
图3是说明本实施方式的冗余CPU的再同步处理的概要的图。
图4是说明本实施方式的冗余CPU的再同步处理的概要的图。
图5是说明本实施方式的冗余CPU的再同步处理的概要的图。
图6是说明本实施方式的冗余CPU的再同步处理的概要的图。
图7是说明本实施方式的冗余CPU的再同步处理的概要的图。
图8是说明本实施方式的冗余CPU的再同步处理的概要的图。
图9是说明本实施方式的冗余CPU的再同步处理的概要的图。
图10是说明本实施方式的冗余CPU的再同步处理的概要的图。
图11是说明本实施方式的冗余CPU的再同步处理的概要的图。
图12是说明本实施方式的冗余CPU的再同步处理的概要的图。
图13是说明本实施方式的冗余CPU的再同步处理的概要的图。
图14是说明本实施方式的冗余CPU的再同步处理的概要的图。
图15是表示本实施方式的实施例涉及的***结构例的图。
图16是表示SB#0的结构例的图。
图17是表示本实施方式的冗余CPU的再同步处理流程的一例的图。
图18是表示本实施方式的冗余CPU的再同步处理流程的一例的图。
符号的说明
5-1、5-2-全局地址交叉开关;6-1、6-2、6-3、6-4-全局数据交叉开关;7-***控制装置;8-终端;11、21-北桥芯片(North Bridge);12-0、12-1、12-2、12-3-CPU;13-1、13-2-FWH;14-1、14-2、14-3、14-4-存储器控制器;15-1、15-2、15-3、15-4-存储器;16-1、16-2-CPU总线;20-1、20-2-数据总线;100-检查电路;101-CPU总线同步检查电路;102-切换控制寄存器;103-复位控制寄存器;104-再同步控制寄存器;105-切换/再同步控制电路;106-切换开关;117-主队列;108-LCST生成电路;109-重试控制寄存器;110-探听标签;111-从属请求控制电路;202-LRA包;200-全局地址优先级控制电路;201-GCST生成电路。
具体实施方式
图1是表示本实施方式的整体结构的一例的图。本实施方式例如作为具有图1所示那样的多个***板(SB#0~SB#7)的多处理器***实现。图1所示的IOU#0、…、IOU#7分别是与SB#0、…、SB#7对应的I/O单元。另外,该多处理器***具有的***板的数量、I/O单元的数量并不由图1所示的***板的数量、I/O单元的数量限定。
本实施方式例如作为如下的信息处理装置而实现:具备具有同时执行同一处理的相互冗余化的第一和第二运算处理装置(例如图1中的CPU12-0和CPU12-2)、与上述第一和第二运算处理装置连接的第一控制装置(例如北桥芯片11)和与上述第一控制装置连接的存储装置(例如存储器15-1~15-4)的第一***板(例如,SB#0)、具有第二控制装置(省略图示的北桥芯片11以外的北桥芯片)的第二***板(例如SB#7)、中继所述第一和第二***板的中继装置(例如全局地址交叉开关5-1)。所述彼此被冗余化的第一和第二信息处理装置例如是通过同步动作被冗余化的CPU对(冗余CPU)。
此外,本实施方式例如作为如下的信息处理装置而实现:具有同时执行同一处理的相互冗余化的第一和第二运算处理装置(例如图1中的CPU12-0和CPU12-2)、与上述第一和第二运算处理装置连接的第一控制装置(例如北桥芯片11)、通过上述第一控制装置而被连接的存储装置(例如存储器15-1~15-4)和第二控制装置(例如省略图示的北桥芯片11以外的北桥芯片)。
如图1所示,SB#0具有多个CPU(CPU12-0~CPU12-3)、北桥芯片11、固件集线器(FWH)13-1、13-2、存储器控制器14-1~14-4、存储器15-1~15-4、CPU总线16-1、16-2。例如,连接在CPU总线16-1上的CPU12-0和连接在CPU总线16-2上的CPU12-2是基于同步动作的被冗余化的CPU对(冗余CPU),连接在CPU总线16-1上的CPU12-1和连接在CPU总线16-2上的CPU12-3是冗余CPU。同步动作是指同时执行同一处理。SB#0以外的其它***板具有与SB#0同样的结构。
北桥芯片11检测出由于构成冗余CPU的CPU对中的一方CPU(单***CPU)产生错误导致无法取得冗余CPU之间的同步的冗余(同步)崩溃,按照基于FWH13-1或者13-2中保存的固件的控制,进行冗余CPU的再同步处理。冗余(同步)崩溃是指构成冗余CPU的CPU对无法进行同步动作。此外,冗余CPU的再同步处理是使CPU再次返回冗余结构的处理。北桥芯片11不用重启在***上工作的OS,即可执行冗余CPU的再同步处理。
FWH13-1、13-2是保存固件的ROM,FWH13-1、13-2中保存的固件控制北桥芯片11,使冗余CPU进行再同步处理。在存储器15-1~15-4中存储各种数据。存储器控制器14-1、14-2、14-3、14-4分别控制与存储器15-1、15-2、15-3、15-4之间的数据写或者读处理。CPU总线16-1是CPU12-0及CPU12-1和北桥芯片11之间的通信接口,CPU总线16-2是CPU12-2及CPU12-3和北桥芯片11之间的通信接口。
5-1、5-2是作为把从各***板发出的指令以及成为该指令的对象的地址(例如,针对加载指令或者存储指令的存储器地址等)对其它***板以及I/O单元中继的地址中继单元的全局地址交叉开关,6-1~6-4是作为在***板之间、I/O单元之间以及在***板和I/O单元之间,中继数据的处理单元的全局数据交叉开关。7是向***板和I/O单元具有的寄存器(省略图示)设定各种设定值的SVP(服务处理器)等***控制装置。例如***控制装置7在SB#0内的北桥芯片11具有的寄存器中设定冗余CPU的再同步的实施次数的上限值。
首先,说明各***板具有的北桥芯片的通常的动作。
北桥芯片(例如北桥芯片11)在进行通常的动作时,把从该北桥芯片具有的各CPU发出的指令(操作码)和成为指令的对象的地址(以下记载为“地址/操作码”)对全局地址交叉开关投入。从其它***板内的CPU发出的地址/操作码也被投入全局地址交叉开关)。全局地址交叉开关根据规定的优先级顺序,从被投入的地址/操作码中选择特定的地址/操作码,通知给各***板。即北桥芯片是通过全局地址交叉开关把从本***板内的CPU发出的指令作为外部指令对包含本***板在内的全部***板投入的外部指令投入单元。
如果从全局地址交叉开关接受了上述通知,各***板具有的北桥芯片(例如北桥芯片11)就把包含表示与本北桥芯片对应的***板能否继续执行关于被选择的地址/操作码的处理的信息(处理可否信息)和表示本北桥芯片所对应的***板把针对上述被通知的地址的数据在***板内的哪里和以怎样的状态保持的信息(数据状态信息)的信息包(参照图15,后面描述的LCST包)对全局地址交叉开关投入。在本实施方式特有的动作中,检测到冗余CPU的冗余(同步)崩溃的北桥芯片例如将作为处理可否信息的Retry(重试)对全局地址交叉开关投入。重试是因为无法接受从外部对***板发出的指令而指示该指令的发出源再次投入指令的控制信号。
已被投入处理可否信息和数据状态信息的全局地址交叉开关向各***板具有的北桥芯片通知上述处理可否信息和数据状态信息。接受了通知的***板具有的北桥芯片执行本北桥芯片应该执行的指令。北桥芯片根据需要,通过数据交叉开关从与本北桥芯片所对应的***板不同的其它***板接收指令的执行所需要的数据。例如,在SB#0对存储器15-1写入数据时,SB#0根据需要,通过全局数据交叉开关6-1从SB#7接收作为写入对象的数据。然后,SB#0通过存储器控制器14-1的控制,向存储器15-1内写入数据。
下面,说明本实施方式的冗余CPU的再同步处理的概要。首先,如图2所示那样,北桥芯片11检测出由于在由CPU12-0和CPU12-2构成的冗余CPU中的异常发生CPU(CPU12-2)中发生的错误(异常)引起的冗余(同步)崩溃。
接着,如图3所示那样,北桥芯片11使连接异常发生CPU(CPU12-2)的CPU总线(异常CPU总线)即CPU总线16-2的动作停止,停止来自CPU12-2、CPU12-3的、通过CPU总线16-2、北桥芯片11向北桥芯片11的外部装置的指令的发出。图3中的斜线表示连接异常发生CPU的CPU总线16-2的动作是停止状态(在图4~图8、图13、图14中也同样)。
接着,如图4所示那样,北桥芯片11将表示异常发生CPU所连接的CPU总线16-2的动作是停止状态的信息对作为正常CPU总线的CPU总线16-1进行中断通知。这里,正常CPU总线是指连接了与异常发生CPU成为冗余结构的对的正常的CPU的CPU总线。而且,将表示异常CPU总线(CPU总线16-2)的动作已停止的信息通过CPU总线16-1对连接在CPU总线16-1上的CPU12-0、CPU12-1进行中断通知。
如果对CPU12-0、12-1进行了上述中断通知,CPU12-0、12-1就被分配给图1所示的FWH13-1(或者FWH13-2)中保存的固件,暂停运行中的OS的处理。
接着,固件对北桥芯片11发送控制信号,如图5所示那样,对北桥芯片11指示对全局地址交叉开关5-1继续投入重试。北桥芯片11对全局地址交叉开关5-1继续投入重试,从而抑制了从SB#0以外的***板对SB#0具有的北桥芯片11发出的指令(外部指令)。
例如,从图5所示的SB#7具有的北桥芯片21发出了指令(参照图5中的#A),即使从全局地址交叉开关5-1对北桥芯片11发出了该指令(参照图5中的#B),北桥芯片11也对全局地址交叉开关5-1投入重试信息(参照图5中的#C),重试信息通过全局地址交叉开关5-1被通知到北桥芯片21(参照图5中的#D)。其结果,抑制了从北桥芯片21对北桥芯片11发出的指令的接受,抑制了基于SB#0具有的CPU12-0、12-1的指令的执行。
接着,固件对作为正常CPU的CPU12-0、12-1指示,如图6所示那样,把为了使冗余CPU再同步所需要的CPU的内部信息(例如在CPU12-0中发生异常的瞬间的CPU12-0内、CPU12-1内的寄存器的信息等)保存到存储器15-1。上述正常CPU是连接在正常CPU总线上的CPU。即固件是使冗余CPU中正常的CPU具有的内部信息保存到存储装置的保存单元。
此外,固件对CPU12-0、CPU12-1指示,如图7所示那样,把CPU12-0内的高速缓存器数据和CPU12-1内的高速缓存器数据向存储器15-1写出并保存。
接着,在全部正常CPU(CPU12-0、CPU 12-1),完成了将高速缓存器数据向存储器15-1的写出的时间点,固件对北桥芯片11指示清除北桥芯片11具有的探听标签(图8中的探听标签110)保持的各CPU的高速缓存器状态信息。探听标签110是保持与北桥芯片11连接的CPU的内部的高速缓存器状态信息的存储单元。此外,高速缓存器状态信息是表示CPU具有的高速缓存器的状态的信息,例如是表示本CPU是否在高速缓存器内保持了存储器15-1中存储的数据的信息或者表示本CPU把哪个***板的存储器中存储的数据以怎样的状态在高速缓存器中保持的信息。
接着,如图9所示那样,北桥芯片11对与北桥芯片11连接的各CPU(CPU12-0、CPU 12-1、CPU 12-2、CPU 12-3)同时发出Reset(复位),把各CPU初始化,重新开始冗余CPU的同步动作。Reset是使CPU初始化的控制信号。
此外,固件进行各CPU的初始化,使CPU内部信息在各CPU对内复原,该CPU内部信息是在参照图6在前面描述的CPU内部信息向存储器15-1的保存处理中被保存到存储器15-1中的。
具体而言,图10所示的CPU12-0、CPU12-2从固件接受指示,把保存在存储器15-1的CPU12-0的内部信息在本CPU内复原。此外,图10所示的CPU12-1、CPU12-3从固件接受指示,把保存在存储器15-1的CPU12-1的内部信息在本CPU内复原。即固件的一部分是使保存在存储装置的正常CPU的内部信息在已被初始化的异常发生CPU内和正常CPU内复原的复原单元。
根据参照图10说明的存储在存储器15-1内的CPU内部信息向各CPU对的复原处理,各CPU对恢复到冗余结构。
如果在与北桥芯片11连接的全部CPU中完成了初始化和内部信息的复原,就如图11所示那样,固件对北桥芯片11指示解除对外部指令的投入抑制。即固件,通过使北桥芯片11停止向全局地址交叉开关5-1投入重试,来解除对外部指令的投入抑制。
北桥芯片11解除对外部指令的投入抑制,由此,各CPU对(CPU12-0和CPU12-2对,CPU12-1和CPU12-3对)重新开始同步动作(实现冗余CPU的再同步)。
例如,如果如图12所示那样,从SB#7具有的北桥芯片21发出了指令(参照图12中的#A),并从全局地址交叉开关5-1对北桥芯片11传送了该指令(参照图12中的#B),则接受指令的北桥芯片11通过全局地址交叉开关5-1对北桥芯片21响应能执行指令(参照图12中的#C、#D)。由冗余CPU执行所接受的指令。
根据本实施方式的一个例子,在北桥芯片11内的存储单元预先存储冗余CPU的再同步的实施次数的上限值。而且,如参照图3所述那样,如果停止了从异常CPU向北桥芯片11的外部装置发出指令,固件就判断冗余CPU的再同步的实施次数(重新开始同步动作的次数)是否为上述存储单元中存储的该冗余CPU的再同步的实施次数的上限值以上。而且,固件在判断为冗余CPU的再同步的实施次数是上述上限值以上的情况下,不实施冗余CPU的再同步处理,只继续正常CPU总线(例如CPU总线16-1)和该正常CPU总线上连接的CPU(例如CPU12-0、CPU12-1)的运行,来进行***的继续运行。即,固件的一部分是在停止了异常CPU发出指令的情况下,判断重新开始CPU的同步动作的次数是否是规定次数以上,在重新开始同步动作的次数是上述规定次数以上的情况下,使复原单元只把保存在存储装置中的内部信息在正常的CPU内复原的判断单元。
另外,根据本实施方式的一个例子,当在参照图10描述的全部CPU完成了CPU的初始化和内部信息的复原处理之前,异常发生CPU中发生错误,再次发生再次冗余CPU的冗余(同步)崩溃的情况下,固件指示北桥芯片11中断冗余CPU的再同步处理(即中断内部信息向异常发生CPU内的复原),只重新开始内部信息已被复原的正常CPU和连接该正常CPU的正常CPU总线的运行(单***运行),并且指示解除对外部指令的抑制。其结果,例如如图13所示那样,CPU总线16-2的动作保持停止状态不变,CPU总线16-1的动作成为工作状态,此外,解除了基于北桥芯片11的对外部指令的抑制。即,固件是如下的复原中断单元:当在将保存在存储器15-1中的内部信息在已被初始化的异常发生CPU内和正常CPU内复原的途中,再次检测到异常发生CPU中的异常的情况下,中断针对上述异常发生CPU的内部信息的复原,只重新开始内部信息已被复原的正常CPU的动作,解除对向***板(SB#0)发出的指令的抑制。
北桥芯片11解除对外部指令的投入抑制,例如如图14所示那样,从SB#7具有的北桥芯片21发出了指令(参照图14中的#A),并从全局地址交叉开关5-1对北桥芯片11发出该指令(参照图14中的#B)。北桥芯片11通过全局地址交叉开关5-1对北桥芯片响应能执行指令(参照图14中的#C、#D)。
图15是表示本实施方式的一个例子的***结构例的图,图16是表示图15所示的SB#0的结构例的图。在图15、图16所示的例子中,本实施方式的信息处理装置由SMP(Symmetric Multiple Processor,对称式多处理器)构成,作为多处理器***中的冗余CPU的再同步***而构成。
通过搭载多个CPU(图16中的CPU12-0~CPU12-3)和存储器(例如图16中的存储器15-1)的多个***板(SB#0~SB#N)借助于全局地址交叉开关5-1和全局数据交叉开关6-1连接起来,来构成图15所示的本实施方式的信息处理装置。
如后所述那样,图16所示的SB#0具有的CPU12-0和CPU12-2、CPU12-1和CPU12-3分别是基于同步动作被冗余化的CPU的对(冗余CPU)。此外,全局地址交叉开关5-1是把从各***板发出的指令和成为该指令的对象的地址对其他***板中继的地址中继单元。此外,各***板具有与图16中所示的SB#0同样的结构。即本实施方式的信息处理装置是由多个***板构成的多处理器***,该多个***板分别具有通过同步动作被冗余化的CPU对即冗余CPU,通过中继指令和成为该指令的对象的地址的地址中继单元被连接起来。
与***管理者对话的终端8所连接的***控制装置7与该信息处理装置连接。***控制装置7按照从终端8输入的控制信号,对各***板具有的北桥芯片(例如图16中的北桥芯片11)发出指令,进行分区(partition)的结构设定和北桥芯片的动作模式的设定等***整体的管理。分区是由***板和I/O单元(在图15、图16中,省略图示)构成的***。
作为构成图15所示的信息处理装置的***板之一的SB#0如图16所示那样,除了具有CPU12-0~12-3、存储器15-1以外,还具有北桥芯片11、FWH13-1、存储器控制器14-1。CPU12-0和CPU12-2、CPU12-1和CPU12-3分别是基于同步动作被冗余化的CPU的对(冗余CPU)。CPU12-0和CPU12-2连接在CPU总线16-1上,CPU12-1和CPU12-3连接在CPU总线16-2上。
图15所示的北桥芯片11是与图1中所示的北桥芯片11同样的处理部。存储器控制器14-1进行存储器15-1的控制。后面描述存储器控制器14-1的具体的功能。FWH13-1与图1中所示的FWH13-1同样。后面描述FWH13-1的具体的功能。
这里,构成图15所示的信息处理装置的各***板(例如SB#0)生成包含本***板上所搭载的CPU发出的指令和成为该指令的对象的地址(地址/操作码)的本地请求地址包(以下称作LRA包(Local RequestAddress包))202,并对全局地址交叉开关5-1投入。LRA包202例如操作码、地址、包ID、boardID(板ID)、重试次数信息、分区信息(例如分区的识别信息)等信息构成。上述ID是LRA包202的识别信息,boardID是作为该LRA包202的发出源的***板的识别信息(例如板编号)。
全局地址交叉开关5-1如果接受了图15所示的LRA包202的投入,全局地址交叉开关5-1具有的全局地址优先级控制电路200就从被投入的LRA包202中,根据预先决定的优先级顺序,把特定的LRA包202作为全局选择地址包(以下称作GSA包(Global Select Address包))进行选择。而且,全局地址优先级控制电路200把GSA包对全部***板广播。全局地址优先级控制电路200也可以把GSA包对同一分区内的全部***板广播。
GSA包是用于把作为***而应该执行的地址/操作码对***板通知的信息包。GSA包包含与LRA包202中包含的信息相同的信息。
各***板具有的LCST生成电路(例如图16中的LCST生成电路108)如果收到了GSA包,就把本地高速缓存器状态包(以下称作LCST包(Local Cache STate包))发送至全局地址交叉开关5-1。LCST包包含处理可否信息和数据状态信息,是用于把该处理可否信息和数据状态信息对全局地址交叉开关5-1通知的信息包。处理可否信息是表示本***板能否继续执行GSA包中包含的指令所指示的处理(关于GSA包中包含的地址/操作码的处理)、对该指令的发出源的***板是否指示重试的信息。数据状态信息是表示本***板把上述GSA包中包含的地址所对应的数据在本***板内的哪里而且以怎样的状态保持的信息。
全局地址交叉开关5-1如果从各***板具有的LCST生成电路接收到LCST包,图15中所示的全局地址交叉开关5-1具有的GCST生成电路201就生成全局缓存器状态包(以下称作GCST包),把GCST包对全部***板广播。GCST生成电路201也可以把GCST包对同一分区内的***板广播。GCST包是用于把从各***板对全局地址交叉开关通知的LCST包中包含的处理可否信息和数据状态信息对全部的***板通知的信息包。
GCST生成电路201向各***板具有的北桥芯片(例如图16所示的SB#0具有的北桥芯片11)内的从属请求控制电路(例如图16所示的从属请求控制电路111)发送GCST包。例如,图16所示的从属请求控制电路111从图15所示的GCST生成电路201接收GCST包,并把GCST包变换为针对存储器控制器14-1的控制信号(存储器从属请求(slaverequest))、针对CPU的控制信号(CPU从属请求)、针对FWH13-1的控制信号(FWH从属请求)。然后,从属请求控制电路111向存储器控制器14-1发送存储器从属请求,向CPU发送CPU从属请求,向FWH13-1发送FWH从属请求,使本***板执行应该执行的指令。
本实施方式的信息处理装置例如按照上述的动作,实现对全部的***板内的CPU,对称地均一地分配处理。
下面,以SB#0具有的北桥芯片11的结构为例,说明各***板具有的北桥芯片的结构。
北桥芯片11如图16所示,具有检查电路100、CPU总线同步检查电路101、切换控制寄存器102、复位控制寄存器103、再同步控制寄存器104、切换/再同步控制电路105、切换开关106、主队列107、LCST生成电路108、重试控制寄存器109、探听标签110、从属请求控制电路111、指令译码器112。
检查电路100通过CPU总线16-1、16-2接收从CPU(CPU12-0和CPU12-1、CPU12-2和CPU12-3)发送的信息包,进行ECC和奇偶校验等检查。检查电路100如果通过检查,检测到错误,就向切换/再同步控制电路105进行错误通知。
CPU总线同步检查电路101以构成冗余CPU的CPU对所连接的CPU总线为单位进行同步检查。即CPU总线同步检查电路101检查构成冗余CPU的CPU对是否进行了同步动作。CPU总线同步检查电路101如果检测到同步崩溃,就向切换/再同步控制电路105进行错误通知。另外,当在CPU内部检测到错误的情况下,检测到错误的CPU对切换/再同步控制电路105进行错误通知(内部错误通知)。
上述检查电路100和CPU总线同步检查电路101是通过检测出构成冗余CPU的CPU中的任意一个CPU中发生的异常,来检测出同步崩溃的同步崩溃检测单元。
在切换控制寄存器102中设定由CPU总线同步检查电路101检测到错误时的切换/再同步控制电路105的动作模式。***控制装置7通过指令译码器112在切换控制寄存器102中预先设定动作模式。例如,在切换控制寄存器102中,作为动作模式1,设定包含检测到错误的北桥芯片的分区的停止,作为动作模式2,设定CPU总线16-1的无效,作为动作模式3,设定CPU总线16-2的无效。
复位控制寄存器103是为了进行关于各CPU的复位控制而管理各CPU的状态的寄存器。例如,如果在冗余CPU的再同步处理中,完成了CPU的高速缓存器数据向存储器15-1的保存,就根据FWH13-1中保存的固件的控制,在复位控制寄存器103内建立与该CPU对应的保存完成标志。
再同步控制寄存器104是设定冗余CPU的再同步的实施次数的上限值(再同步可能上限值)和再同步可否标志的寄存器。再同步可否标志是表示冗余CPU的再同步是否可能的标志。***控制装置7通过指令译码器112在再同步控制寄存器104中设定再同步可能上限值。
根据本发明的一个实施方式,FWH13-1中保存的固件比较再同步的实施次数和再同步控制寄存器104中所设定的再同步可能上限值,在再同步的实施次数低于再同步可能上限值的情况下,判断为冗余CPU的再同步是可能的,在再同步控制寄存器104中,例如设定标志1作为再同步可否标志。固件在再同步的实施次数是再同步可能上限值以上的情况下,判断为冗余CPU的再同步是不可能的,例如设定标志0作为再同步可否标志。
切换/再同步控制电路105是接收来自CPU、检查电路100、CPU总线同步检查电路101的错误通知,并控制切换开关106的动作的电路。切换/再同步控制电路105进行以下的切换控制。
切换/再同步控制电路105在从CPU接受了内部错误通知的情况下,把发生错误的CPU(单***CPU)所连接的CPU总线设为无效,停止从CPU总线向全局地址交叉开关5-1发出指令。切换/再同步控制电路105在从检查电路100接受了错误通知的情况下,把检测到错误的CPU总线设为无效,停止从CPU总线向全局地址交叉开关5-1发出指令。此外,切换/再同步控制电路105在从CPU总线同步检查电路101接受了错误通知的情况下,进行按照切换控制寄存器102中设定的动作模式的动作。即切换/再同步控制电路105是使检测到异常的CPU向SB#0的外部装置发出指令停止的指令发出停止单元。
此外,切换/再同步控制电路105把接受了错误通知作为契机,对正常CPU总线上所连接的CPU发出中断。通过中断处理,把CPU分配给固件。
此外,切换/再同步控制电路105监视复位控制寄存器103,如果确认全部CPU已建立了保存完成标志,就向全部CPU发出复位指令。即切换/再同步控制电路105是进行发生异常的异常发生CPU和正常CPU的初始化的初始化单元。
此外,例如当在冗余CPU的再同步处理中,在异常发生CPU中发生错误,再次发生冗余CPU的冗余(同步)崩溃的情况下,切换/再同步控制电路105接受来自固件的指示,只把正常CPU总线设为有效,只把通过正常CPU发出的指令对全局地址交叉开关5-1投入。
切换开关106按照切换/再同步控制电路105的指示,进行CPU总线的切换。通过切换开关106进行CPU总线的切换,例如决定把通过CPU总线16-1或CPU总线16-2中的哪个CPU总线发出的指令作为LRA包202对全局地址交叉开关5-1投入。
主队列107把CPU发出的指令变换为芯片组(chipset)的LRA包202并保持,把所保持的LRA包202经由切换开关106对全局地址交叉开关5-1投入。在指令完成之前由主队列107保持LRA包202,当在途中发生重试的情况下(即从本***板以外的***板指示本***板发出的指令的重试的情况下),对全局地址交叉开关5-1再投入LRA包202。
LCST生成电路108从全局地址交叉开关5-1接收GSA包,并生成LCST包,把所生成的LCST包对全局地址交叉开关5-1投入。具体而言,LCST生成电路108如果接收到GSA包,就参照重试控制寄存器109,确认在重试控制寄存器109中是否建立了后面描述的再同步中标志。当在重试控制寄存器109中建立了再同步中标志的情况下,LCST生成电路108生成表示对GSA包中包含的指令的发出源指示重试的处理可否信息。当在重试控制寄存器109中没有建立再同步中标志的情况下,LCST生成电路108接受GSA包中包含的指令,把所接受的指令作为本***板(SB#0)应该执行的指令对从属请求控制电路111通知,并且本***板生成表示能继续执行GSA包中包含的指令的处理可否信息。
此外,LCST生成电路108参照探听标签110,生成所述的数据状态信息。而且,LCST生成电路108生成包含所生成的处理可否信息和数据状态信息的LCST包,把LCST包对全局地址交叉开关5-1投入。
重试控制寄存器109是存储表示是否关于本***板的CPU进行了再同步处理的信息的寄存器。如果开始了本***板的CPU的再同步处理,为了抑制从其他***板对本***板发出的指令,就按照固件的指示,在重试控制寄存器109中建立再同步中标志。此外,在内部信息在本***板内的包含单***CPU(异常CPU)和正常CPU在内的全部CPU内被复原时,固件如果对北桥芯片11指示了解除对外部指令的抑制,则将重试控制寄存器109的再同步中标志设定为无效。
如上所述,当在重试控制寄存器109中建立了再同步中标志的情况下,由LCST生成电路108生成包含表示指示重试的处理可否信息的LCST包,并对全局地址交叉开关5-1投入。即固件和LCST生成电路108是抑制从SB#0的外部装置(例如图15所示的SB#N)对SB#0发出的指令的指令抑制单元。
此外,通过在重试控制寄存器109中把再同步中标志设定为无效,从而LCST生成电路108接受从全局地址交叉开关5-1接收到的GSA包中包含的指令。其结果,能够使冗余CPU执行所接受的指令,并重新开始冗余CPU的同步动作。即,固件是在内部信息在异常发生CPU内和正常CPU内已被复原的情况下,解除对***板(例如SB#0)发出的指令的抑制,重新开始异常发生CPU和正常CPU的同步动作的指令抑制解除单元。
探听标签110是保持CPU内部的高速缓存行的状态信息(高速缓存器状态信息)的存储单元。后面描述的从属请求控制电路111更新探听标签内的高速缓存器状态信息。
从属请求控制电路111从全局地址交叉开关5-1接收GCST包,根据GCST包中包含的信息和从LCST生成电路108通知的本***板(SB#0)应该执行的指令,生成存储器从属请求、CPU从属请求、FWH从属请求。而且,从属请求控制电路111对存储器控制器14-1发送存储器从属请求,对CPU发送CPU从属请求,对FWH13-1发送FWH从属请求。此外,从属请求控制电路111按照FWH13-1中保存的固件的指示,更新重试控制寄存器109、探听标签110、再同步控制寄存器104和复位控制寄存器103的存储内容。
此外,例如,当在冗余CPU的再同步处理中,在异常发生CPU中发生错误,再次发生冗余CPU的冗余(同步)崩溃的情况下,北桥芯片11再次停止异常发生CPU所连接的CPU总线的动作。据此,从属请求控制电路111接受固件的指示,对全部CPU发送CPU从属请求,但是,只由正常CPU执行CPU从属请求。
指令译码器112对从***控制装置7对北桥芯片11发出的指令进行译码,根据指令的译码结果,设定各***板的板编号和所属分区,并且进行针对切换控制寄存器102、重试控制寄存器109、再同步控制寄存器104的设定值的写入/读入。指令译码器112例如进行针对切换控制寄存器102的切换/再同步控制电路105的动作模式的设定或从切换控制寄存器102读出动作模式。此外,指令译码器112从重试控制寄存器109读出表示是否建立了再同步中标志的信息。此外,指令译码器112进行针对再同步控制寄存器104的再同步可能上限值的设定或者从再同步控制寄存器104读出表示是否已建立再同步可否标志的信息。
下面,说明SB#0具有的存储器控制器14-1的功能。存储器控制器14-1进行与从北桥芯片11内的从属请求控制电路111发送的从属请求的内容相应的处理。存储器控制器14-1例如进行从CPU向存储器15-1的数据写入。此外,存储器控制器14-1例如把通过图15所示的全局数据交叉开关6-1、数据总线20-1从SB#0以外的其他***板对SB#0发送的数据对存储器15-1写入。
此外,存储器控制器14-1从存储器15-1读出数据,按照固件的指示,把读出的数据对CPU发送。此外,存储器控制器14-1从存储器15-1读出数据,并把读出的数据通过数据总线20-2、图15所示的全局数据交叉开关6-1对SB#0以外的其他***板发送。
接着,说明SB#0具有的FWH13-1的功能。FWH13-1是保存固件的ROM。FWH13-1中保存的固件除了具有所述的各种功能(例如,作为保存单元、复原单元、判断单元、复原中断单元、指令抑制单元、指令抑制解除单元的功能)以外,还进行与从从属请求控制电路111发送的FWH从属请求的内容相应的处理。例如,该固件向CPU发送数据。
下面,参照图15~图18,说明本发明的动作。图17和图18是表示本实施方式的冗余CPU的再同步处理流程的一个例子的图。
首先,图16中所示的CPU12-0和CPU12-2、CPU12-1和CPU12-3分别是被冗余化的冗余CPU。北桥芯片11监视冗余CPU的同步崩溃。如果CPU内部检测出错误、由检查电路100检测出错误,或者由CPU总线同步检查电路101检测出错误,就对切换/再同步控制电路105进行错误通知,在图17的步骤S1中,切换/再同步控制电路105检测出冗余CPU的同步崩溃(步骤S1)。例如,若在图16中的CPU12-2中发生错误,而检测到冗余CPU的同步崩溃,切换/再同步控制电路105就停止发生错误的CPU12-2所连接的异常CPU总线(例如CPU总线16-2)的动作(步骤S2)。在步骤S2中,例如在检测到CPU内部的错误或者由检查电路100检测出错误的情况下,切换/再同步控制电路105把发生错误的CPU总线设为无效。在进行了基于CPU总线同步检查电路101的错误检出的情况下,切换/再同步控制电路105按照切换控制寄存器102的设定内容,把异常CPU总线设为无效。
接着,如果完成了异常CPU总线的动作的停止,切换/再同步控制电路105就将表示在CPU总线中发生异常的信息(例如,CPU总线16-2的停止)向本***板的有效的CPU总线上所连接的CPU(正常CPU)进行中断通知(步骤S3)。如果完成了向正常CPU的中断通知,固件就参照再同步控制寄存器104中设定的再同步可否标志,判断可否实施冗余CPU的再同步(步骤S4)。
在固件判断为无法实施冗余CPU的再同步的情况下,固件指示切换/再同步控制电路105,把正常CPU总线的动作设为有效,利用正常CPU总线继续动作(步骤S17)。在固件判断为能够实施冗余CPU的再同步(OK)的情况下,固件对北桥芯片11指示抑制外部指令(步骤S5)。具体而言,从属请求控制电路111按照固件的指示,在重试控制寄存器109中建立再同步中标志。固件在重试控制寄存器109中建立再同步中标志,由此,LCST生成电路108响应从图15所示的全局地址交叉开关5-1接收到的GSA包,生成包含表示对GSA包中所包含的指令的发出源指示重试的处理可否信息的LCST包,并对全局地址交叉开关5-1投入。
从而,针对本***板的指令的重试在作为该指令的发出源的其他***板中被重复,从其他***板发出的LRA包202停留在其他***板内的主队列中。其结果,完全抑制了从以后的其他***板对本***板发出的指令。
接着,固件指示正常CPU总线上所连接的正常CPU(例如,连接在CPU总线16-1上的CPU12-0、12-1),把该正常CPU的内部信息保存到存储器15-1中(步骤S6)。在步骤S6中,例如连接在正常CPU总线上的正常CPU把包含以将内部信息向存储器15-1保存为内容的指令的LRA包202向图15所示的全局地址交叉开关5-1投入。而且,进行如下的一系列的处理:基于接受了LRA包202的投入的全局地址交叉开关5-1的针对各***板的GSA包的发送、从各***板向全局地址交叉开关5-1的LCST包的投入、从全局地址交叉开关5-1向各***板的GCST包的发送、基于接收到GCST包的***板具有的从属请求控制电路的从属请求的发出之类的处理,将上述正常CPU的内部信息保存到存储器15-1中。
此外,固件对连接在正常CPU总线上的CPU(例如连接在CPU总线106-1上的CPU12-0、12-1)进行指示,把正常CPU内部保持的高速缓存器数据保存到存储器15-1(步骤S7)。在步骤S7中,进一步地,固件在每当完成向存储器15-1保存高速缓存器数据时,就在复位控制寄存器103内建立与完成了高速缓存器数据的保存的CPU相对应的保存完成标志。
固件等待全部CPU的高速缓存器数据被保存到存储器15-1(步骤S8)。如果复位控制寄存器103的与各CPU相对应的标志全部被建立,全部CPU的高速缓存器数据被保存到存储器15-1,则在图18的步骤S9中,切换/再同步控制电路105清除探听标签110中保持的CPU的高速缓存器状态信息(步骤S9)。然后,切换/再同步控制电路105对本***板内的全部CPU发出复位(步骤S10)。
然后,固件对全部CPU请求在上述图17的步骤S6中保存到存储器15-1中的CPU的内部信息的复原(步骤S11)。连接在异常CPU总线(例如CPU总线16-2)上的CPU(例如CPU12-2、CPU12-3)使用作为冗余结构的对的正常CPU(例如CPU12-0、12-1)的内部信息,进行本CPU的内部信息的复原。例如,图16所示的CPU12-3从存储器15-1读出CPU12-1的内部信息,并在本CPU内进行复原;CPU12-2从存储器15-1读出CPU12-0的内部信息,并在本CPU内进行复原。另外,CPU12-0、CPU 12-1分别从存储器15-1读出CPU12-0的内部信息、CPU12-1的内部信息,并在本CPU内进行复原。
对上述步骤S11的处理顺序的例子进行说明。从回件接受了内部信息的复原请求的各CPU把包含内部信息复原指令的LRA包202对全局地址交叉开关5-1投入。而且,进行如下的一系列的处理:基于接受了LRA包202的投入的全局地址交叉开关5-1的针对各***板的GSA包的发送、从各***板向全局地址交叉开关5-1的LCST包的投入、从全局地址交叉开关5-1向各***板的GCST包的发送、基于接收到GCST包的***板具有的从属请求控制电路的从属请求的发出之类的处理,将上述正常CPU的内部信息从存储器15-1向CPU内复原。
固件判断是否在全部CPU中完成了内部信息的复原(步骤S12)。如果固件判断为在全部CPU中完成了内部信息的复原,固件就对北桥芯片11指示解除对外部指令的抑制(步骤S13)。具体而言,固件指示从属请求控制电路111,把重试控制寄存器109的再同步中标志设定为无效。通过将再同步中标志设定为无效,从而,LCST生成电路108响应从全局地址交叉开关5-1接收到的GSA包,生成包含表示本***板能够继续执行GSA包中包含的指令的处理可否信息的LCST包。其结果,本***板能够接受来自其他***板的指令并使冗余CPU执行该指令,完成冗余CPU的再同步。
如果完成了对外部指令的抑制解除,固件就进行再同步的实施次数的校验(步骤S14),返回图17的步骤S1。在图18的步骤S14中,固件比较再同步的实施次数和再同步控制寄存器104中设定的再同步可能上限值,在再同步的实施次数低于再同步可能上限值的情况下,判断为冗余CPU的再同步是可能的,在再同步控制寄存器104中,例如设定标志1作为再同步可否标志。在再同步的实施次数是再同步可能上限值以上的情况下,固件判断为冗余CPU的再同步是不可能的,在再同步控制寄存器104中,例如设定标志0作为再同步可否标志。
当在保存到存储器15-1中的CPU的内部信息的复原处理的途中(参照步骤S11)、固件等待关于全部CPU的内部信息的复原完成的途中(参照步骤S12),或者北桥芯片11进行对外部指令的抑制解除处理的途中(参照步骤S13),如果检测到冗余CPU的同步崩溃,北桥芯片11就再次停止异常发生CPU所连接的CPU总线的动作,固件对北桥芯片11指示解除对外部指令的抑制(步骤S15)。然后,利用正常CPU总线继续动作(步骤S16)。
在步骤S16中,固件对从属请求控制电路111进行指示,对全部CPU发送CPU从属请求,但是异常CPU所连接的CPU总线已处于停止状态,所以只用正常CPU执行本***板应该执行的处理。此外,固件指示切换/再同步控制电路105,只把正常CPU总线设为有效,只把通过正常CPU发出的指令对全局地址交叉开关5-1进行投入。
另外,根据本发明的一个实施方式,也可以构成为,固件不在步骤S14中,而在图17的步骤S4的处理中进行图18的步骤S14的再同步的实施次数的校验。即在图17的步骤S4中,固件判断冗余CPU的再同步的实施次数是否为预先在存储单元中存储的冗余CPU的再同步的实施次数的上限值以上,在判断为上述冗余CPU的再同步的实施次数为冗余CPU的再同步的实施次数的上限值以上的情况下,进入图17的步骤S17。固件在判断为上述冗余CPU的再同步的实施次数低于冗余CPU的再同步的实施次数的上限值的情况下,进入图17的步骤S5。
工业上的可利用性
根据本发明,例如在发生了CPU间的同步崩溃时,不用重启OS,就能进行冗余CPU的再同步处理。此外,本发明的冗余CPU的再同步处理不依赖于在***上工作的OS具有的功能,所以能够使用通用的OS实现。
此外,根据本发明,例如当在冗余CPU中的任意一个CPU中发生了固定故障时,能够继续正常CPU的运行。此外,根据本发明,例如当在冗余CPU的再同步处理的途中,在异常发生CPU中再次发生错误时,能够重新开始正常CPU的运行。因此,根据本发明,使可以最大限度利用***中搭载的CPU资源的连续运行成为可能。

Claims (9)

1.一种信息处理装置,其特征在于:
具有同时执行同一处理的相互冗余化的第一和第二运算处理装置、与所述第一和第二运算处理装置连接的第一控制装置、通过所述第一控制装置连接的存储装置及第二控制装置,
所述第一控制装置具有:
同步崩溃检测单元,通过检测出在所述第一和第二运算处理装置中的任意一个运算处理装置中发生的异常,来检测出同步崩溃;
指令发出停止单元,使被检测到所述异常的运算处理装置的指令的发出停止;
指令抑制单元,抑制从所述第二控制装置对所述第一控制装置发出的指令;
保存单元,使所述第一和第二运算处理装置中的正常的运算处理装置具有的内部信息保存到所述存储装置中;
初始化单元,进行所述第一和第二运算处理装置的初始化;
复原单元,把保存到所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原;和
指令抑制解除单元,在所述内部信息在所述第一和第二运算处理装置中已被复原的情况下,解除对从所述第二控制装置对所述第一控制装置发出的指令的抑制,使所述第一和第二运算处理装置的同步动作重新开始。
2.根据权利请求1所述的信息处理装置,其特征在于:
所述第一控制装置还具有判断单元,该判断单元,在被检测到所述异常的运算处理装置的指令发出被停止的情况下,判断重新开始所述第一和第二运算处理装置的同步动作的次数是否是规定次数以上,在重新开始所述同步动作的次数是所述规定次数以上的情况下,使所述复原单元把被保存在所述存储装置中的内部信息只在所述第一和第二运算处理装置中的所述正常的运算处理装置中复原。
3.根据权利请求1所述的信息处理装置,其特征在于:
所述第一控制装置还具有复原中断单元,该复原中断单元,当在将被保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的途中,所述同步崩溃检测单元再次检测到被检测出所述异常的运算处理装置中的异常的情况下,中断针对被检测到所述异常的运算处理装置的所述内部信息的复原,只使所述内部信息已被复原的正常的运算处理装置的动作重新开始,解除对从所述第二控制装置对所述第一控制装置发出的指令的抑制。
4.一种控制方法,其特征在于:
是具有同时执行同一处理的相互冗余化的第一和第二运算处理装置、与所述第一和第二运算处理装置连接的第一控制装置、通过所述第一控制装置连接的存储装置及第二控制装置的信息处理装置的控制方法,包括:
通过检测出在所述第一和第二运算处理装置中的任意一个的运算处理装置中发生的异常,来检测出同步崩溃的步骤;
使被检测到所述异常的运算处理装置的指令的发出停止的步骤;
抑制从所述第二控制装置对所述第一控制装置发出的指令的步骤;
使所述第一和第二运算处理装置中的正常的运算处理装置具有的内部信息保存到所述存储装置中的步骤;
进行所述第一和第二运算处理装置的初始化的步骤;
把保存到所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的步骤;和
在所述内部信息在所述第一和第二运算处理装置中已被复原的情况下,解除对从所述第二控制装置对所述第一控制装置发出的指令的抑制,重新开始所述第一和第二运算处理装置的同步动作的步骤。
5.根据权利请求4所述的控制方法,其特征在于:
还具有:在被检测到所述异常的运算处理装置的指令发出被停止的情况下,判断重新开始所述第一和第二运算处理装置的同步动作的次数是否是规定次数以上的步骤;和
在重新开始所述同步动作的次数在所述规定次数以上的情况下,使被保存在所述存储装置中的内部信息只在所述第一和第二运算处理装置中的所述正常的运算处理装置中复原的步骤。
6.根据权利请求4所述的控制方法,其特征在于:
还具有:当在将被保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的途中,再次检测到被检测出所述异常的运算处理装置中的异常的情况下,中断针对被检测到所述异常的运算处理装置的所述内部信息的复原的步骤;
只重新开始所述内部信息已被复原的正常的运算处理装置的动作的步骤;和
解除对从所述第二控制装置向所述第一控制装置发出的指令的抑制的步骤。
7.一种信息处理装置,其特征在于:
具备具有同时执行同一处理的相互冗余化的第一和第二运算处理装置、与所述第一和第二运算处理装置连接的第一控制装置和与所述第一控制装置连接的存储装置的第一***板;具有第二控制装置的第二***板;和中继所述第一和第二***板的中继装置,
所述第一***板具有:
指令投入单元,把从所述第一和第二运算处理装置中的任意一个运算处理装置发出的指令通过所述中继装置对所述第二***板投入;
同步崩溃检测单元,通过检测出在所述第一和第二运算处理装置中的任意一个运算处理装置中发生的异常,来检测出同步崩溃;
指令发出停止单元,指示所述指令投入单元,使被检测到异常的运算处理装置的指令发出停止;
指令抑制单元,抑制从所述第二***板对所述第一控制装置投入的指令;
保存单元,使所述第一和第二运算处理装置中的正常的运算处理装置具有的内部信息保存到所述存储装置中;
初始化单元,进行所述第一和第二运算处理装置的初始化;
复原单元,把保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原;和
指令抑制解除单元,在所述内部信息在所述第一和第二运算处理装置中已被复原的情况下,解除对从所述第二***板向所述第一控制装置发出的指令的抑制,使所述第一和第二运算处理装置的同步动作重新开始。
8.根据权利请求7所述的信息处理装置,其特征在于:
所述第一***板还具有判断单元,该判断单元,在被检测到所述异常的运算处理装置的指令发出被停止的情况下,判断重新开始所述第一和第二运算处理装置的同步动作的次数是否是规定次数以上,在重新开始所述同步动作的次数是所述规定次数以上的情况下,使所述复原单元把被保存在所述存储装置中的内部信息只在所述第一和第二运算处理装置中的所述正常的运算处理装置中复原。
9.根据权利请求7所述的信息处理装置,其特征在于:
所述第一***板还具有复原中断单元,该复原中断单元,当在将被保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的途中,所述同步崩溃检测单元再次检测到被检测出所述异常的运算处理装置中的异常的情况下,中断针对被检测到所述异常的运算处理装置的所述内部信息的复原,只使所述内部信息已被复原的正常的运算处理装置的动作重新开始,解除对从所述第二控制装置向所述第一控制装置发出的指令的抑制。
CN2007801008028A 2007-09-25 2007-09-25 信息处理装置和控制方法 Pending CN103443774A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/068503 WO2009040879A1 (ja) 2007-09-25 2007-09-25 情報処理装置及び制御方法

Publications (1)

Publication Number Publication Date
CN103443774A true CN103443774A (zh) 2013-12-11

Family

ID=40510793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007801008028A Pending CN103443774A (zh) 2007-09-25 2007-09-25 信息处理装置和控制方法

Country Status (6)

Country Link
US (1) US8181064B2 (zh)
EP (1) EP2204736A4 (zh)
JP (1) JP5299281B2 (zh)
KR (1) KR101038464B1 (zh)
CN (1) CN103443774A (zh)
WO (1) WO2009040879A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004780A (zh) * 2010-11-23 2011-04-06 中兴通讯股份有限公司 一种数据同步方法及装置
JP5983744B2 (ja) * 2012-06-25 2016-09-06 富士通株式会社 情報処理装置および情報処理装置の故障検出方法
US10140309B2 (en) * 2014-06-10 2018-11-27 Alfresco Software, Inc. File tracking on client machines synchronized with a content management system repository
JP6901677B2 (ja) * 2017-04-17 2021-07-14 富士通株式会社 管理プログラム、管理装置および管理方法
KR20210058566A (ko) 2019-11-14 2021-05-24 삼성전자주식회사 전자 시스템, 그것의 결함 검출 방법, 시스템 온 칩 및 버스 시스템

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0306244A2 (en) * 1987-09-04 1989-03-08 Digital Equipment Corporation Fault tolerant computer system with fault isolation
CN1047578A (zh) * 1989-05-17 1990-12-05 国际商业机器公司 使cpu与和外面的数据处理装置交互作用的硬件隔离的方法和装置
CN1164710A (zh) * 1996-03-19 1997-11-12 株式会社东芝 分散存储型多处理机***及故障恢复方法
US5748873A (en) * 1992-09-17 1998-05-05 Hitachi,Ltd. Fault recovering system provided in highly reliable computer system having duplicated processors
US5915082A (en) * 1996-06-07 1999-06-22 Lockheed Martin Corporation Error detection and fault isolation for lockstep processor systems
US6247144B1 (en) * 1991-01-31 2001-06-12 Compaq Computer Corporation Method and apparatus for comparing real time operation of object code compatible processors
US20020144177A1 (en) * 1998-12-10 2002-10-03 Kondo Thomas J. System recovery from errors for processor and associated components
CN1434941A (zh) * 1999-12-21 2003-08-06 英特尔公司 纠正软错误的固件机制
US20040017220A1 (en) * 2000-06-30 2004-01-29 To Hing ?Quot;Thomas?Quot; Y. Dynamic current calibrated driver circuit
US20040123201A1 (en) * 2002-12-19 2004-06-24 Nguyen Hang T. On-die mechanism for high-reliability processor
CN1764080A (zh) * 2005-11-15 2006-04-26 中兴通讯股份有限公司 一种实现主备倒换的装置和方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589090A (en) * 1982-09-21 1986-05-13 Xerox Corporation Remote processor crash recovery
US5153881A (en) * 1989-08-01 1992-10-06 Digital Equipment Corporation Method of handling errors in software
JPH03253473A (ja) 1990-03-02 1991-11-12 Hino Motors Ltd パワーステアリング装置
US5214652A (en) * 1991-03-26 1993-05-25 International Business Machines Corporation Alternate processor continuation of task of failed processor
JP2561181B2 (ja) * 1991-05-13 1996-12-04 財団法人鉄道総合技術研究所 クロック同期形2重系回路
JP2536789Y2 (ja) * 1991-08-28 1997-05-28 株式会社ユニシアジェックス マイクロコンピュータシステムの誤動作防止装置
JPH0630069A (ja) 1992-07-13 1994-02-04 Nec Corp マルチサブキャリアによるqam伝送方式
JPH0635736A (ja) * 1992-07-15 1994-02-10 Nec Corp 二重化処理装置
JPH076049A (ja) * 1993-06-15 1995-01-10 Hitachi Ltd 多重プロセッサにおける割込み同期化方式
JP3253473B2 (ja) * 1995-01-27 2002-02-04 富士通株式会社 二重化された共用メモリの等価性回復処理方法および装置
US6393582B1 (en) * 1998-12-10 2002-05-21 Compaq Computer Corporation Error self-checking and recovery using lock-step processor pair architecture
US6470462B1 (en) 1999-02-25 2002-10-22 Telefonaktiebolaget Lm Ericsson (Publ) Simultaneous resynchronization by command for state machines in redundant systems
US6654648B2 (en) * 2000-04-03 2003-11-25 Toyota Jidosha Kabushiki Kaisha Technique of monitoring abnormality in plurality of CPUs or controllers
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
US7275180B2 (en) * 2003-04-17 2007-09-25 International Business Machines Corporation Transparent replacement of a failing processor
US7200772B2 (en) * 2003-04-29 2007-04-03 Intel Corporation Methods and apparatus to reinitiate failed processors in multiple-processor systems
US7502958B2 (en) * 2004-10-25 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for providing firmware recoverable lockstep protection
JP4117684B2 (ja) 2004-12-20 2008-07-16 日本電気株式会社 フォルトトレラント・二重化コンピュータシステムとその制御方法
JP4117685B2 (ja) 2004-12-21 2008-07-16 日本電気株式会社 フォルトトレラント・コンピュータとそのバス選択制御方法
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
US7496786B2 (en) * 2006-01-10 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining lock step operation
JP4829038B2 (ja) * 2006-08-17 2011-11-30 富士通株式会社 マルチプロセッサシステム
US7512772B2 (en) * 2007-01-08 2009-03-31 International Business Machines Corporation Soft error handling in microprocessors
EP2372554B1 (en) * 2007-03-29 2013-03-20 Fujitsu Limited Information processing device and error processing method

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0306244A2 (en) * 1987-09-04 1989-03-08 Digital Equipment Corporation Fault tolerant computer system with fault isolation
CN1047578A (zh) * 1989-05-17 1990-12-05 国际商业机器公司 使cpu与和外面的数据处理装置交互作用的硬件隔离的方法和装置
US6247144B1 (en) * 1991-01-31 2001-06-12 Compaq Computer Corporation Method and apparatus for comparing real time operation of object code compatible processors
US5748873A (en) * 1992-09-17 1998-05-05 Hitachi,Ltd. Fault recovering system provided in highly reliable computer system having duplicated processors
CN1164710A (zh) * 1996-03-19 1997-11-12 株式会社东芝 分散存储型多处理机***及故障恢复方法
US5915082A (en) * 1996-06-07 1999-06-22 Lockheed Martin Corporation Error detection and fault isolation for lockstep processor systems
US20020144177A1 (en) * 1998-12-10 2002-10-03 Kondo Thomas J. System recovery from errors for processor and associated components
US6948092B2 (en) * 1998-12-10 2005-09-20 Hewlett-Packard Development Company, L.P. System recovery from errors for processor and associated components
CN1434941A (zh) * 1999-12-21 2003-08-06 英特尔公司 纠正软错误的固件机制
US20040017220A1 (en) * 2000-06-30 2004-01-29 To Hing ?Quot;Thomas?Quot; Y. Dynamic current calibrated driver circuit
US20040123201A1 (en) * 2002-12-19 2004-06-24 Nguyen Hang T. On-die mechanism for high-reliability processor
CN1764080A (zh) * 2005-11-15 2006-04-26 中兴通讯股份有限公司 一种实现主备倒换的装置和方法

Also Published As

Publication number Publication date
JPWO2009040879A1 (ja) 2011-01-13
US20100191942A1 (en) 2010-07-29
US8181064B2 (en) 2012-05-15
KR101038464B1 (ko) 2011-06-01
EP2204736A1 (en) 2010-07-07
EP2204736A4 (en) 2012-01-11
KR20100046253A (ko) 2010-05-06
JP5299281B2 (ja) 2013-09-25
WO2009040879A1 (ja) 2009-04-02

Similar Documents

Publication Publication Date Title
JP5347414B2 (ja) 同期制御装置,情報処理装置及び同期管理方法
JP2006195821A (ja) 情報処理システムの制御方法、情報処理システム、ダイレクトメモリアクセス制御装置、プログラム
US7631226B2 (en) Computer system, bus controller, and bus fault handling method used in the same computer system and bus controller
CN103443774A (zh) 信息处理装置和控制方法
EP1703392A2 (en) Method and apparatus for detecting failures in a partitioned large scale computer system
EP1890439B1 (en) Data processing management apparatus, mode management apparatus and mode management method
CN116266150A (zh) 一种业务恢复方法、数据处理单元及相关设备
JP5151580B2 (ja) コンピュータシステムおよびバス制御装置
JPH0375834A (ja) パリティの置換装置及び方法
JP4487756B2 (ja) コンピュータシステム及びシステム監視プログラム
US8264948B2 (en) Interconnection device
JP4572138B2 (ja) サーバ装置、サーバシステム、及びサーバシステムでの系切り換え方法
JP4131263B2 (ja) マルチノードシステム、ノード装置、ノード間クロスバスイッチ及び障害処理方法
JPWO2013168258A1 (ja) 待機冗長二重化装置
JP4983806B2 (ja) 二重化タイマを用いたシステム監視装置、および監視方法
US9959173B2 (en) Node, arithmetic processing device, and arithmetic processing method
JP2004013723A (ja) 共有メモリを使ったクラスタ構成を採用した情報処理システムの障害処理装置と方法
JP3001818B2 (ja) マルチプロセッサ立ち上げ管理装置
JP4137450B2 (ja) バックアップデータにより処理継続可能なデータ処理装置
JP4066950B2 (ja) コンピュータシステムおよびその保守方法
JPH11120154A (ja) コンピュータシステムにおけるアクセス制御装置および方法
JP2007026038A (ja) パス監視システム,パス監視方法,およびパス監視プログラム
JP2000276364A (ja) 障害復旧方法、中央処理装置及び中央処理システム
KR101273875B1 (ko) 데이터전송 제어방법 및 그 장치
JPS6113627B2 (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131211