信息处理装置和控制方法

文档序号:6484390阅读:137来源:国知局
信息处理装置和控制方法
【专利摘要】北桥芯片(11)如果检测到冗余CPU的同步崩溃,就使发生错误的异常CPU总线的动作停止,FWH(13-1)内的固件对北桥芯片(11)指示对外部指令的抑制。此外,固件把连接在正常CPU总线上的正常CPU的内部信息和高速缓存器数据保存到存储器(15-1)中,北桥芯片(11)对本系统板内的全部CPU发出复位。接着,对于全部CPU,固件把保存在所述存储器(15-1)中的CPU的内部信息复原,对北桥芯片(11)指示解除对外部指令的抑制。
【专利说明】信息处理装置和控制方法
【技术领域】
[0001]本发明涉及把多个运算处理装置(例如CPU)冗余化,例如作为冗余CPU,进行同步动作的信息处理装置和信息处理装置的控制方法,特别涉及在发生运算处理装置之间的同步崩溃时,进行被冗余化的运算处理装置的再同步的信息处理装置和信息处理装置的控制方法。
【背景技术】
[0002]在以UNIX (注册商标)或Linux等开源(open source) OS工作,多个CPU被冗余化的系统(多处理器系统)中,由于构成冗余CPU的CPU对中的一方的CPU暂时故障,发生向进行冗余(同步)运行的另一方CPU的退缩之后,为了使CPU再次回到冗余结构,需要暂停系统并进行冗余CPU的再同步和OS的再起动。这里,进行同步运行的CPU是同时执行同一处理的CPU。
[0003]作为关于由多个处理器构成的多处理器系统的具体的技术,以下的专利文献I记载了如下的多重系统:把3个以上的处理器中的一个指定为通常模式,把剩下的处理器指定为用于监视通常模式的处理器的执行状态的监视模式,每个监视模式的处理器都产生了异常信号时,判断为通常模式的处理器异常,其中一个监视模式的处理器产生了异常信号时,判断为在监视模式的处理器中产生了异常。
[0004]此外,以下的专利文献2记载了如下的冗余系统:例如当在分别设置在被冗余化的第一 CPU、第二 CPU中的状态装置中的第二 CPU内的特定的状态装置中产生异常,需要进行再同步时,再同步服务器对特定的状态装置和第一 CPU内的与特定的状态装置对应的状态装置发出再同步指令,重启双方的状态装置,实现状态装置的再同步。
[0005]专利文献1:日本特公平6-30069号公报
[0006]专利文献2:日本特表2002-538521号公报
[0007]如上所述,以往,在发生了向进行同步动作的冗余CPU中的任意一个CPU的退缩之后,为了使CPU再次回到冗余结构,需要暂停系统并进行冗余CPU的再同步和OS的再起动。可是,在要求连续工作的主系统中,如果进行系统的暂停,就产生无法连续工作的问题。
[0008]此外,在所述专利文献I中记载的以往技术中,需要使用具有可以接收从检测出处理器异常的控制部发出的用于停止处理器的动作的控制信号的接口的专用处理器)。此夕卜,在该以往技术中,即使在存在软错误等引起的处理器内部的暂时的故障时,也把处理器从系统切离。此外,以往技术是根据多数决定,判定异常处理器的技术,所以在处理器的剩余数成为2个时,如果检测到异常,就会使双方的处理器停止。
[0009]此外,所述专利文献2中记载的以往技术是,即使重启与产生了异常的状态装置相关联的全部状态装置,对其他状态装置的状态也不产生影响的特定的系统中的状态装置的再同步技术。因此,以往技术的状态装置的再同步处理依赖于在系统上工作的OS具有的功能,在不具有这样的功能的通用OS上无法使用。
[0010]本发明的目的在于,提供在多个运算处理装置被冗余化而作为冗余运算处理装置进行同步动作的信息处理装置中,在发生了无法取得被冗余化的运算处理装置之间的同步之类的同步崩溃时,不用重启OS,而进行冗余运算处理装置的再同步处理的信息处理装置。
[0011]此外,本发明的目的在于,提供在多个运算处理装置被冗余化而作为冗余运算处理装置进行同步动作的信息处理装置中,在发生了无法取得被冗余化的运算处理装置之间的同步之类的同步崩溃时,不用重启OS,而进行冗余运算处理装置的再同步处理的控制方法。
[0012]本发明的信息处理装置是具有同时执行同一处理的相互冗余化的第一和第二运算处理装置、与所述第一和第二运算处理装置连接的第一控制装置、通过所述第一控制装置连接的存储装置及第二控制装置的信息处理装置,所述第一控制装置具有:同步崩溃检测单元,通过检测出在所述第一和第二运算处理装置中的任意一个的运算处理装置中发生的异常,来检测出同步崩溃;指令发出停止单元,使被检测到所述异常的运算处理装置的指令的发出停止;指令抑制单元,抑制从所述第二控制装置对所述第一控制装置发出的指令;保存单元,使所述第一和第二运算处理装置中的正常的运算处理装置具有的内部信息保存到所述存储装置中;初始化单元,进行所述第一和第二运算处理装置的初始化;复原单元,把保存到所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原;和指令抑制解除单元,在所述内部信息在所述第一和第二运算处理装置中已被复原的情况下,解除对从所述第二控制装置对所述第一控制装置发出的指令的抑制,使所述第一和第二运算处理装置的同步动作重新开始。
[0013]优选,在本发明的信息处理装置中,所述第一控制装置还具有判断单元,该判断单元,在被检测到所述异常的运算处理装置的指令发出被停止的情况下,判断重新开始所述第一和第二运算处理装置的同步动作的次数是否是规定次数以上,在重新开始所述同步动作的次数是所述规定次数以上的情况下,使所述复原单元把被保存在所述存储装置中的内部信息只在所述第一和第二运算处理装置中的所述正常的运算处理装置中复原。
[0014]优选,在本发明的信息处理装置中,所述第一控制装置还具有复原中断单元,该复原中断单元,当在将被保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的途中,所述同步崩溃检测单元再次检测到被检测出所述异常的运算处理装置中的异常的情况下,中断针对被检测到所述异常的运算处理装置的所述内部信息的复原,只使所述内部信息已被复原的正常的运算处理装置的动作重新开始,解除对从所述第二控制装置对所述第一控制装置发出的指令的抑制。
[0015]此外,本发明的控制方法是具有同时执行同一处理的相互冗余化的第一和第二运算处理装置、与所述第一和第二运算处理装置连接的第一控制装置、通过所述第一控制装置连接的存储装置及第二控制装置的信息处理装置的控制方法,包括:通过检测出在所述第一和第二运算处理装置中的任意一个的运算处理装置中发生的异常,来检测出同步崩溃的步骤;使被检测到所述异常的运算处理装置的指令的发出停止的步骤;抑制从所述第二控制装置对所述第一控制装置发出的指令的步骤;使所述第一和第二运算处理装置中的正常的运算处理装置具有的内部信息保存到所述存储装置中的步骤;进行所述第一和第二运算处理装置的初始化的步骤;把保存到所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的步骤;和在所述内部信息在所述第一和第二运算处理装置中已被复原的情况下,解除对从所述第二控制装置对所述第一控制装置发出的指令的抑制,重新开始所述第一和第二运算处理装置的同步动作的步骤。
[0016]优选,在本发明的控制方法中,还具有:在被检测到所述异常的运算处理装置的指令发出被停止的情况下,判断重新开始所述第一和第二运算处理装置的同步动作的次数是否是规定次数以上的步骤;和在重新开始所述同步动作的次数在所述规定次数以上的情况下,使被保存在所述存储装置中的内部信息只在所述第一和第二运算处理装置中的所述正常的运算处理装置中复原的步骤。
[0017]优选,在本发明的控制方法中,还具有:当在将被保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的途中,再次检测到被检测出所述异常的运算处理装置中的异常的情况下,中断针对被检测到所述异常的运算处理装置的所述内部信息的复原的步骤;只重新开始所述内部信息已被复原的正常的运算处理装置的动作的步骤;和解除对从所述第二控制装置向所述第一控制装置发出的指令的抑制的步骤。
[0018]此外,本发明的信息处理装置,具备具有同时执行同一处理的相互冗余化的第一和第二运算处理装置、与所述第一和第二运算处理装置连接的第一控制装置和与所述第一控制装置连接的存储装置的第一系统板;具有第二控制装置的第二系统板;和中继所述第一和第二系统板的中继装置,所述第一系统板具有:指令投入单元,把从所述第一和第二运算处理装置中的任意一个运算处理装置发出的指令通过所述中继装置对所述第二系统板投入;同步崩溃检测单元,通过检测出在所述第一和第二运算处理装置中的任意一个运算处理装置中发生的异常,来检测出同步崩溃;指令发出停止单元,指示所述指令投入单元,使被检测到异常的运算处理装置的指令发出停止;指令抑制单元,抑制从所述第二系统板对所述第一控制装置投入的指令;保存单元,使所述第一和第二运算处理装置中的正常的运算处理装置具有的内部信息保存到所述存储装置中;初始化单元,进行所述第一和第二运算处理装置的初始化;复原单元,把保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原;和指令抑制解除单元,在所述内部信息在所述第一和第二运算处理装置中已被复原的情况下,解除对从所述第二系统板向所述第一控制装置发出的指令的抑制,使所述第一和第二运算处理装置的同步动作重新开始。
[0019]优选,在本发明的信息处理装置中,所述第一系统板还具有判断单元,该判断单元,在被检测到所述异常的运算处理装置的指令发出被停止的情况下,判断重新开始所述第一和第二运算处理装置的同步动作的次数是否是规定次数以上,在重新开始所述同步动作的次数是所述规定次数以上的情况下,使所述复原单元把被保存在所述存储装置中的内部信息只在所述第一和第二运算处理装置中的所述正常的运算处理装置中复原。
[0020]优选,在本发明的信息处理装置中,所述第一系统板还具有复原中断单元,该复原中断单元,当在将被保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的途中,所述同步崩溃检测单元再次检测到被检测出所述异常的运算处理装置中的异常的情况下,中断针对被检测到所述异常的运算处理装置的所述内部信息的复原,只使所述内部信息已被复原的正常的运算处理装置的动作重新开始,解除对从所述第二控制装置向所述第一控制装置发出的指令的抑制。
[0021]本发明,例如,如果检测到被冗余化的运算处理装置亦即冗余CPU中的任意一个(PU的错误引起的冗余运算处理装置(冗余CPU)的同步崩溃,就在抑制从外部的装置对本系统发出的指令后,把正常的CPU(以下记载为“正常CPU”)的内部信息和高速缓存器数据保存到与北桥芯片连接的主存储器等存储装置中。而且,本发明把发生上述错误的CPU(以下,记载为“异常发生CPU”)和正常CPU复位,把保存到上述存储装置中的正常CPU的内部信息在所述已被复位的异常发生CPU内和正常CPU内复原。而且,本发明,在内部信息在异常发生CPU内和正常CPU内被复原了时,解除对从上述外部的装置对本系统发出的指令的抑制,重新开始异常发生CPU和正常CPU的同步动作,由此,使上述冗余CPU再同步。因此,根据本发明,在发生了 CPU之间的同步崩溃时,不用重启OS,就能进行冗余CPU的再同步处理。此外,本发明的冗余CPU的再同步处理不依赖于在系统上动作的OS具有的功能,所以能够使用通用的OS实现。
[0022]此外,本发明,例如在停止了从异常发生CPU向外部装置的指令的发出时,判断冗余CPU的再同步的实施次数是否是冗余CPU的再同步的实施次数的上限值以上,在判断为冗余CPU的再同步的实施次数是冗余CPU的再同步的实施次数的上限值以上的情况下,只继续正常CPU的运行。因此,根据本发明,例如当在冗余CPU中的任意一个CPU中产生固定故障时,能够继续正常CPU的运行,使可以最大限度利用系统中搭载的CPU资源的连续运行成为可能)。
[0023]此外,本发明,当在将保存到所述存储装置中的正常CPU的内部信息在所述被复位的异常发生CPU内和正常CPU内复原的途中,再次检测到异常发生CPU中的错误时,中断上述内部信息向异常发生CPU内的复原,只重新开始内部信息已被复原的正常CPU的运行,解除对从外部装置对本系统发出的指令的抑制。因此,根据本发明,例如当在冗余CPU的再同步处理的途中,在异常发生CPU中再次发生错误时,能够重新开始正常CPU的运行。因此,根据本发明,使可以最大限度利用系统中搭载的CPU资源的连续运行成为可能)。
【专利附图】

【附图说明】
[0024]图1是表示本实施方式的整体结构的一例的图。
[0025]图2是说明本实施方式的冗余CPU的再同步处理的概要的图。
[0026]图3是说明本实施方式的冗余CPU的再同步处理的概要的图。
[0027]图4是说明本实施方式的冗余CPU的再同步处理的概要的图。
[0028]图5是说明本实施方式的冗余CPU的再同步处理的概要的图。
[0029]图6是说明本实施方式的冗余CPU的再同步处理的概要的图。
[0030]图7是说明本实施方式的冗余CPU的再同步处理的概要的图。
[0031]图8是说明本实施方式的冗余CPU的再同步处理的概要的图。
[0032]图9是说明本实施方式的冗余CPU的再同步处理的概要的图。
[0033]图10是说明本实施方式的冗余CPU的再同步处理的概要的图。
[0034]图11是说明本实施方式的冗余CPU的再同步处理的概要的图。
[0035]图12是说明本实施方式的冗余CPU的再同步处理的概要的图。
[0036]图13是说明本实施方式的冗余CPU的再同步处理的概要的图。
[0037]图14是说明本实施方式的冗余CPU的再同步处理的概要的图。
[0038]图15是表示本实施方式的实施例涉及的系统结构例的图。
[0039]图16是表示SB#0的结构例的图。
[0040]图17是表示本实施方式的冗余CPU的再同步处理流程的一例的图。[0041]图18是表示本实施方式的冗余CPU的再同步处理流程的一例的图。
[0042]符号的说明
[0043]5-U5-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-l、20-2-数据总线;100_检查电路;101_CPU总线同步检查电路;102_切换控制寄存器;103-复位控制寄存器;104_再同步控制寄存器;105_切换/再同步控制电路;106-切换开关;117-主队列;108-LCST生成电路;109_重试控制寄存器;110-探听标签;111-从属请求控制电路;202-LRA包;200-全局地址优先级控制电路;201-GCST生成电路。
【具体实施方式】
[0044]图1是表示本实施方式的整体结构的一例的图。本实施方式例如作为具有图1所示那样的多个系统板(SB#0?SB#7)的多处理器系统实 现。图1所示的10U#0、…、10U#7分别是与SB#0、…、SB#7对应的I/O单元。另外,该多处理器系统具有的系统板的数量、I/O单元的数量并不由图1所示的系统板的数量、I/O单元的数量限定。
[0045]本实施方式例如作为如下的信息处理装置而实现:具备具有同时执行同一处理的相互冗余化的第一和第二运算处理装置(例如图1中的CPU12-0和CPU12-2)、与上述第一和第二运算处理装置连接的第一控制装置(例如北桥芯片11)和与上述第一控制装置连接的存储装置(例如存储器15-1?15-4)的第一系统板(例如,SB#0)、具有第二控制装置(省略图示的北桥芯片11以外的北桥芯片)的第二系统板(例如SB#7)、中继所述第一和第二系统板的中继装置(例如全局地址交叉开关5-1)。所述彼此被冗余化的第一和第二信息处理装置例如是通过同步动作被冗余化的CPU对(冗余CPU)。
[0046]此外,本实施方式例如作为如下的信息处理装置而实现:具有同时执行同一处理的相互冗余化的第一和第二运算处理装置(例如图1中的CPU12-0和CPU12-2)、与上述第一和第二运算处理装置连接的第一控制装置(例如北桥芯片11)、通过上述第一控制装置而被连接的存储装置(例如存储器15-1?15-4)和第二控制装置(例如省略图示的北桥芯片11以外的北桥芯片)。
[0047]如图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同样的结构。
[0048]北桥芯片11检测出由于构成冗余CPU的CPU对中的一方CPU(单系统CPU)产生错误导致无法取得冗余CPU之间的同步的冗余(同步)崩溃,按照基于FWH13-1或者13-2中保存的固件的控制,进行冗余CPU的再同步处理。冗余(同步)崩溃是指构成冗余CPU的CPU对无法进行同步动作。此外,冗余CPU的再同步处理是使CPU再次返回冗余结构的处理。北桥芯片11不用重启在系统上工作的OS,即可执行冗余CPU的再同步处理。[0049]FWH13-1U3-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之间的通信接口。
[0050]5-1、5_2是作为把从各系统板发出的指令以及成为该指令的对象的地址(例如,针对加载指令或者存储指令的存储器地址等)对其它系统板以及I/o单元中继的地址中继单元的全局地址交叉开关,6-1?6-4是作为在系统板之间、I/O单元之间以及在系统板和I/O单元之间,中继数据的处理单元的全局数据交叉开关。7是向系统板和I/O单元具有的寄存器(省略图示)设定各种设定值的SVP(服务处理器)等系统控制装置。例如系统控制装置7在SB#0内的北桥芯片11具有的寄存器中设定冗余CPU的再同步的实施次数的上限值。
[0051]首先,说明各系统板具有的北桥芯片的通常的动作。
[0052]北桥芯片(例如北桥芯片11)在进行通常的动作时,把从该北桥芯片具有的各CPU发出的指令(操作码)和成为指令的对象的地址(以下记载为“地址/操作码”)对全局地址交叉开关投入。从其它系统板内的CPU发出的地址/操作码也被投入全局地址交叉开关)。全局地址交叉开关根据规定的优先级顺序,从被投入的地址/操作码中选择特定的地址/操作码,通知给各系统板。即北桥芯片是通过全局地址交叉开关把从本系统板内的CPU发出的指令作为外部指令对包含本系统板在内的全部系统板投入的外部指令投入单元。
[0053]如果从全局地址交叉开关接受了上述通知,各系统板具有的北桥芯片(例如北桥芯片11)就把包含表示与本北桥芯片对应的系统板能否继续执行关于被选择的地址/操作码的处理的信息(处理可否信息)和表示本北桥芯片所对应的系统板把针对上述被通知的地址的数据在系统板内的哪里和以怎样的状态保持的信息(数据状态信息)的信息包(参照图15,后面描述的LCST包)对全局地址交叉开关投入。在本实施方式特有的动作中,检测到冗余CPU的冗余(同步)崩溃的北桥芯片例如将作为处理可否信息的Retry (重试)对全局地址交叉开关投入。重试是因为无法接受从外部对系统板发出的指令而指示该指令的发出源再次投入指令的控制信号。
[0054]已被投入处理可否信息和数据状态信息的全局地址交叉开关向各系统板具有的北桥芯片通知上述处理可否信息和数据状态信息。接受了通知的系统板具有的北桥芯片执行本北桥芯片应该执行的指令。北桥芯片根据需要,通过数据交叉开关从与本北桥芯片所对应的系统板不同的其它系统板接收指令的执行所需要的数据。例如,在SB#0对存储器
15-1写入数据时,SB#0根据需要,通过全局数据交叉开关6-1从SB#7接收作为写入对象的数据。然后,SB#0通过存储器控制器14-1的控制,向存储器15-1内写入数据。
[0055]下面,说明本实施方式的冗余CPU的再同步处理的概要。首先,如图2所示那样,北桥芯片11检测出由于在由CPU12-0和CPU12-2构成的冗余CPU中的异常发生CPU (CPU12-2)中发生的错误(异常)引起的冗余(同步)崩溃。
[0056]接着,如图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中也同样)。
[0057]接着,如图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进行中断通知。
[0058]如果对CPU12-0、12-1进行了上述中断通知,CPU12_0、12_1就被分配给图1所示的FWH13-1 (或者FWH13-2)中保存的固件,暂停运行中的OS的处理。
[0059]接着,固件对北桥芯片11发送控制信号,如图5所示那样,对北桥芯片11指示对全局地址交叉开关5-1继续投入重试。北桥芯片11对全局地址交叉开关5-1继续投入重试,从而抑制了从SB#0以外的系统板对SB#0具有的北桥芯片11发出的指令(外部指令)。
[0060]例如,从图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-0U2-1的指令的执行。
[0061 ] 接着,固件对作为正常CPU的CPUl2-0、12_1指示,如图6所示那样,把为了使冗余CPU再同步所需要的CPU的内部信息(例如在CPU12-0中发生异常的瞬间的CPU12-0内、CPU12-1内的寄存器的信息等)保存到存储器15-1。上述正常CPU是连接在正常CPU总线上的CPU。即固件是使冗余CPU中正常的CPU具有的内部信息保存到存储装置的保存单元。
[0062]此外,固件对CPU12-0、CPU12-1指示,如图7所示那样,把CPU12-0内的高速缓存器数据和CPU12-1内的高速缓存器数据向存储器15-1写出并保存。
[0063]接着,在全部正常CPU(CPU12_0、CPU 12_1),完成了将高速缓存器数据向存储器
15-1的写出的时间点,固件对北桥芯片11指示清除北桥芯片11具有的探听标签(图8中的探听标签110)保持的各CPU的高速缓存器状态信息。探听标签110是保持与北桥芯片11连接的CPU的内部的高速缓存器状态信息的存储单元。此外,高速缓存器状态信息是表示CPU具有的高速缓存器的状态的信息,例如是表示本CPU是否在高速缓存器内保持了存储器15-1中存储的数据的信息或者表示本CPU把哪个系统板的存储器中存储的数据以怎样的状态在高速缓存器中保持的信息。
[0064]接着,如图9所示那样,北桥芯片11对与北桥芯片11连接的各CPU (CPU12-0、CPU
12-1、CPU 12-2,CPU 12-3)同时发出Reset (复位),把各CPU初始化,重新开始冗余CPU的同步动作。Reset是使CPU初始化的控制信号。
[0065]此外,固件进行各CPU的初始化,使CPU内部信息在各CPU对内复原,该CPU内部信息是在参照图6在前面描述的CPU内部信息向存储器15-1的保存处理中被保存到存储器15-1中的。
[0066]具体而言,图10所示的CPU12-0、CPU12-2从固件接受指示,把保存在存储器15_1的CPU12-0的内部信息在本CPU内复原。此外,图10所示的CPU12-l、CPU12-3从固件接受指示,把保存在存储器15-1的CPU12-1的内部信息在本CPU内复原。即固件的一部分是使保存在存储装置的正常CPU的内部信息在已被初始化的异常发生CPU内和正常CPU内复原的复原单元。
[0067]根据参照图10说明的存储在存储器15-1内的CPU内部信息向各CPU对的复原处理,各CPU对恢复到冗余结构。
[0068]如果在与北桥芯片11连接的全部CPU中完成了初始化和内部信息的复原,就如图11所示那样,固件对北桥芯片11指示解除对外部指令的投入抑制。即固件,通过使北桥芯片11停止向全局地址交叉开关5-1投入重试,来解除对外部指令的投入抑制。
[0069]北桥芯片11解除对外部指令的投入抑制,由此,各CPU对(CPU12-0和CPU12-2对,CPU12-1和CPU12-3对)重新开始同步动作(实现冗余CPU的再同步)。
[0070]例如,如果如图12所示那样,从SB#7具有的北桥芯片21发出了指令(参照图12中的#A),并从全局地址交叉开关5-1对北桥芯片11传送了该指令(参照图12中的#B),则接受指令的北桥芯片11通过全局地址交叉开关5-1对北桥芯片21响应能执行指令(参照图12中的#C、#D)。由冗余CPU执行所接受的指令。
[0071]根据本实施方式的一个例子,在北桥芯片11内的存储单元预先存储冗余CPU的再同步的实施次数的上限值。而且,如参照图3所述那样,如果停止了从异常CPU向北桥芯片11的外部装置发出指令,固件就判断冗余CPU的再同步的实施次数(重新开始同步动作的次数)是否为上述存储单元中存储的该冗余CPU的再同步的实施次数的上限值以上。而且,固件在判断为冗余CPU的再同步的实施次数是上述上限值以上的情况下,不实施冗余CPU的再同步处理,只继续正常CPU总线(例如CPU总线16-1)和该正常CPU总线上连接的CPU(例如CPU12-0、CPU12-1)的运行,来进行系统的继续运行。即,固件的一部分是在停止了异常CPU发出指令的情况下,判断重新开始CPU的同步动作的次数是否是规定次数以上,在重新开始同步动作的次数是上述规定次数以上的情况下,使复原单元只把保存在存储装置中的内部信息在正常的CPU内复原的判断单元。
[0072]另外,根据本实施方式的一个例子,当在参照图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)发出的指令的抑制。
[0073]北桥芯片11解除对外部指令的投入抑制,例如如图14所示那样,从SB#7具有的北桥芯片21发出了指令(参照图14中的#A),并从全局地址交叉开关5-1对北桥芯片11发出该指令(参照图14中的#B)。北桥芯片11通过全局地址交叉开关5-1对北桥芯片响应能执行指令(参照图14中的#C、#D)。
[0074]图15是表不本实施方式的一个例子的系统结构例的图,图16是表不图15所示的SB#0的结构例的图。在图15、图16所示的例子中,本实施方式的信息处理装置由SMP (Symmetric Multiple Processor,对称式多处理器)构成,作为多处理器系统中的冗余CPU的再同步系统而构成。
[0075]通过搭载多个CPU (图16中的CPU12-0?CPU12-3)和存储器(例如图16中的存储器15-1)的多个系统板(SB#0?SB#N)借助于全局地址交叉开关5-1和全局数据交叉开关6-1连接起来,来构成图15所示的本实施方式的信息处理装置。
[0076]如后所述那样,图16所示的SB#0具有的CPU12-0和CPU12_2、CPU12-1和CPU12-3分别是基于同步动作被冗余化的CPU的对(冗余CPU)。此外,全局地址交叉开关5-1是把从各系统板发出的指令和成为该指令的对象的地址对其他系统板中继的地址中继单元。此夕卜,各系统板具有与图16中所示的SB#0同样的结构。即本实施方式的信息处理装置是由多个系统板构成的多处理器系统,该多个系统板分别具有通过同步动作被冗余化的CPU对即冗余CPU,通过中继指令和成为该指令的对象的地址的地址中继单元被连接起来。
[0077]与系统管理者对话的终端8所连接的系统控制装置7与该信息处理装置连接。系统控制装置7按照从终端8输入的控制信号,对各系统板具有的北桥芯片(例如图16中的北桥芯片11)发出指令,进行分区(partition)的结构设定和北桥芯片的动作模式的设定等系统整体的管理。分区是由系统板和I/O单元(在图15、图16中,省略图示)构成的系统。
[0078]作为构成图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 上。
[0079]图15所示的北桥芯片11是与图1中所示的北桥芯片11同样的处理部。存储器控制器14-1进行存储器15-1的控制。后面描述存储器控制器14-1的具体的功能。FWH13-1与图1中所示的FWH13-1同样。后面描述FWH13-1的具体的功能。
[0080]这里,构成图15所示的信息处理装置的各系统板(例如SB#0)生成包含本系统板上所搭载的CPU发出的指令和成为该指令的对象的地址(地址/操作码)的本地请求地址包(以下称作LRA包(Local Request Address包))202,并对全局地址交叉开关5_1投入。LRA包202例如操作码、地址、包ID、boardID (板ID)、重试次数信息、分区信息(例如分区的识别信息)等信息构成。上述ID是LRA包202的识别信息,boardID是作为该LRA包202的发出源的系统板的识别信息(例如板编号)。
[0081]全局地址交叉开关5-1如果接受了图15所示的LRA包202的投入,全局地址交叉开关5-1具有的全局地址优先级控制电路200就从被投入的LRA包202中,根据预先决定的优先级顺序,把特定的LRA包202作为全局选择地址包(以下称作GSA包(Global SelectAddress包))进行选择。而且,全局地址优先级控制电路200把GSA包对全部系统板广播。全局地址优先级控制电路200也可以把GSA包对同一分区内的全部系统板广播。
[0082]GSA包是用于把作为系统而应该执行的地址/操作码对系统板通知的信息包。GSA包包含与LRA包202中包含的信息相同的信息。
[0083]各系统板具有的LCST生成电路(例如图16中的LCST生成电路108)如果收到了GSA包,就把本地高速缓存器状态包(以下称作LCST包(Local Cache STate包))发送至全局地址交叉开关5-1。LCST包包含处理可否信息和数据状态信息,是用于把该处理可否信息和数据状态信息对全局地址交叉开关5-1通知的信息包。处理可否信息是表示本系统板能否继续执行GSA包中包含的指令所指示的处理(关于GSA包中包含的地址/操作码的处理)、对该指令的发出源的系统板是否指示重试的信息。数据状态信息是表示本系统板把上述GSA包中包含的地址所对应的数据在本系统板内的哪里而且以怎样的状态保持的信肩、O
[0084]全局地址交叉开关5-1如果从各系统板具有的LCST生成电路接收到LCST包,图15中所示的全局地址交叉开关5-1具有的GCST生成电路201就生成全局缓存器状态包(以下称作GCST包),把GCST包对全部系统板广播。GCST生成电路201也可以把GCST包对同一分区内的系统板广播。GCST包是用于把从各系统板对全局地址交叉开关通知的LCST包中包含的处理可否信息和数据状态信息对全部的系统板通知的信息包。
[0085]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从属请求,使本系统板执行应该执行的指令。
[0086]本实施方式的信息处理装置例如按照上述的动作,实现对全部的系统板内的CPU,对称地均一地分配处理。
[0087]下面,以SB#0具有的北桥芯片11的结构为例,说明各系统板具有的北桥芯片的结构。
[0088]北桥芯片11如图16所示,具有检查电路100、CPU总线同步检查电路101、切换控制寄存器102、复位控制寄存器103、再同步控制寄存器104、切换/再同步控制电路105、切换开关106、主队列107、LCST生成电路108、重试控制寄存器109、探听标签110、从属请求控制电路111、指令译码器112。
[0089]检查电路100 通过 CPU 总线 16-1、16-2 接收从 CPU (CPU12-0 和 CPU12-1、CPU12-2和CPU12-3)发送的信息包,进行ECC和奇偶校验等检查。检查电路100如果通过检查,检测到错误,就向切换/再同步控制电路105进行错误通知。
[0090]CPU总线同步检查电路101以构成冗余CPU的CPU对所连接的CPU总线为单位进行同步检查。即CPU总线同步检查电路101检查构成冗余CPU的CPU对是否进行了同步动作。CPU总线同步检查电路101如果检测到同步崩溃,就向切换/再同步控制电路105进行错误通知。另外,当在CPU内部检测到错误的情况下,检测到错误的CPU对切换/再同步控制电路105进行错误通知(内部错误通知)。
[0091]上述检查电路100和CPU总线同步检查电路101是通过检测出构成冗余CPU的CPU中的任意一个CPU中发生的异常,来检测出同步崩溃的同步崩溃检测单元。
[0092]在切换控制寄存器102中设定由CPU总线同步检查电路101检测到错误时的切换/再同步控制电路105的动作模式。系统控制装置7通过指令译码器112在切换控制寄存器102中预先设定动作模式。例如,在切换控制寄存器102中,作为动作模式1,设定包含检测到错误的北桥芯片的分区的停止,作为动作模式2,设定CPU总线16-1的无效,作为动作模式3,设定CPU总线16-2的无效。
[0093]复位控制寄存器103是为了进行关于各CPU的复位控制而管理各CPU的状态的寄存器。例如,如果在冗余CPU的再同步处理中,完成了 CPU的高速缓存器数据向存储器15-1的保存,就根据FWH13-1中保存的固件的控制,在复位控制寄存器103内建立与该CPU对应的保存完成标志。
[0094]再同步控制寄存器104是设定冗余CPU的再同步的实施次数的上限值(再同步可能上限值)和再同步可否标志的寄存器。再同步可否标志是表示冗余CPU的再同步是否可能的标志。系统控制装置7通过指令译码器112在再同步控制寄存器104中设定再同步可能上限值。
[0095]根据本发明的一个实施方式,FWH13-1中保存的固件比较再同步的实施次数和再同步控制寄存器104中所设定的再同步可能上限值,在再同步的实施次数低于再同步可能上限值的情况下,判断为冗余CPU的再同步是可能的,在再同步控制寄存器104中,例如设定标志I作为再同步可否标志。固件在再同步的实施次数是再同步可能上限值以上的情况下,判断为冗余CPU的再同步是不可能的,例如设定标志O作为再同步可否标志。
[0096]切换/再同步控制电路105是接收来自CPU、检查电路100、CPU总线同步检查电路101的错误通知,并控制切换开关106的动作的电路。切换/再同步控制电路105进行以下的切换控制。
[0097]切换/再同步控制电路105在从CPU接受了内部错误通知的情况下,把发生错误的CPU (单系统CPU)所连接的CPU总线设为无效,停止从CPU总线向全局地址交叉开关5-1发出指令。切换/再同步控制电路105在从检查电路100接受了错误通知的情况下,把检测到错误的CPU总线设为无效,停止从CPU总线向全局地址交叉开关5-1发出指令。此外,切换/再同步控制电路105在从CPU总线同步检查电路101接受了错误通知的情况下,进行按照切换控制寄存器102中设定的动作模式的动作。即切换/再同步控制电路105是使检测到异常的CPU向SB#0的外部装置发出指令停止的指令发出停止单元。
[0098]此外,切换/再同步控制电路105把接受了错误通知作为契机,对正常CPU总线上所连接的CPU发出中断。通过中断处理,把CPU分配给固件。
[0099]此外,切换/再同步控制电路105监视复位控制寄存器103,如果确认全部CPU已建立了保存完成标志,就向全部CPU发出复位指令。即切换/再同步控制电路105是进行发生异常的异常发生CPU和正常CPU的初始化的初始化单元。
[0100]此外,例如当在冗余CPU的再同步处理中,在异常发生CPU中发生错误,再次发生冗余CPU的冗余(同步)崩溃的情况下,切换/再同步控制电路105接受来自固件的指示,只把正常CPU总线设为有效,只把通过正常CPU发出的指令对全局地址交叉开关5-1投入。
[0101]切换开关106按照切换/再同步控制电路105的指示,进行CPU总线的切换。通过切换开关106进行CPU总线的切换,例如决定把通过CPU总线16-1或CPU总线16_2中的哪个CPU总线发出的指令作为LRA包202对全局地址交叉开关5_1投入。
[0102]主队列107把CPU发出的指令变换为芯片组(chipset)的LRA包202并保持,把所保持的LRA包202经由切换开关106对全局地址交叉开关5_1投入。在指令完成之前由主队列107保持LRA包202,当在途中发生重试的情况下(即从本系统板以外的系统板指示本系统板发出的指令的重试的情况下),对全局地址交叉开关5-1再投入LRA包202。
[0103]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包中包含的指令的处理可否信息。
[0104]此外,LCST生成电路108参照探听标签110,生成所述的数据状态信息。而且,LCST生成电路108生成包含所生成的处理可否信息和数据状态信息的LCST包,把LCST包对全局地址交叉开关5-1投入。
[0105]重试控制寄存器109是存储表示是否关于本系统板的CPU进行了再同步处理的信息的寄存器。如果开始了本系统板的CPU的再同步处理,为了抑制从其他系统板对本系统板发出的指令,就按照固件的指示,在重试控制寄存器109中建立再同步中标志。此外,在内部信息在本系统板内的包含单系统CPU (异常CPU)和正常CPU在内的全部CPU内被复原时,固件如果对北桥芯片11指示了解除对外部指令的抑制,则将重试控制寄存器109的再冋步中标志设定为无效。
[0106]如上所述,当在重试控制寄存器109中建立了再同步中标志的情况下,由LCST生成电路108生成包含表示指示重试的处理可否信息的LCST包,并对全局地址交叉开关5-1投入。即固件和LCST生成电路108是抑制从SB#0的外部装置(例如图15所示的SB#N)对SB#0发出的指令的指令抑制单元。
[0107]此外,通过在重试控制寄存器109中把再同步中标志设定为无效,从而LCST生成电路108接受从全局地址交叉开关5-1接收到的GSA包中包含的指令。其结果,能够使冗余CPU执行所接受的指令,并重新开始冗余CPU的同步动作。即,固件是在内部信息在异常发生CPU内和正常CPU内已被复原的情况下,解除对系统板(例如SB#0)发出的指令的抑制,重新开始异常发生CPU和正常CPU的同步动作的指令抑制解除单元。
[0108]探听标签110是保持CPU内部的高速缓存行的状态信息(高速缓存器状态信息)的存储单元。后面描述的从属请求控制电路111更新探听标签内的高速缓存器状态信息。
[0109]从属请求控制电路111从全局地址交叉开关5-1接收GCST包,根据GCST包中包含的信息和从LCST生成电路108通知的本系统板(SB#0)应该执行的指令,生成存储器从属请求、CPU从属请求、FffH从属请求。而且,从属请求控制电路111对存储器控制器14-1发送存储器从属请求,对CPU发送CPU从属请求,对FWH13-1发送FWH从属请求。此外,从属请求控制电路111按照FWH13-1中保存的固件的指示,更新重试控制寄存器109、探听标签110、再同步控制寄存器104和复位控制寄存器103的存储内容。
[0110]此外,例如,当在冗余CPU的再同步处理中,在异常发生CPU中发生错误,再次发生冗余CPU的冗余(同步)崩溃的情况下,北桥芯片11再次停止异常发生CPU所连接的CPU总线的动作。据此,从属请求控制电路111接受固件的指示,对全部CPU发送CPU从属请求,但是,只由正常CPU执行CPU从属请求。[0111]指令译码器112对从系统控制装置7对北桥芯片11发出的指令进行译码,根据指令的译码结果,设定各系统板的板编号和所属分区,并且进行针对切换控制寄存器102、重试控制寄存器109、再同步控制寄存器104的设定值的写入/读入。指令译码器112例如进行针对切换控制寄存器102的切换/再同步控制电路105的动作模式的设定或从切换控制寄存器102读出动作模式。此外,指令译码器112从重试控制寄存器109读出表示是否建立了再同步中标志的信息。此外,指令译码器112进行针对再同步控制寄存器104的再同步可能上限值的设定或者从再同步控制寄存器104读出表示是否已建立再同步可否标志的信息。
[0112]下面,说明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写入。
[0113]此外,存储器控制器14-1从存储器15-1读出数据,按照固件的指示,把读出的数据对CPU发送。此外,存储器控制器14-1从存储器15-1读出数据,并把读出的数据通过数据总线20-2、图15所示的全局数据交叉开关6-1对SB#0以外的其他系统板发送。
[0114]接着,说明SB#0具有的FWH13-1的功能。FWH13-1是保存固件的ROM。FWH13-1中保存的固件除了具有所述的各种功能(例如,作为保存单元、复原单元、判断单元、复原中断单元、指令抑制单元、指令抑制解除单元的功能)以外,还进行与从从属请求控制电路111发送的FWH从属请求的内容相应的处理。例如,该固件向CPU发送数据。
[0115]下面,参照图15?图18,说明本发明的动作。图17和图18是表示本实施方式的冗余CPU的再同步处理流程的一个例子的图。
[0116]首先,图16中所示的CPU12-0和CPU12_2、CPU12-1和CPU12-3分别是被冗余化的冗余CPU。北桥芯片11监视冗余CPU的同步崩溃。如果CPU内部检测出错误、由检查电路100检测出错误,或者由CPU总线同步检查电路101检测出错误,就对切换/再同步控制电路105进行错误通知,在图17的步骤SI中,切换/再同步控制电路105检测出冗余CPU的同步崩溃(步骤SI)。例如,若在图16中的CPU12-2中发生错误,而检测到冗余CPU的同步崩溃,切换/再同步控制电路105就停止发生错误的CPU12-2所连接的异常CPU总线(例如CPU总线16-2)的动作(步骤S2)。在步骤S2中,例如在检测到CPU内部的错误或者由检查电路100检测出错误的情况下,切换/再同步控制电路105把发生错误的CPU总线设为无效。在进行了基于CPU总线同步检查电路101的错误检出的情况下,切换/再同步控制电路105按照切换控制寄存器102的设定内容,把异常CPU总线设为无效。
[0117]接着,如果完成了异常CPU总线的动作的停止,切换/再同步控制电路105就将表示在CPU总线中发生异常的信息(例如,CPU总线16-2的停止)向本系统板的有效的CPU总线上所连接的CPU (正常CPU)进行中断通知(步骤S3)。如果完成了向正常CPU的中断通知,固件就参照再同步控制寄存器104中设定的再同步可否标志,判断可否实施冗余CPU的再同步(步骤S4)。
[0118]在固件判断为无法实施冗余CPU的再同步的情况下,固件指示切换/再同步控制电路105,把正常CPU总线的动作设为有效,利用正常CPU总线继续动作(步骤S17)。在固件判断为能够实施冗余CPU的再同步(OK)的情况下,固件对北桥芯片11指示抑制外部指令(步骤S5)。具体而言,从属请求控制电路111按照固件的指示,在重试控制寄存器109中建立再同步中标志。固件在重试控制寄存器109中建立再同步中标志,由此,LCST生成电路108响应从图15所示的全局地址交叉开关5-1接收到的GSA包,生成包含表示对GSA包中所包含的指令的发出源指示重试的处理可否信息的LCST包,并对全局地址交叉开关5-1投入。
[0119]从而,针对本系统板的指令的重试在作为该指令的发出源的其他系统板中被重复,从其他系统板发出的LRA包202停留在其他系统板内的主队列中。其结果,完全抑制了从以后的其他系统板对本系统板发出的指令。
[0120]接着,固件指示正常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中。
[0121]此外,固件对连接在正常CPU总线上的CPU(例如连接在CPU总线106-1上的CPU12-0U2-1)进行指示,把正常CPU内部保持的高速缓存器数据保存到存储器15_1 (步骤S7)。在步骤S7中,进一步地,固件在每当完成向存储器15-1保存高速缓存器数据时,就在复位控制寄存器103内建立与完成了高速缓存器数据的保存的CPU相对应的保存完成标
O
[0122]固件等待全部CPU的高速缓存器数据被保存到存储器15-1 (步骤S8)。如果复位控制寄存器103的与各CPU相对应的标志全部被建立,全部CPU的高速缓存器数据被保存到存储器15-1,则在图18的步骤S9中,切换/再同步控制电路105清除探听标签110中保持的CPU的高速缓存器状态信息(步骤S9)。然后,切换/再同步控制电路105对本系统板内的全部CPU发出复位(步骤S10)。
[0123]然后,固件对全部CPU请求在上述图17的步骤S6中保存到存储器15_1中的CPU的内部信息的复原(步骤Sll)。连接在异常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内进行复原。
[0124]对上述步骤Sll的处理顺序的`例子进行说明。从回件接受了内部信息的复原请求的各CPU把包含内部信息复原指令的LRA包202对全局地址交叉开关5_1投入。而且,进行如下的一系列的处理:基于接受了 LRA包202的投入的全局地址交叉开关5-1的针对各系统板的GSA包的发送、从各系统板向全局地址交叉开关5-1的LCST包的投入、从全局地址交叉开关5-1向各系统板的GCST包的发送、基于接收到GCST包的系统板具有的从属请求控制电路的从属请求的发出之类的处理,将上述正常CPU的内部信息从存储器15-1向CPU内复原。
[0125]固件判断是否在全部CPU中完成了内部信息的复原(步骤S12)。如果固件判断为在全部CPU中完成了内部信息的复原,固件就对北桥芯片11指示解除对外部指令的抑制(步骤S13)。具体而言,固件指示从属请求控制电路111,把重试控制寄存器109的再同步中标志设定为无效。通过将再同步中标志设定为无效,从而,LCST生成电路108响应从全局地址交叉开关5-1接收到的GSA包,生成包含表示本系统板能够继续执行GSA包中包含的指令的处理可否信息的LCST包。其结果,本系统板能够接受来自其他系统板的指令并使冗余CPU执行该指令,完成冗余CPU的再同步。
[0126]如果完成了对外部指令的抑制解除,固件就进行再同步的实施次数的校验(步骤S14),返回图17的步骤SI。在图18的步骤S14中,固件比较再同步的实施次数和再同步控制寄存器104中设定的再同步可能上限值,在再同步的实施次数低于再同步可能上限值的情况下,判断为冗余CPU的再同步是可能的,在再同步控制寄存器104中,例如设定标志I作为再同步可否标志。在再同步的实施次数是再同步可能上限值以上的情况下,固件判断为冗余CPU的再同步是不可能的,在再同步控制寄存器104中,例如设定标志O作为再同步
否t不志。
[0127]当在保存到存储器15-1中的CPU的内部信息的复原处理的途中(参照步骤S11)、固件等待关于全部CPU的内部信息的复原完成的途中(参照步骤S12),或者北桥芯片11进行对外部指令的抑制解除处理的途中(参照步骤S13),如果检测到冗余CPU的同步崩溃,北桥芯片11就再次停止异常发生CPU所连接的CPU总线的动作,固件对北桥芯片11指示解除对外部指令的抑制(步骤S15)。然后,利用正常CPU总线继续动作(步骤S16)。
[0128]在步骤S16中,固件对从属请求控制电路111进行指示,对全部CPU发送CPU从属请求,但是异常CPU所连接的CPU总线已处于停止状态,所以只用正常CPU执行本系统板应该执行的处理。此外,固件指示切换/再同步控制电路105,只把正常CPU总线设为有效,只把通过正常CPU发出的指令对全局地址交叉开关5-1进行投入。
[0129]另外,根据本发明的一个实施方式,也可以构成为,固件不在步骤S14中,而在图17的步骤S4的处理中进行图18的步骤S14的再同步的实施次数的校验。即在图17的步骤S4中,固件判断冗余CPU的再同步的实施次数是否为预先在存储单元中存储的冗余CPU的再同步的实施次数的上限值以上,在判断为上述冗余CPU的再同步的实施次数为冗余CPU的再同步的实施次数的上限值以上的情况下,进入图17的步骤S17。固件在判断为上述冗余CPU的再同步的实施次数低于冗余CPU的再同步的实施次数的上限值的情况下,进入图17的步骤S5。
[0130]工业上的可利用性
[0131]根据本发明,例如在发生了 CPU间的同步崩溃时,不用重启OS,就能进行冗余CPU的再同步处理。此外,本发明的冗余CPU的再同步处理不依赖于在系统上工作的OS具有的功能,所以能够使用通用的OS实现。
[0132]此外,根据本发明,例如当在冗余CPU中的任意一个CPU中发生了固定故障时,能够继续正常CPU的运行。此外,根据本发明,例如当在冗余CPU的再同步处理的途中,在异常发生CPU中再次发生错误时,能够重新开始正常CPU的运行。因此,根据本发明,使可以最大限度利用系统中搭载的CPU资源的连续运行成为可能。
【权利要求】
1.一种信息处理装置,其特征在于: 具有同时执行同一处理的相互冗余化的第一和第二运算处理装置、与所述第一和第二运算处理装置连接的第一控制装置、通过所述第一控制装置连接的存储装置及第二控制装置, 所述第一控制装置具有: 同步崩溃检测单元,通过检测出在所述第一和第二运算处理装置中的任意一个运算处理装置中发生的异常,来检测出同步崩溃; 指令发出停止单元,使被检测到所述异常的运算处理装置的指令的发出停止; 指令抑制单元,抑制从所述第二控制装置对所述第一控制装置发出的指令; 保存单元,使所述第一和第二运算处理装置中的正常的运算处理装置具有的内部信息保存到所述存储装置中; 初始化单元,进行所述第一和第二运算处理装置的初始化; 复原单元,把保存到所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原;和 指令抑制解除单元,在所述内部信息在所述第一和第二运算处理装置中已被复原的情况下,解除对从所述第二控制装置对所述第一控制装置发出的指令的抑制,使所述第一和第二运算处理装置的同步动作重新开始。
2.根据权利请求I所述的信息处理装置,其特征在于: 所述第一控制装置还具有 判断单元,该判断单元,在被检测到所述异常的运算处理装置的指令发出被停止的情况下,判断重新开始所述第一和第二运算处理装置的同步动作的次数是否是规定次数以上,在重新开始所述同步动作的次数是所述规定次数以上的情况下,使所述复原单元把被保存在所述存储装置中的内部信息只在所述第一和第二运算处理装置中的所述正常的运算处理装置中复原。
3.根据权利请求I所述的信息处理装置,其特征在于: 所述第一控制装置还具有复原中断单元,该复原中断单元,当在将被保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的途中,所述同步崩溃检测单元再次检测到被检测出所述异常的运算处理装置中的异常的情况下,中断针对被检测到所述异常的运算处理装置的所述内部信息的复原,只使所述内部信息已被复原的正常的运算处理装置的动作重新开始,解除对从所述第二控制装置对所述第一控制装置发出的指令的抑制。
4.一种控制方法,其特征在于: 是具有同时执行同一处理的相互冗余化的第一和第二运算处理装置、与所述第一和第二运算处理装置连接的第一控制装置、通过所述第一控制装置连接的存储装置及第二控制装置的信息处理装置的控制方法,包括: 通过检测出在所述第一和第二运算处理装置中的任意一个的运算处理装置中发生的异常,来检测出同步崩溃的步骤; 使被检测到所述异常的运算处理装置的指令的发出停止的步骤; 抑制从所述第二控制装置对所述第一控制装置发出的指令的步骤; 使所述第一和第二运算处理装置中的正常的运算处理装置具有的内部信息保存到所述存储装置中的步骤; 进行所述第一和第二运算处理装置的初始化的步骤; 把保存到所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的步骤;和 在所述内部信息在所述第一和第二运算处理装置中已被复原的情况下,解除对从所述第二控制装置对所述第一控制装置发出的指令的抑制,重新开始所述第一和第二运算处理装置的同步动作的步骤。
5.根据权利请求4所述的控制方法,其特征在于: 还具有:在被检测到所述异常的运算处理装置的指令发出被停止的情况下,判断重新开始所述第一和第二运算处理装置的同步动作的次数是否是规定次数以上的步骤;和在重新开始所述同步动作的次数在所述规定次数以上的情况下,使被保存在所述存储装置中的内部信息只在所述第一和第二运算处理装置中的所述正常的运算处理装置中复原的步骤。
6.根据权利请求4所述的控制方法,其特征在于: 还具有:当在将被保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的途中,再次检测到被检测出所述异常的运算处理装置中的异常的情况下,中断针对被检测到所述异常的运算处理装置的所述内部信息的复原的步骤; 只重新开始所述内部信 息已被复原的正常的运算处理装置的动作的步骤;和 解除对从所述第二控制装置向所述第一控制装置发出的指令的抑制的步骤。
7.一种信息处理装置,其特征在于: 具备具有同时执行同一处理的相互冗余化的第一和第二运算处理装置、与所述第一和第二运算处理装置连接的第一控制装置和与所述第一控制装置连接的存储装置的第一系统板;具有第二控制装置的第二系统板;和中继所述第一和第二系统板的中继装置, 所述第一系统板具有: 指令投入单元,把从所述第一和第二运算处理装置中的任意一个运算处理装置发出的指令通过所述中继装置对所述第二系统板投入; 同步崩溃检测单元,通过检测出在所述第一和第二运算处理装置中的任意一个运算处理装置中发生的异常,来检测出同步崩溃; 指令发出停止单元,指示所述指令投入单元,使被检测到异常的运算处理装置的指令发出停止; 指令抑制单元,抑制从所述第二系统板对所述第一控制装置投入的指令; 保存单元,使所述第一和第二运算处理装置中的正常的运算处理装置具有的内部信息保存到所述存储装置中; 初始化单元,进行所述第一和第二运算处理装置的初始化; 复原单元,把保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原;和 指令抑制解除单元,在所述内部信息在所述第一和第二运算处理装置中已被复原的情况下,解除对从所述第二系统板向所述第一控制装置发出的指令的抑制,使所述第一和第二运算处理装置的同步动作重新开始。
8.根据权利请求7所述的信息处理装置,其特征在于: 所述第一系统板还具有判断单元,该判断单元,在被检测到所述异常的运算处理装置的指令发出被停止的情况下,判断重新开始所述第一和第二运算处理装置的同步动作的次数是否是规定次数以上,在重新开始所述同步动作的次数是所述规定次数以上的情况下,使所述复原单元把被保存在所述存储装置中的内部信息只在所述第一和第二运算处理装置中的所述正常的运算处理装置中复原。
9.根据权利请求7所述的信息处理装置,其特征在于: 所述第一系统板还具有复原中断单元,该复原中断单元,当在将被保存在所述存储装置中的内部信息在所述已被初始化的第一和第二运算处理装置中复原的途中,所述同步崩溃检测单元再次检测到被检测出所述异常的运算处理装置中的异常的情况下,中断针对被检测到所述异常的运算处理装置的所述内部信息的复原,只使所述内部信息已被复原的正常的运算处理装置的动作重新开始,解除对从所述第二控制装置向所述第一控制装置发出的指令的 抑制。
【文档编号】G06F11/18GK103443774SQ200780100802
【公开日】2013年12月11日 申请日期:2007年9月25日 优先权日:2007年9月25日
【发明者】大胁威, 石塚孝治, 植木俊和, 畑井田诚, 细川由佳, 诸泽笃史, 山本崇史, 伊藤大介 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1