信息處理裝置和控制方法
【專利摘要】北橋芯片(11)如果檢測到冗余CPU的同步崩潰,就使發(fā)生錯誤的異常CPU總線的動作停止,F(xiàn)WH(13-1)內(nèi)的固件對北橋芯片(11)指示對外部指令的抑制。此外,固件把連接在正常CPU總線上的正常CPU的內(nèi)部信息和高速緩存器數(shù)據(jù)保存到存儲器(15-1)中,北橋芯片(11)對本系統(tǒng)板內(nèi)的全部CPU發(fā)出復(fù)位。接著,對于全部CPU,固件把保存在所述存儲器(15-1)中的CPU的內(nèi)部信息復(fù)原,對北橋芯片(11)指示解除對外部指令的抑制。
【專利說明】信息處理裝置和控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及把多個運(yùn)算處理裝置(例如CPU)冗余化,例如作為冗余CPU,進(jìn)行同步動作的信息處理裝置和信息處理裝置的控制方法,特別涉及在發(fā)生運(yùn)算處理裝置之間的同步崩潰時,進(jìn)行被冗余化的運(yùn)算處理裝置的再同步的信息處理裝置和信息處理裝置的控制方法。
【背景技術(shù)】
[0002]在以UNIX (注冊商標(biāo))或Linux等開源(open source) OS工作,多個CPU被冗余化的系統(tǒng)(多處理器系統(tǒng))中,由于構(gòu)成冗余CPU的CPU對中的一方的CPU暫時故障,發(fā)生向進(jìn)行冗余(同步)運(yùn)行的另一方CPU的退縮之后,為了使CPU再次回到冗余結(jié)構(gòu),需要暫停系統(tǒng)并進(jìn)行冗余CPU的再同步和OS的再起動。這里,進(jìn)行同步運(yùn)行的CPU是同時執(zhí)行同一處理的CPU。
[0003]作為關(guān)于由多個處理器構(gòu)成的多處理器系統(tǒng)的具體的技術(shù),以下的專利文獻(xiàn)I記載了如下的多重系統(tǒng):把3個以上的處理器中的一個指定為通常模式,把剩下的處理器指定為用于監(jiān)視通常模式的處理器的執(zhí)行狀態(tài)的監(jiān)視模式,每個監(jiān)視模式的處理器都產(chǎn)生了異常信號時,判斷為通常模式的處理器異常,其中一個監(jiān)視模式的處理器產(chǎn)生了異常信號時,判斷為在監(jiān)視模式的處理器中產(chǎn)生了異常。
[0004]此外,以下的專利文獻(xiàn)2記載了如下的冗余系統(tǒng):例如當(dāng)在分別設(shè)置在被冗余化的第一 CPU、第二 CPU中的狀態(tài)裝置中的第二 CPU內(nèi)的特定的狀態(tài)裝置中產(chǎn)生異常,需要進(jìn)行再同步時,再同步服務(wù)器對特定的狀態(tài)裝置和第一 CPU內(nèi)的與特定的狀態(tài)裝置對應(yīng)的狀態(tài)裝置發(fā)出再同步指令,重啟雙方的狀態(tài)裝置,實(shí)現(xiàn)狀態(tài)裝置的再同步。
[0005]專利文獻(xiàn)1:日本特公平6-30069號公報
[0006]專利文獻(xiàn)2:日本特表2002-538521號公報
[0007]如上所述,以往,在發(fā)生了向進(jìn)行同步動作的冗余CPU中的任意一個CPU的退縮之后,為了使CPU再次回到冗余結(jié)構(gòu),需要暫停系統(tǒng)并進(jìn)行冗余CPU的再同步和OS的再起動??墒?,在要求連續(xù)工作的主系統(tǒng)中,如果進(jìn)行系統(tǒng)的暫停,就產(chǎn)生無法連續(xù)工作的問題。
[0008]此外,在所述專利文獻(xiàn)I中記載的以往技術(shù)中,需要使用具有可以接收從檢測出處理器異常的控制部發(fā)出的用于停止處理器的動作的控制信號的接口的專用處理器)。此夕卜,在該以往技術(shù)中,即使在存在軟錯誤等引起的處理器內(nèi)部的暫時的故障時,也把處理器從系統(tǒng)切離。此外,以往技術(shù)是根據(jù)多數(shù)決定,判定異常處理器的技術(shù),所以在處理器的剩余數(shù)成為2個時,如果檢測到異常,就會使雙方的處理器停止。
[0009]此外,所述專利文獻(xiàn)2中記載的以往技術(shù)是,即使重啟與產(chǎn)生了異常的狀態(tài)裝置相關(guān)聯(lián)的全部狀態(tài)裝置,對其他狀態(tài)裝置的狀態(tài)也不產(chǎn)生影響的特定的系統(tǒng)中的狀態(tài)裝置的再同步技術(shù)。因此,以往技術(shù)的狀態(tài)裝置的再同步處理依賴于在系統(tǒng)上工作的OS具有的功能,在不具有這樣的功能的通用OS上無法使用。
[0010]本發(fā)明的目的在于,提供在多個運(yùn)算處理裝置被冗余化而作為冗余運(yùn)算處理裝置進(jìn)行同步動作的信息處理裝置中,在發(fā)生了無法取得被冗余化的運(yùn)算處理裝置之間的同步之類的同步崩潰時,不用重啟OS,而進(jìn)行冗余運(yùn)算處理裝置的再同步處理的信息處理裝置。
[0011]此外,本發(fā)明的目的在于,提供在多個運(yùn)算處理裝置被冗余化而作為冗余運(yùn)算處理裝置進(jìn)行同步動作的信息處理裝置中,在發(fā)生了無法取得被冗余化的運(yùn)算處理裝置之間的同步之類的同步崩潰時,不用重啟OS,而進(jìn)行冗余運(yùn)算處理裝置的再同步處理的控制方法。
[0012]本發(fā)明的信息處理裝置是具有同時執(zhí)行同一處理的相互冗余化的第一和第二運(yùn)算處理裝置、與所述第一和第二運(yùn)算處理裝置連接的第一控制裝置、通過所述第一控制裝置連接的存儲裝置及第二控制裝置的信息處理裝置,所述第一控制裝置具有:同步崩潰檢測單元,通過檢測出在所述第一和第二運(yùn)算處理裝置中的任意一個的運(yùn)算處理裝置中發(fā)生的異常,來檢測出同步崩潰;指令發(fā)出停止單元,使被檢測到所述異常的運(yùn)算處理裝置的指令的發(fā)出停止;指令抑制單元,抑制從所述第二控制裝置對所述第一控制裝置發(fā)出的指令;保存單元,使所述第一和第二運(yùn)算處理裝置中的正常的運(yùn)算處理裝置具有的內(nèi)部信息保存到所述存儲裝置中;初始化單元,進(jìn)行所述第一和第二運(yùn)算處理裝置的初始化;復(fù)原單元,把保存到所述存儲裝置中的內(nèi)部信息在所述已被初始化的第一和第二運(yùn)算處理裝置中復(fù)原;和指令抑制解除單元,在所述內(nèi)部信息在所述第一和第二運(yùn)算處理裝置中已被復(fù)原的情況下,解除對從所述第二控制裝置對所述第一控制裝置發(fā)出的指令的抑制,使所述第一和第二運(yùn)算處理裝置的同步動作重新開始。
[0013]優(yōu)選,在本發(fā)明的信息處理裝置中,所述第一控制裝置還具有判斷單元,該判斷單元,在被檢測到所述異常的運(yùn)算處理裝置的指令發(fā)出被停止的情況下,判斷重新開始所述第一和第二運(yùn)算處理裝置的同步動作的次數(shù)是否是規(guī)定次數(shù)以上,在重新開始所述同步動作的次數(shù)是所述規(guī)定次數(shù)以上的情況下,使所述復(fù)原單元把被保存在所述存儲裝置中的內(nèi)部信息只在所述第一和第二運(yùn)算處理裝置中的所述正常的運(yùn)算處理裝置中復(fù)原。
[0014]優(yōu)選,在本發(fā)明的信息處理裝置中,所述第一控制裝置還具有復(fù)原中斷單元,該復(fù)原中斷單元,當(dāng)在將被保存在所述存儲裝置中的內(nèi)部信息在所述已被初始化的第一和第二運(yùn)算處理裝置中復(fù)原的途中,所述同步崩潰檢測單元再次檢測到被檢測出所述異常的運(yùn)算處理裝置中的異常的情況下,中斷針對被檢測到所述異常的運(yùn)算處理裝置的所述內(nèi)部信息的復(fù)原,只使所述內(nèi)部信息已被復(fù)原的正常的運(yùn)算處理裝置的動作重新開始,解除對從所述第二控制裝置對所述第一控制裝置發(fā)出的指令的抑制。
[0015]此外,本發(fā)明的控制方法是具有同時執(zhí)行同一處理的相互冗余化的第一和第二運(yùn)算處理裝置、與所述第一和第二運(yùn)算處理裝置連接的第一控制裝置、通過所述第一控制裝置連接的存儲裝置及第二控制裝置的信息處理裝置的控制方法,包括:通過檢測出在所述第一和第二運(yùn)算處理裝置中的任意一個的運(yùn)算處理裝置中發(fā)生的異常,來檢測出同步崩潰的步驟;使被檢測到所述異常的運(yùn)算處理裝置的指令的發(fā)出停止的步驟;抑制從所述第二控制裝置對所述第一控制裝置發(fā)出的指令的步驟;使所述第一和第二運(yùn)算處理裝置中的正常的運(yùn)算處理裝置具有的內(nèi)部信息保存到所述存儲裝置中的步驟;進(jìn)行所述第一和第二運(yùn)算處理裝置的初始化的步驟;把保存到所述存儲裝置中的內(nèi)部信息在所述已被初始化的第一和第二運(yùn)算處理裝置中復(fù)原的步驟;和在所述內(nèi)部信息在所述第一和第二運(yùn)算處理裝置中已被復(fù)原的情況下,解除對從所述第二控制裝置對所述第一控制裝置發(fā)出的指令的抑制,重新開始所述第一和第二運(yùn)算處理裝置的同步動作的步驟。
[0016]優(yōu)選,在本發(fā)明的控制方法中,還具有:在被檢測到所述異常的運(yùn)算處理裝置的指令發(fā)出被停止的情況下,判斷重新開始所述第一和第二運(yùn)算處理裝置的同步動作的次數(shù)是否是規(guī)定次數(shù)以上的步驟;和在重新開始所述同步動作的次數(shù)在所述規(guī)定次數(shù)以上的情況下,使被保存在所述存儲裝置中的內(nèi)部信息只在所述第一和第二運(yùn)算處理裝置中的所述正常的運(yùn)算處理裝置中復(fù)原的步驟。
[0017]優(yōu)選,在本發(fā)明的控制方法中,還具有:當(dāng)在將被保存在所述存儲裝置中的內(nèi)部信息在所述已被初始化的第一和第二運(yùn)算處理裝置中復(fù)原的途中,再次檢測到被檢測出所述異常的運(yùn)算處理裝置中的異常的情況下,中斷針對被檢測到所述異常的運(yùn)算處理裝置的所述內(nèi)部信息的復(fù)原的步驟;只重新開始所述內(nèi)部信息已被復(fù)原的正常的運(yùn)算處理裝置的動作的步驟;和解除對從所述第二控制裝置向所述第一控制裝置發(fā)出的指令的抑制的步驟。
[0018]此外,本發(fā)明的信息處理裝置,具備具有同時執(zhí)行同一處理的相互冗余化的第一和第二運(yùn)算處理裝置、與所述第一和第二運(yùn)算處理裝置連接的第一控制裝置和與所述第一控制裝置連接的存儲裝置的第一系統(tǒng)板;具有第二控制裝置的第二系統(tǒng)板;和中繼所述第一和第二系統(tǒng)板的中繼裝置,所述第一系統(tǒng)板具有:指令投入單元,把從所述第一和第二運(yùn)算處理裝置中的任意一個運(yùn)算處理裝置發(fā)出的指令通過所述中繼裝置對所述第二系統(tǒng)板投入;同步崩潰檢測單元,通過檢測出在所述第一和第二運(yùn)算處理裝置中的任意一個運(yùn)算處理裝置中發(fā)生的異常,來檢測出同步崩潰;指令發(fā)出停止單元,指示所述指令投入單元,使被檢測到異常的運(yùn)算處理裝置的指令發(fā)出停止;指令抑制單元,抑制從所述第二系統(tǒng)板對所述第一控制裝置投入的指令;保存單元,使所述第一和第二運(yùn)算處理裝置中的正常的運(yùn)算處理裝置具有的內(nèi)部信息保存到所述存儲裝置中;初始化單元,進(jìn)行所述第一和第二運(yùn)算處理裝置的初始化;復(fù)原單元,把保存在所述存儲裝置中的內(nèi)部信息在所述已被初始化的第一和第二運(yùn)算處理裝置中復(fù)原;和指令抑制解除單元,在所述內(nèi)部信息在所述第一和第二運(yùn)算處理裝置中已被復(fù)原的情況下,解除對從所述第二系統(tǒng)板向所述第一控制裝置發(fā)出的指令的抑制,使所述第一和第二運(yùn)算處理裝置的同步動作重新開始。
[0019]優(yōu)選,在本發(fā)明的信息處理裝置中,所述第一系統(tǒng)板還具有判斷單元,該判斷單元,在被檢測到所述異常的運(yùn)算處理裝置的指令發(fā)出被停止的情況下,判斷重新開始所述第一和第二運(yùn)算處理裝置的同步動作的次數(shù)是否是規(guī)定次數(shù)以上,在重新開始所述同步動作的次數(shù)是所述規(guī)定次數(shù)以上的情況下,使所述復(fù)原單元把被保存在所述存儲裝置中的內(nèi)部信息只在所述第一和第二運(yùn)算處理裝置中的所述正常的運(yùn)算處理裝置中復(fù)原。
[0020]優(yōu)選,在本發(fā)明的信息處理裝置中,所述第一系統(tǒng)板還具有復(fù)原中斷單元,該復(fù)原中斷單元,當(dāng)在將被保存在所述存儲裝置中的內(nèi)部信息在所述已被初始化的第一和第二運(yùn)算處理裝置中復(fù)原的途中,所述同步崩潰檢測單元再次檢測到被檢測出所述異常的運(yùn)算處理裝置中的異常的情況下,中斷針對被檢測到所述異常的運(yùn)算處理裝置的所述內(nèi)部信息的復(fù)原,只使所述內(nèi)部信息已被復(fù)原的正常的運(yùn)算處理裝置的動作重新開始,解除對從所述第二控制裝置向所述第一控制裝置發(fā)出的指令的抑制。
[0021]本發(fā)明,例如,如果檢測到被冗余化的運(yùn)算處理裝置亦即冗余CPU中的任意一個(PU的錯誤引起的冗余運(yùn)算處理裝置(冗余CPU)的同步崩潰,就在抑制從外部的裝置對本系統(tǒng)發(fā)出的指令后,把正常的CPU(以下記載為“正常CPU”)的內(nèi)部信息和高速緩存器數(shù)據(jù)保存到與北橋芯片連接的主存儲器等存儲裝置中。而且,本發(fā)明把發(fā)生上述錯誤的CPU(以下,記載為“異常發(fā)生CPU”)和正常CPU復(fù)位,把保存到上述存儲裝置中的正常CPU的內(nèi)部信息在所述已被復(fù)位的異常發(fā)生CPU內(nèi)和正常CPU內(nèi)復(fù)原。而且,本發(fā)明,在內(nèi)部信息在異常發(fā)生CPU內(nèi)和正常CPU內(nèi)被復(fù)原了時,解除對從上述外部的裝置對本系統(tǒng)發(fā)出的指令的抑制,重新開始異常發(fā)生CPU和正常CPU的同步動作,由此,使上述冗余CPU再同步。因此,根據(jù)本發(fā)明,在發(fā)生了 CPU之間的同步崩潰時,不用重啟OS,就能進(jìn)行冗余CPU的再同步處理。此外,本發(fā)明的冗余CPU的再同步處理不依賴于在系統(tǒng)上動作的OS具有的功能,所以能夠使用通用的OS實(shí)現(xiàn)。
[0022]此外,本發(fā)明,例如在停止了從異常發(fā)生CPU向外部裝置的指令的發(fā)出時,判斷冗余CPU的再同步的實(shí)施次數(shù)是否是冗余CPU的再同步的實(shí)施次數(shù)的上限值以上,在判斷為冗余CPU的再同步的實(shí)施次數(shù)是冗余CPU的再同步的實(shí)施次數(shù)的上限值以上的情況下,只繼續(xù)正常CPU的運(yùn)行。因此,根據(jù)本發(fā)明,例如當(dāng)在冗余CPU中的任意一個CPU中產(chǎn)生固定故障時,能夠繼續(xù)正常CPU的運(yùn)行,使可以最大限度利用系統(tǒng)中搭載的CPU資源的連續(xù)運(yùn)行成為可能)。
[0023]此外,本發(fā)明,當(dāng)在將保存到所述存儲裝置中的正常CPU的內(nèi)部信息在所述被復(fù)位的異常發(fā)生CPU內(nèi)和正常CPU內(nèi)復(fù)原的途中,再次檢測到異常發(fā)生CPU中的錯誤時,中斷上述內(nèi)部信息向異常發(fā)生CPU內(nèi)的復(fù)原,只重新開始內(nèi)部信息已被復(fù)原的正常CPU的運(yùn)行,解除對從外部裝置對本系統(tǒng)發(fā)出的指令的抑制。因此,根據(jù)本發(fā)明,例如當(dāng)在冗余CPU的再同步處理的途中,在異常發(fā)生CPU中再次發(fā)生錯誤時,能夠重新開始正常CPU的運(yùn)行。因此,根據(jù)本發(fā)明,使可以最大限度利用系統(tǒng)中搭載的CPU資源的連續(xù)運(yùn)行成為可能)。
【專利附圖】
【附圖說明】
[0024]圖1是表示本實(shí)施方式的整體結(jié)構(gòu)的一例的圖。
[0025]圖2是說明本實(shí)施方式的冗余CPU的再同步處理的概要的圖。
[0026]圖3是說明本實(shí)施方式的冗余CPU的再同步處理的概要的圖。
[0027]圖4是說明本實(shí)施方式的冗余CPU的再同步處理的概要的圖。
[0028]圖5是說明本實(shí)施方式的冗余CPU的再同步處理的概要的圖。
[0029]圖6是說明本實(shí)施方式的冗余CPU的再同步處理的概要的圖。
[0030]圖7是說明本實(shí)施方式的冗余CPU的再同步處理的概要的圖。
[0031]圖8是說明本實(shí)施方式的冗余CPU的再同步處理的概要的圖。
[0032]圖9是說明本實(shí)施方式的冗余CPU的再同步處理的概要的圖。
[0033]圖10是說明本實(shí)施方式的冗余CPU的再同步處理的概要的圖。
[0034]圖11是說明本實(shí)施方式的冗余CPU的再同步處理的概要的圖。
[0035]圖12是說明本實(shí)施方式的冗余CPU的再同步處理的概要的圖。
[0036]圖13是說明本實(shí)施方式的冗余CPU的再同步處理的概要的圖。
[0037]圖14是說明本實(shí)施方式的冗余CPU的再同步處理的概要的圖。
[0038]圖15是表示本實(shí)施方式的實(shí)施例涉及的系統(tǒng)結(jié)構(gòu)例的圖。
[0039]圖16是表示SB#0的結(jié)構(gòu)例的圖。
[0040]圖17是表示本實(shí)施方式的冗余CPU的再同步處理流程的一例的圖。[0041]圖18是表示本實(shí)施方式的冗余CPU的再同步處理流程的一例的圖。
[0042]符號的說明
[0043]5-U5-2-全局地址交叉開關(guān);6-1、6-2、6-3、6-4_全局?jǐn)?shù)據(jù)交叉開關(guān);7_系統(tǒng)控制裝置;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-數(shù)據(jù)總線;100_檢查電路;101_CPU總線同步檢查電路;102_切換控制寄存器;103-復(fù)位控制寄存器;104_再同步控制寄存器;105_切換/再同步控制電路;106-切換開關(guān);117-主隊(duì)列;108-LCST生成電路;109_重試控制寄存器;110-探聽標(biāo)簽;111-從屬請求控制電路;202-LRA包;200-全局地址優(yōu)先級控制電路;201-GCST生成電路。
【具體實(shí)施方式】
[0044]圖1是表示本實(shí)施方式的整體結(jié)構(gòu)的一例的圖。本實(shí)施方式例如作為具有圖1所示那樣的多個系統(tǒng)板(SB#0?SB#7)的多處理器系統(tǒng)實(shí) 現(xiàn)。圖1所示的10U#0、…、10U#7分別是與SB#0、…、SB#7對應(yīng)的I/O單元。另外,該多處理器系統(tǒng)具有的系統(tǒng)板的數(shù)量、I/O單元的數(shù)量并不由圖1所示的系統(tǒng)板的數(shù)量、I/O單元的數(shù)量限定。
[0045]本實(shí)施方式例如作為如下的信息處理裝置而實(shí)現(xiàn):具備具有同時執(zhí)行同一處理的相互冗余化的第一和第二運(yùn)算處理裝置(例如圖1中的CPU12-0和CPU12-2)、與上述第一和第二運(yùn)算處理裝置連接的第一控制裝置(例如北橋芯片11)和與上述第一控制裝置連接的存儲裝置(例如存儲器15-1?15-4)的第一系統(tǒng)板(例如,SB#0)、具有第二控制裝置(省略圖示的北橋芯片11以外的北橋芯片)的第二系統(tǒng)板(例如SB#7)、中繼所述第一和第二系統(tǒng)板的中繼裝置(例如全局地址交叉開關(guān)5-1)。所述彼此被冗余化的第一和第二信息處理裝置例如是通過同步動作被冗余化的CPU對(冗余CPU)。
[0046]此外,本實(shí)施方式例如作為如下的信息處理裝置而實(shí)現(xiàn):具有同時執(zhí)行同一處理的相互冗余化的第一和第二運(yùn)算處理裝置(例如圖1中的CPU12-0和CPU12-2)、與上述第一和第二運(yùn)算處理裝置連接的第一控制裝置(例如北橋芯片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。同步動作是指同時執(zhí)行同一處理。SB#0以外的其它系統(tǒng)板具有與SB#0同樣的結(jié)構(gòu)。
[0048]北橋芯片11檢測出由于構(gòu)成冗余CPU的CPU對中的一方CPU(單系統(tǒng)CPU)產(chǎn)生錯誤導(dǎo)致無法取得冗余CPU之間的同步的冗余(同步)崩潰,按照基于FWH13-1或者13-2中保存的固件的控制,進(jìn)行冗余CPU的再同步處理。冗余(同步)崩潰是指構(gòu)成冗余CPU的CPU對無法進(jìn)行同步動作。此外,冗余CPU的再同步處理是使CPU再次返回冗余結(jié)構(gòu)的處理。北橋芯片11不用重啟在系統(tǒng)上工作的OS,即可執(zhí)行冗余CPU的再同步處理。[0049]FWH13-1U3-2是保存固件的ROM,F(xiàn)WH13-1、13_2中保存的固件控制北橋芯片11,使冗余CPU進(jìn)行再同步處理。在存儲器15-1?15-4中存儲各種數(shù)據(jù)。存儲器控制器14-1、
14-2、14-3、14-4分別控制與存儲器15_1、15_2、15_3、15_4之間的數(shù)據(jù)寫或者讀處理。CPU總線16-1是CPU12-0及CPU12-1和北橋芯片11之間的通信接口,CPU總線16_2是CPU12-2及CPU12-3和北橋芯片11之間的通信接口。
[0050]5-1、5_2是作為把從各系統(tǒng)板發(fā)出的指令以及成為該指令的對象的地址(例如,針對加載指令或者存儲指令的存儲器地址等)對其它系統(tǒng)板以及I/o單元中繼的地址中繼單元的全局地址交叉開關(guān),6-1?6-4是作為在系統(tǒng)板之間、I/O單元之間以及在系統(tǒng)板和I/O單元之間,中繼數(shù)據(jù)的處理單元的全局?jǐn)?shù)據(jù)交叉開關(guān)。7是向系統(tǒng)板和I/O單元具有的寄存器(省略圖示)設(shè)定各種設(shè)定值的SVP(服務(wù)處理器)等系統(tǒng)控制裝置。例如系統(tǒng)控制裝置7在SB#0內(nèi)的北橋芯片11具有的寄存器中設(shè)定冗余CPU的再同步的實(shí)施次數(shù)的上限值。
[0051]首先,說明各系統(tǒng)板具有的北橋芯片的通常的動作。
[0052]北橋芯片(例如北橋芯片11)在進(jìn)行通常的動作時,把從該北橋芯片具有的各CPU發(fā)出的指令(操作碼)和成為指令的對象的地址(以下記載為“地址/操作碼”)對全局地址交叉開關(guān)投入。從其它系統(tǒng)板內(nèi)的CPU發(fā)出的地址/操作碼也被投入全局地址交叉開關(guān))。全局地址交叉開關(guān)根據(jù)規(guī)定的優(yōu)先級順序,從被投入的地址/操作碼中選擇特定的地址/操作碼,通知給各系統(tǒng)板。即北橋芯片是通過全局地址交叉開關(guān)把從本系統(tǒng)板內(nèi)的CPU發(fā)出的指令作為外部指令對包含本系統(tǒng)板在內(nèi)的全部系統(tǒng)板投入的外部指令投入單元。
[0053]如果從全局地址交叉開關(guān)接受了上述通知,各系統(tǒng)板具有的北橋芯片(例如北橋芯片11)就把包含表示與本北橋芯片對應(yīng)的系統(tǒng)板能否繼續(xù)執(zhí)行關(guān)于被選擇的地址/操作碼的處理的信息(處理可否信息)和表示本北橋芯片所對應(yīng)的系統(tǒng)板把針對上述被通知的地址的數(shù)據(jù)在系統(tǒng)板內(nèi)的哪里和以怎樣的狀態(tài)保持的信息(數(shù)據(jù)狀態(tài)信息)的信息包(參照圖15,后面描述的LCST包)對全局地址交叉開關(guān)投入。在本實(shí)施方式特有的動作中,檢測到冗余CPU的冗余(同步)崩潰的北橋芯片例如將作為處理可否信息的Retry (重試)對全局地址交叉開關(guān)投入。重試是因?yàn)闊o法接受從外部對系統(tǒng)板發(fā)出的指令而指示該指令的發(fā)出源再次投入指令的控制信號。
[0054]已被投入處理可否信息和數(shù)據(jù)狀態(tài)信息的全局地址交叉開關(guān)向各系統(tǒng)板具有的北橋芯片通知上述處理可否信息和數(shù)據(jù)狀態(tài)信息。接受了通知的系統(tǒng)板具有的北橋芯片執(zhí)行本北橋芯片應(yīng)該執(zhí)行的指令。北橋芯片根據(jù)需要,通過數(shù)據(jù)交叉開關(guān)從與本北橋芯片所對應(yīng)的系統(tǒng)板不同的其它系統(tǒng)板接收指令的執(zhí)行所需要的數(shù)據(jù)。例如,在SB#0對存儲器
15-1寫入數(shù)據(jù)時,SB#0根據(jù)需要,通過全局?jǐn)?shù)據(jù)交叉開關(guān)6-1從SB#7接收作為寫入對象的數(shù)據(jù)。然后,SB#0通過存儲器控制器14-1的控制,向存儲器15-1內(nèi)寫入數(shù)據(jù)。
[0055]下面,說明本實(shí)施方式的冗余CPU的再同步處理的概要。首先,如圖2所示那樣,北橋芯片11檢測出由于在由CPU12-0和CPU12-2構(gòu)成的冗余CPU中的異常發(fā)生CPU (CPU12-2)中發(fā)生的錯誤(異常)引起的冗余(同步)崩潰。
[0056]接著,如圖3所示那樣,北橋芯片11使連接異常發(fā)生CPU(CPU12_2)的CPU總線(異常CPU總線)即CPU總線16-2的動作停止,停止來自CPU12-2、CPU12-3的、通過CPU總線16-2、北橋芯片11向北橋芯片11的外部裝置的指令的發(fā)出。圖3中的斜線表示連接異常發(fā)生CPU的CPU總線16-2的動作是停止?fàn)顟B(tài)(在圖4?圖8、圖13、圖14中也同樣)。
[0057]接著,如圖4所示那樣,北橋芯片11將表示異常發(fā)生CPU所連接的CPU總線16_2的動作是停止?fàn)顟B(tài)的信息對作為正常CPU總線的CPU總線16-1進(jìn)行中斷通知。這里,正常CPU總線是指連接了與異常發(fā)生CPU成為冗余結(jié)構(gòu)的對的正常的CPU的CPU總線。而且,將表示異常CPU總線(CPU總線16-2)的動作已停止的信息通過CPU總線16_1對連接在CPU總線16-1上的CPU12-0、CPU12-1進(jìn)行中斷通知。
[0058]如果對CPU12-0、12-1進(jìn)行了上述中斷通知,CPU12_0、12_1就被分配給圖1所示的FWH13-1 (或者FWH13-2)中保存的固件,暫停運(yùn)行中的OS的處理。
[0059]接著,固件對北橋芯片11發(fā)送控制信號,如圖5所示那樣,對北橋芯片11指示對全局地址交叉開關(guān)5-1繼續(xù)投入重試。北橋芯片11對全局地址交叉開關(guān)5-1繼續(xù)投入重試,從而抑制了從SB#0以外的系統(tǒng)板對SB#0具有的北橋芯片11發(fā)出的指令(外部指令)。
[0060]例如,從圖5所示的SB#7具有的北橋芯片21發(fā)出了指令(參照圖5中的#A),即使從全局地址交叉開關(guān)5-1對北橋芯片11發(fā)出了該指令(參照圖5中的#B),北橋芯片11也對全局地址交叉開關(guān)5-1投入重試信息(參照圖5中的#C),重試信息通過全局地址交叉開關(guān)5-1被通知到北橋芯片21 (參照圖5中的#D)。其結(jié)果,抑制了從北橋芯片21對北橋芯片11發(fā)出的指令的接受,抑制了基于SB#0具有的CPU12-0U2-1的指令的執(zhí)行。
[0061 ] 接著,固件對作為正常CPU的CPUl2-0、12_1指示,如圖6所示那樣,把為了使冗余CPU再同步所需要的CPU的內(nèi)部信息(例如在CPU12-0中發(fā)生異常的瞬間的CPU12-0內(nèi)、CPU12-1內(nèi)的寄存器的信息等)保存到存儲器15-1。上述正常CPU是連接在正常CPU總線上的CPU。即固件是使冗余CPU中正常的CPU具有的內(nèi)部信息保存到存儲裝置的保存單元。
[0062]此外,固件對CPU12-0、CPU12-1指示,如圖7所示那樣,把CPU12-0內(nèi)的高速緩存器數(shù)據(jù)和CPU12-1內(nèi)的高速緩存器數(shù)據(jù)向存儲器15-1寫出并保存。
[0063]接著,在全部正常CPU(CPU12_0、CPU 12_1),完成了將高速緩存器數(shù)據(jù)向存儲器
15-1的寫出的時間點(diǎn),固件對北橋芯片11指示清除北橋芯片11具有的探聽標(biāo)簽(圖8中的探聽標(biāo)簽110)保持的各CPU的高速緩存器狀態(tài)信息。探聽標(biāo)簽110是保持與北橋芯片11連接的CPU的內(nèi)部的高速緩存器狀態(tài)信息的存儲單元。此外,高速緩存器狀態(tài)信息是表示CPU具有的高速緩存器的狀態(tài)的信息,例如是表示本CPU是否在高速緩存器內(nèi)保持了存儲器15-1中存儲的數(shù)據(jù)的信息或者表示本CPU把哪個系統(tǒng)板的存儲器中存儲的數(shù)據(jù)以怎樣的狀態(tài)在高速緩存器中保持的信息。
[0064]接著,如圖9所示那樣,北橋芯片11對與北橋芯片11連接的各CPU (CPU12-0、CPU
12-1、CPU 12-2,CPU 12-3)同時發(fā)出Reset (復(fù)位),把各CPU初始化,重新開始冗余CPU的同步動作。Reset是使CPU初始化的控制信號。
[0065]此外,固件進(jìn)行各CPU的初始化,使CPU內(nèi)部信息在各CPU對內(nèi)復(fù)原,該CPU內(nèi)部信息是在參照圖6在前面描述的CPU內(nèi)部信息向存儲器15-1的保存處理中被保存到存儲器15-1中的。
[0066]具體而言,圖10所示的CPU12-0、CPU12-2從固件接受指示,把保存在存儲器15_1的CPU12-0的內(nèi)部信息在本CPU內(nèi)復(fù)原。此外,圖10所示的CPU12-l、CPU12-3從固件接受指示,把保存在存儲器15-1的CPU12-1的內(nèi)部信息在本CPU內(nèi)復(fù)原。即固件的一部分是使保存在存儲裝置的正常CPU的內(nèi)部信息在已被初始化的異常發(fā)生CPU內(nèi)和正常CPU內(nèi)復(fù)原的復(fù)原單元。
[0067]根據(jù)參照圖10說明的存儲在存儲器15-1內(nèi)的CPU內(nèi)部信息向各CPU對的復(fù)原處理,各CPU對恢復(fù)到冗余結(jié)構(gòu)。
[0068]如果在與北橋芯片11連接的全部CPU中完成了初始化和內(nèi)部信息的復(fù)原,就如圖11所示那樣,固件對北橋芯片11指示解除對外部指令的投入抑制。即固件,通過使北橋芯片11停止向全局地址交叉開關(guān)5-1投入重試,來解除對外部指令的投入抑制。
[0069]北橋芯片11解除對外部指令的投入抑制,由此,各CPU對(CPU12-0和CPU12-2對,CPU12-1和CPU12-3對)重新開始同步動作(實(shí)現(xiàn)冗余CPU的再同步)。
[0070]例如,如果如圖12所示那樣,從SB#7具有的北橋芯片21發(fā)出了指令(參照圖12中的#A),并從全局地址交叉開關(guān)5-1對北橋芯片11傳送了該指令(參照圖12中的#B),則接受指令的北橋芯片11通過全局地址交叉開關(guān)5-1對北橋芯片21響應(yīng)能執(zhí)行指令(參照圖12中的#C、#D)。由冗余CPU執(zhí)行所接受的指令。
[0071]根據(jù)本實(shí)施方式的一個例子,在北橋芯片11內(nèi)的存儲單元預(yù)先存儲冗余CPU的再同步的實(shí)施次數(shù)的上限值。而且,如參照圖3所述那樣,如果停止了從異常CPU向北橋芯片11的外部裝置發(fā)出指令,固件就判斷冗余CPU的再同步的實(shí)施次數(shù)(重新開始同步動作的次數(shù))是否為上述存儲單元中存儲的該冗余CPU的再同步的實(shí)施次數(shù)的上限值以上。而且,固件在判斷為冗余CPU的再同步的實(shí)施次數(shù)是上述上限值以上的情況下,不實(shí)施冗余CPU的再同步處理,只繼續(xù)正常CPU總線(例如CPU總線16-1)和該正常CPU總線上連接的CPU(例如CPU12-0、CPU12-1)的運(yùn)行,來進(jìn)行系統(tǒng)的繼續(xù)運(yùn)行。即,固件的一部分是在停止了異常CPU發(fā)出指令的情況下,判斷重新開始CPU的同步動作的次數(shù)是否是規(guī)定次數(shù)以上,在重新開始同步動作的次數(shù)是上述規(guī)定次數(shù)以上的情況下,使復(fù)原單元只把保存在存儲裝置中的內(nèi)部信息在正常的CPU內(nèi)復(fù)原的判斷單元。
[0072]另外,根據(jù)本實(shí)施方式的一個例子,當(dāng)在參照圖10描述的全部CPU完成了 CPU的初始化和內(nèi)部信息的復(fù)原處理之前,異常發(fā)生CPU中發(fā)生錯誤,再次發(fā)生再次冗余CPU的冗余(同步)崩潰的情況下,固件指示北橋芯片11中斷冗余CPU的再同步處理(即中斷內(nèi)部信息向異常發(fā)生CPU內(nèi)的復(fù)原),只重新開始內(nèi)部信息已被復(fù)原的正常CPU和連接該正常CPU的正常CPU總線的運(yùn)行(單系統(tǒng)運(yùn)行),并且指示解除對外部指令的抑制。其結(jié)果,例如如圖13所示那樣,CPU總線16-2的動作保持停止?fàn)顟B(tài)不變,CPU總線16_1的動作成為工作狀態(tài),此外,解除了基于北橋芯片11的對外部指令的抑制。即,固件是如下的復(fù)原中斷單元:當(dāng)在將保存在存儲器15-1中的內(nèi)部信息在已被初始化的異常發(fā)生CPU內(nèi)和正常CPU內(nèi)復(fù)原的途中,再次檢測到異常發(fā)生CPU中的異常的情況下,中斷針對上述異常發(fā)生CPU的內(nèi)部信息的復(fù)原,只重新開始內(nèi)部信息已被復(fù)原的正常CPU的動作,解除對向系統(tǒng)板(SB#0)發(fā)出的指令的抑制。
[0073]北橋芯片11解除對外部指令的投入抑制,例如如圖14所示那樣,從SB#7具有的北橋芯片21發(fā)出了指令(參照圖14中的#A),并從全局地址交叉開關(guān)5-1對北橋芯片11發(fā)出該指令(參照圖14中的#B)。北橋芯片11通過全局地址交叉開關(guān)5-1對北橋芯片響應(yīng)能執(zhí)行指令(參照圖14中的#C、#D)。
[0074]圖15是表不本實(shí)施方式的一個例子的系統(tǒng)結(jié)構(gòu)例的圖,圖16是表不圖15所示的SB#0的結(jié)構(gòu)例的圖。在圖15、圖16所示的例子中,本實(shí)施方式的信息處理裝置由SMP (Symmetric Multiple Processor,對稱式多處理器)構(gòu)成,作為多處理器系統(tǒng)中的冗余CPU的再同步系統(tǒng)而構(gòu)成。
[0075]通過搭載多個CPU (圖16中的CPU12-0?CPU12-3)和存儲器(例如圖16中的存儲器15-1)的多個系統(tǒng)板(SB#0?SB#N)借助于全局地址交叉開關(guān)5-1和全局?jǐn)?shù)據(jù)交叉開關(guān)6-1連接起來,來構(gòu)成圖15所示的本實(shí)施方式的信息處理裝置。
[0076]如后所述那樣,圖16所示的SB#0具有的CPU12-0和CPU12_2、CPU12-1和CPU12-3分別是基于同步動作被冗余化的CPU的對(冗余CPU)。此外,全局地址交叉開關(guān)5-1是把從各系統(tǒng)板發(fā)出的指令和成為該指令的對象的地址對其他系統(tǒng)板中繼的地址中繼單元。此夕卜,各系統(tǒng)板具有與圖16中所示的SB#0同樣的結(jié)構(gòu)。即本實(shí)施方式的信息處理裝置是由多個系統(tǒng)板構(gòu)成的多處理器系統(tǒng),該多個系統(tǒng)板分別具有通過同步動作被冗余化的CPU對即冗余CPU,通過中繼指令和成為該指令的對象的地址的地址中繼單元被連接起來。
[0077]與系統(tǒng)管理者對話的終端8所連接的系統(tǒng)控制裝置7與該信息處理裝置連接。系統(tǒng)控制裝置7按照從終端8輸入的控制信號,對各系統(tǒng)板具有的北橋芯片(例如圖16中的北橋芯片11)發(fā)出指令,進(jìn)行分區(qū)(partition)的結(jié)構(gòu)設(shè)定和北橋芯片的動作模式的設(shè)定等系統(tǒng)整體的管理。分區(qū)是由系統(tǒng)板和I/O單元(在圖15、圖16中,省略圖示)構(gòu)成的系統(tǒng)。
[0078]作為構(gòu)成圖15所示的信息處理裝置的系統(tǒng)板之一的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進(jìn)行存儲器15-1的控制。后面描述存儲器控制器14-1的具體的功能。FWH13-1與圖1中所示的FWH13-1同樣。后面描述FWH13-1的具體的功能。
[0080]這里,構(gòu)成圖15所示的信息處理裝置的各系統(tǒng)板(例如SB#0)生成包含本系統(tǒng)板上所搭載的CPU發(fā)出的指令和成為該指令的對象的地址(地址/操作碼)的本地請求地址包(以下稱作LRA包(Local Request Address包))202,并對全局地址交叉開關(guān)5_1投入。LRA包202例如操作碼、地址、包ID、boardID (板ID)、重試次數(shù)信息、分區(qū)信息(例如分區(qū)的識別信息)等信息構(gòu)成。上述ID是LRA包202的識別信息,boardID是作為該LRA包202的發(fā)出源的系統(tǒng)板的識別信息(例如板編號)。
[0081]全局地址交叉開關(guān)5-1如果接受了圖15所示的LRA包202的投入,全局地址交叉開關(guān)5-1具有的全局地址優(yōu)先級控制電路200就從被投入的LRA包202中,根據(jù)預(yù)先決定的優(yōu)先級順序,把特定的LRA包202作為全局選擇地址包(以下稱作GSA包(Global SelectAddress包))進(jìn)行選擇。而且,全局地址優(yōu)先級控制電路200把GSA包對全部系統(tǒng)板廣播。全局地址優(yōu)先級控制電路200也可以把GSA包對同一分區(qū)內(nèi)的全部系統(tǒng)板廣播。
[0082]GSA包是用于把作為系統(tǒng)而應(yīng)該執(zhí)行的地址/操作碼對系統(tǒng)板通知的信息包。GSA包包含與LRA包202中包含的信息相同的信息。
[0083]各系統(tǒng)板具有的LCST生成電路(例如圖16中的LCST生成電路108)如果收到了GSA包,就把本地高速緩存器狀態(tài)包(以下稱作LCST包(Local Cache STate包))發(fā)送至全局地址交叉開關(guān)5-1。LCST包包含處理可否信息和數(shù)據(jù)狀態(tài)信息,是用于把該處理可否信息和數(shù)據(jù)狀態(tài)信息對全局地址交叉開關(guān)5-1通知的信息包。處理可否信息是表示本系統(tǒng)板能否繼續(xù)執(zhí)行GSA包中包含的指令所指示的處理(關(guān)于GSA包中包含的地址/操作碼的處理)、對該指令的發(fā)出源的系統(tǒng)板是否指示重試的信息。數(shù)據(jù)狀態(tài)信息是表示本系統(tǒng)板把上述GSA包中包含的地址所對應(yīng)的數(shù)據(jù)在本系統(tǒng)板內(nèi)的哪里而且以怎樣的狀態(tài)保持的信肩、O
[0084]全局地址交叉開關(guān)5-1如果從各系統(tǒng)板具有的LCST生成電路接收到LCST包,圖15中所示的全局地址交叉開關(guān)5-1具有的GCST生成電路201就生成全局緩存器狀態(tài)包(以下稱作GCST包),把GCST包對全部系統(tǒng)板廣播。GCST生成電路201也可以把GCST包對同一分區(qū)內(nèi)的系統(tǒng)板廣播。GCST包是用于把從各系統(tǒng)板對全局地址交叉開關(guān)通知的LCST包中包含的處理可否信息和數(shù)據(jù)狀態(tài)信息對全部的系統(tǒng)板通知的信息包。
[0085]GCST生成電路201向各系統(tǒng)板具有的北橋芯片(例如圖16所示的SB#0具有的北橋芯片11)內(nèi)的從屬請求控制電路(例如圖16所示的從屬請求控制電路111)發(fā)送GCST包。例如,圖16所示的從屬請求控制電路111從圖15所示的GCST生成電路201接收GCST包,并把GCST包變換為針對存儲器控制器14-1的控制信號(存儲器從屬請求(slaverequest))、針對CPU的控制信號(CPU從屬請求)、針對FWH13-1的控制信號(FWH從屬請求)。然后,從屬請求控制電路111向存儲器控制器14-1發(fā)送存儲器從屬請求,向CPU發(fā)送CPU從屬請求,向FWH13-1發(fā)送FWH從屬請求,使本系統(tǒng)板執(zhí)行應(yīng)該執(zhí)行的指令。
[0086]本實(shí)施方式的信息處理裝置例如按照上述的動作,實(shí)現(xiàn)對全部的系統(tǒng)板內(nèi)的CPU,對稱地均一地分配處理。
[0087]下面,以SB#0具有的北橋芯片11的結(jié)構(gòu)為例,說明各系統(tǒng)板具有的北橋芯片的結(jié)構(gòu)。
[0088]北橋芯片11如圖16所示,具有檢查電路100、CPU總線同步檢查電路101、切換控制寄存器102、復(fù)位控制寄存器103、再同步控制寄存器104、切換/再同步控制電路105、切換開關(guān)106、主隊(duì)列107、LCST生成電路108、重試控制寄存器109、探聽標(biāo)簽110、從屬請求控制電路111、指令譯碼器112。
[0089]檢查電路100 通過 CPU 總線 16-1、16-2 接收從 CPU (CPU12-0 和 CPU12-1、CPU12-2和CPU12-3)發(fā)送的信息包,進(jìn)行ECC和奇偶校驗(yàn)等檢查。檢查電路100如果通過檢查,檢測到錯誤,就向切換/再同步控制電路105進(jìn)行錯誤通知。
[0090]CPU總線同步檢查電路101以構(gòu)成冗余CPU的CPU對所連接的CPU總線為單位進(jìn)行同步檢查。即CPU總線同步檢查電路101檢查構(gòu)成冗余CPU的CPU對是否進(jìn)行了同步動作。CPU總線同步檢查電路101如果檢測到同步崩潰,就向切換/再同步控制電路105進(jìn)行錯誤通知。另外,當(dāng)在CPU內(nèi)部檢測到錯誤的情況下,檢測到錯誤的CPU對切換/再同步控制電路105進(jìn)行錯誤通知(內(nèi)部錯誤通知)。
[0091]上述檢查電路100和CPU總線同步檢查電路101是通過檢測出構(gòu)成冗余CPU的CPU中的任意一個CPU中發(fā)生的異常,來檢測出同步崩潰的同步崩潰檢測單元。
[0092]在切換控制寄存器102中設(shè)定由CPU總線同步檢查電路101檢測到錯誤時的切換/再同步控制電路105的動作模式。系統(tǒng)控制裝置7通過指令譯碼器112在切換控制寄存器102中預(yù)先設(shè)定動作模式。例如,在切換控制寄存器102中,作為動作模式1,設(shè)定包含檢測到錯誤的北橋芯片的分區(qū)的停止,作為動作模式2,設(shè)定CPU總線16-1的無效,作為動作模式3,設(shè)定CPU總線16-2的無效。
[0093]復(fù)位控制寄存器103是為了進(jìn)行關(guān)于各CPU的復(fù)位控制而管理各CPU的狀態(tài)的寄存器。例如,如果在冗余CPU的再同步處理中,完成了 CPU的高速緩存器數(shù)據(jù)向存儲器15-1的保存,就根據(jù)FWH13-1中保存的固件的控制,在復(fù)位控制寄存器103內(nèi)建立與該CPU對應(yīng)的保存完成標(biāo)志。
[0094]再同步控制寄存器104是設(shè)定冗余CPU的再同步的實(shí)施次數(shù)的上限值(再同步可能上限值)和再同步可否標(biāo)志的寄存器。再同步可否標(biāo)志是表示冗余CPU的再同步是否可能的標(biāo)志。系統(tǒng)控制裝置7通過指令譯碼器112在再同步控制寄存器104中設(shè)定再同步可能上限值。
[0095]根據(jù)本發(fā)明的一個實(shí)施方式,F(xiàn)WH13-1中保存的固件比較再同步的實(shí)施次數(shù)和再同步控制寄存器104中所設(shè)定的再同步可能上限值,在再同步的實(shí)施次數(shù)低于再同步可能上限值的情況下,判斷為冗余CPU的再同步是可能的,在再同步控制寄存器104中,例如設(shè)定標(biāo)志I作為再同步可否標(biāo)志。固件在再同步的實(shí)施次數(shù)是再同步可能上限值以上的情況下,判斷為冗余CPU的再同步是不可能的,例如設(shè)定標(biāo)志O作為再同步可否標(biāo)志。
[0096]切換/再同步控制電路105是接收來自CPU、檢查電路100、CPU總線同步檢查電路101的錯誤通知,并控制切換開關(guān)106的動作的電路。切換/再同步控制電路105進(jìn)行以下的切換控制。
[0097]切換/再同步控制電路105在從CPU接受了內(nèi)部錯誤通知的情況下,把發(fā)生錯誤的CPU (單系統(tǒng)CPU)所連接的CPU總線設(shè)為無效,停止從CPU總線向全局地址交叉開關(guān)5-1發(fā)出指令。切換/再同步控制電路105在從檢查電路100接受了錯誤通知的情況下,把檢測到錯誤的CPU總線設(shè)為無效,停止從CPU總線向全局地址交叉開關(guān)5-1發(fā)出指令。此外,切換/再同步控制電路105在從CPU總線同步檢查電路101接受了錯誤通知的情況下,進(jìn)行按照切換控制寄存器102中設(shè)定的動作模式的動作。即切換/再同步控制電路105是使檢測到異常的CPU向SB#0的外部裝置發(fā)出指令停止的指令發(fā)出停止單元。
[0098]此外,切換/再同步控制電路105把接受了錯誤通知作為契機(jī),對正常CPU總線上所連接的CPU發(fā)出中斷。通過中斷處理,把CPU分配給固件。
[0099]此外,切換/再同步控制電路105監(jiān)視復(fù)位控制寄存器103,如果確認(rèn)全部CPU已建立了保存完成標(biāo)志,就向全部CPU發(fā)出復(fù)位指令。即切換/再同步控制電路105是進(jìn)行發(fā)生異常的異常發(fā)生CPU和正常CPU的初始化的初始化單元。
[0100]此外,例如當(dāng)在冗余CPU的再同步處理中,在異常發(fā)生CPU中發(fā)生錯誤,再次發(fā)生冗余CPU的冗余(同步)崩潰的情況下,切換/再同步控制電路105接受來自固件的指示,只把正常CPU總線設(shè)為有效,只把通過正常CPU發(fā)出的指令對全局地址交叉開關(guān)5-1投入。
[0101]切換開關(guān)106按照切換/再同步控制電路105的指示,進(jìn)行CPU總線的切換。通過切換開關(guān)106進(jìn)行CPU總線的切換,例如決定把通過CPU總線16-1或CPU總線16_2中的哪個CPU總線發(fā)出的指令作為LRA包202對全局地址交叉開關(guān)5_1投入。
[0102]主隊(duì)列107把CPU發(fā)出的指令變換為芯片組(chipset)的LRA包202并保持,把所保持的LRA包202經(jīng)由切換開關(guān)106對全局地址交叉開關(guān)5_1投入。在指令完成之前由主隊(duì)列107保持LRA包202,當(dāng)在途中發(fā)生重試的情況下(即從本系統(tǒng)板以外的系統(tǒng)板指示本系統(tǒng)板發(fā)出的指令的重試的情況下),對全局地址交叉開關(guān)5-1再投入LRA包202。
[0103]LCST生成電路108從全局地址交叉開關(guān)5_1接收GSA包,并生成LCST包,把所生成的LCST包對全局地址交叉開關(guān)5-1投入。具體而言,LCST生成電路108如果接收到GSA包,就參照重試控制寄存器109,確認(rèn)在重試控制寄存器109中是否建立了后面描述的再同步中標(biāo)志。當(dāng)在重試控制寄存器109中建立了再同步中標(biāo)志的情況下,LCST生成電路108生成表示對GSA包中包含的指令的發(fā)出源指示重試的處理可否信息。當(dāng)在重試控制寄存器109中沒有建立再同步中標(biāo)志的情況下,LCST生成電路108接受GSA包中包含的指令,把所接受的指令作為本系統(tǒng)板(SB#0)應(yīng)該執(zhí)行的指令對從屬請求控制電路111通知,并且本系統(tǒng)板生成表示能繼續(xù)執(zhí)行GSA包中包含的指令的處理可否信息。
[0104]此外,LCST生成電路108參照探聽標(biāo)簽110,生成所述的數(shù)據(jù)狀態(tài)信息。而且,LCST生成電路108生成包含所生成的處理可否信息和數(shù)據(jù)狀態(tài)信息的LCST包,把LCST包對全局地址交叉開關(guān)5-1投入。
[0105]重試控制寄存器109是存儲表示是否關(guān)于本系統(tǒng)板的CPU進(jìn)行了再同步處理的信息的寄存器。如果開始了本系統(tǒng)板的CPU的再同步處理,為了抑制從其他系統(tǒng)板對本系統(tǒng)板發(fā)出的指令,就按照固件的指示,在重試控制寄存器109中建立再同步中標(biāo)志。此外,在內(nèi)部信息在本系統(tǒng)板內(nèi)的包含單系統(tǒng)CPU (異常CPU)和正常CPU在內(nèi)的全部CPU內(nèi)被復(fù)原時,固件如果對北橋芯片11指示了解除對外部指令的抑制,則將重試控制寄存器109的再冋步中標(biāo)志設(shè)定為無效。
[0106]如上所述,當(dāng)在重試控制寄存器109中建立了再同步中標(biāo)志的情況下,由LCST生成電路108生成包含表示指示重試的處理可否信息的LCST包,并對全局地址交叉開關(guān)5-1投入。即固件和LCST生成電路108是抑制從SB#0的外部裝置(例如圖15所示的SB#N)對SB#0發(fā)出的指令的指令抑制單元。
[0107]此外,通過在重試控制寄存器109中把再同步中標(biāo)志設(shè)定為無效,從而LCST生成電路108接受從全局地址交叉開關(guān)5-1接收到的GSA包中包含的指令。其結(jié)果,能夠使冗余CPU執(zhí)行所接受的指令,并重新開始冗余CPU的同步動作。即,固件是在內(nèi)部信息在異常發(fā)生CPU內(nèi)和正常CPU內(nèi)已被復(fù)原的情況下,解除對系統(tǒng)板(例如SB#0)發(fā)出的指令的抑制,重新開始異常發(fā)生CPU和正常CPU的同步動作的指令抑制解除單元。
[0108]探聽標(biāo)簽110是保持CPU內(nèi)部的高速緩存行的狀態(tài)信息(高速緩存器狀態(tài)信息)的存儲單元。后面描述的從屬請求控制電路111更新探聽標(biāo)簽內(nèi)的高速緩存器狀態(tài)信息。
[0109]從屬請求控制電路111從全局地址交叉開關(guān)5-1接收GCST包,根據(jù)GCST包中包含的信息和從LCST生成電路108通知的本系統(tǒng)板(SB#0)應(yīng)該執(zhí)行的指令,生成存儲器從屬請求、CPU從屬請求、FffH從屬請求。而且,從屬請求控制電路111對存儲器控制器14-1發(fā)送存儲器從屬請求,對CPU發(fā)送CPU從屬請求,對FWH13-1發(fā)送FWH從屬請求。此外,從屬請求控制電路111按照FWH13-1中保存的固件的指示,更新重試控制寄存器109、探聽標(biāo)簽110、再同步控制寄存器104和復(fù)位控制寄存器103的存儲內(nèi)容。
[0110]此外,例如,當(dāng)在冗余CPU的再同步處理中,在異常發(fā)生CPU中發(fā)生錯誤,再次發(fā)生冗余CPU的冗余(同步)崩潰的情況下,北橋芯片11再次停止異常發(fā)生CPU所連接的CPU總線的動作。據(jù)此,從屬請求控制電路111接受固件的指示,對全部CPU發(fā)送CPU從屬請求,但是,只由正常CPU執(zhí)行CPU從屬請求。[0111]指令譯碼器112對從系統(tǒng)控制裝置7對北橋芯片11發(fā)出的指令進(jìn)行譯碼,根據(jù)指令的譯碼結(jié)果,設(shè)定各系統(tǒng)板的板編號和所屬分區(qū),并且進(jìn)行針對切換控制寄存器102、重試控制寄存器109、再同步控制寄存器104的設(shè)定值的寫入/讀入。指令譯碼器112例如進(jìn)行針對切換控制寄存器102的切換/再同步控制電路105的動作模式的設(shè)定或從切換控制寄存器102讀出動作模式。此外,指令譯碼器112從重試控制寄存器109讀出表示是否建立了再同步中標(biāo)志的信息。此外,指令譯碼器112進(jìn)行針對再同步控制寄存器104的再同步可能上限值的設(shè)定或者從再同步控制寄存器104讀出表示是否已建立再同步可否標(biāo)志的信息。
[0112]下面,說明SB#0具有的存儲器控制器14-1的功能。存儲器控制器14-1進(jìn)行與從北橋芯片11內(nèi)的從屬請求控制電路111發(fā)送的從屬請求的內(nèi)容相應(yīng)的處理。存儲器控制器14-1例如進(jìn)行從CPU向存儲器15-1的數(shù)據(jù)寫入。此外,存儲器控制器14-1例如把通過圖15所示的全局?jǐn)?shù)據(jù)交叉開關(guān)6-1、數(shù)據(jù)總線20-1從SB#0以外的其他系統(tǒng)板對SB#0發(fā)送的數(shù)據(jù)對存儲器15-1寫入。
[0113]此外,存儲器控制器14-1從存儲器15-1讀出數(shù)據(jù),按照固件的指示,把讀出的數(shù)據(jù)對CPU發(fā)送。此外,存儲器控制器14-1從存儲器15-1讀出數(shù)據(jù),并把讀出的數(shù)據(jù)通過數(shù)據(jù)總線20-2、圖15所示的全局?jǐn)?shù)據(jù)交叉開關(guān)6-1對SB#0以外的其他系統(tǒng)板發(fā)送。
[0114]接著,說明SB#0具有的FWH13-1的功能。FWH13-1是保存固件的ROM。FWH13-1中保存的固件除了具有所述的各種功能(例如,作為保存單元、復(fù)原單元、判斷單元、復(fù)原中斷單元、指令抑制單元、指令抑制解除單元的功能)以外,還進(jìn)行與從從屬請求控制電路111發(fā)送的FWH從屬請求的內(nèi)容相應(yīng)的處理。例如,該固件向CPU發(fā)送數(shù)據(jù)。
[0115]下面,參照圖15?圖18,說明本發(fā)明的動作。圖17和圖18是表示本實(shí)施方式的冗余CPU的再同步處理流程的一個例子的圖。
[0116]首先,圖16中所示的CPU12-0和CPU12_2、CPU12-1和CPU12-3分別是被冗余化的冗余CPU。北橋芯片11監(jiān)視冗余CPU的同步崩潰。如果CPU內(nèi)部檢測出錯誤、由檢查電路100檢測出錯誤,或者由CPU總線同步檢查電路101檢測出錯誤,就對切換/再同步控制電路105進(jìn)行錯誤通知,在圖17的步驟SI中,切換/再同步控制電路105檢測出冗余CPU的同步崩潰(步驟SI)。例如,若在圖16中的CPU12-2中發(fā)生錯誤,而檢測到冗余CPU的同步崩潰,切換/再同步控制電路105就停止發(fā)生錯誤的CPU12-2所連接的異常CPU總線(例如CPU總線16-2)的動作(步驟S2)。在步驟S2中,例如在檢測到CPU內(nèi)部的錯誤或者由檢查電路100檢測出錯誤的情況下,切換/再同步控制電路105把發(fā)生錯誤的CPU總線設(shè)為無效。在進(jìn)行了基于CPU總線同步檢查電路101的錯誤檢出的情況下,切換/再同步控制電路105按照切換控制寄存器102的設(shè)定內(nèi)容,把異常CPU總線設(shè)為無效。
[0117]接著,如果完成了異常CPU總線的動作的停止,切換/再同步控制電路105就將表示在CPU總線中發(fā)生異常的信息(例如,CPU總線16-2的停止)向本系統(tǒng)板的有效的CPU總線上所連接的CPU (正常CPU)進(jìn)行中斷通知(步驟S3)。如果完成了向正常CPU的中斷通知,固件就參照再同步控制寄存器104中設(shè)定的再同步可否標(biāo)志,判斷可否實(shí)施冗余CPU的再同步(步驟S4)。
[0118]在固件判斷為無法實(shí)施冗余CPU的再同步的情況下,固件指示切換/再同步控制電路105,把正常CPU總線的動作設(shè)為有效,利用正常CPU總線繼續(xù)動作(步驟S17)。在固件判斷為能夠?qū)嵤┤哂郈PU的再同步(OK)的情況下,固件對北橋芯片11指示抑制外部指令(步驟S5)。具體而言,從屬請求控制電路111按照固件的指示,在重試控制寄存器109中建立再同步中標(biāo)志。固件在重試控制寄存器109中建立再同步中標(biāo)志,由此,LCST生成電路108響應(yīng)從圖15所示的全局地址交叉開關(guān)5-1接收到的GSA包,生成包含表示對GSA包中所包含的指令的發(fā)出源指示重試的處理可否信息的LCST包,并對全局地址交叉開關(guān)5-1投入。
[0119]從而,針對本系統(tǒng)板的指令的重試在作為該指令的發(fā)出源的其他系統(tǒng)板中被重復(fù),從其他系統(tǒng)板發(fā)出的LRA包202停留在其他系統(tǒng)板內(nèi)的主隊(duì)列中。其結(jié)果,完全抑制了從以后的其他系統(tǒng)板對本系統(tǒng)板發(fā)出的指令。
[0120]接著,固件指示正常CPU總線上所連接的正常CPU(例如,連接在CPU總線16-1上的CPU12-0、12-1),把該正常CPU的內(nèi)部信息保存到存儲器15_1中(步驟S6)。在步驟S6中,例如連接在正常CPU總線上的正常CPU把包含以將內(nèi)部信息向存儲器15-1保存為內(nèi)容的指令的LRA包202向圖15所示的全局地址交叉開關(guān)5-1投入。而且,進(jìn)行如下的一系列的處理:基于接受了 LRA包202的投入的全局地址交叉開關(guān)5-1的針對各系統(tǒng)板的GSA包的發(fā)送、從各系統(tǒng)板向全局地址交叉開關(guān)5-1的LCST包的投入、從全局地址交叉開關(guān)5-1向各系統(tǒng)板的GCST包的發(fā)送、基于接收到GCST包的系統(tǒng)板具有的從屬請求控制電路的從屬請求的發(fā)出之類的處理,將上述正常CPU的內(nèi)部信息保存到存儲器15-1中。
[0121]此外,固件對連接在正常CPU總線上的CPU(例如連接在CPU總線106-1上的CPU12-0U2-1)進(jìn)行指示,把正常CPU內(nèi)部保持的高速緩存器數(shù)據(jù)保存到存儲器15_1 (步驟S7)。在步驟S7中,進(jìn)一步地,固件在每當(dāng)完成向存儲器15-1保存高速緩存器數(shù)據(jù)時,就在復(fù)位控制寄存器103內(nèi)建立與完成了高速緩存器數(shù)據(jù)的保存的CPU相對應(yīng)的保存完成標(biāo)
O
[0122]固件等待全部CPU的高速緩存器數(shù)據(jù)被保存到存儲器15-1 (步驟S8)。如果復(fù)位控制寄存器103的與各CPU相對應(yīng)的標(biāo)志全部被建立,全部CPU的高速緩存器數(shù)據(jù)被保存到存儲器15-1,則在圖18的步驟S9中,切換/再同步控制電路105清除探聽標(biāo)簽110中保持的CPU的高速緩存器狀態(tài)信息(步驟S9)。然后,切換/再同步控制電路105對本系統(tǒng)板內(nèi)的全部CPU發(fā)出復(fù)位(步驟S10)。
[0123]然后,固件對全部CPU請求在上述圖17的步驟S6中保存到存儲器15_1中的CPU的內(nèi)部信息的復(fù)原(步驟Sll)。連接在異常CPU總線(例如CPU總線16-2)上的CPU(例如CPU12-2、CPU12-3)使用作為冗余結(jié)構(gòu)的對的正常CPU(例如CPU12-0、12_1)的內(nèi)部信息,進(jìn)行本CPU的內(nèi)部信息的復(fù)原。例如,圖16所示的CPU12-3從存儲器15_1讀出CPU12-1的內(nèi)部信息,并在本CPU內(nèi)進(jìn)行復(fù)原;CPU12-2從存儲器15-1讀出CPU12-0的內(nèi)部信息,并在本CPU內(nèi)進(jìn)行復(fù)原。另外,CPU12-0, CPU 12-1分別從存儲器15-1讀出CPU12-0的內(nèi)部信息、CPU12-1的內(nèi)部信息,并在本CPU內(nèi)進(jìn)行復(fù)原。
[0124]對上述步驟Sll的處理順序的`例子進(jìn)行說明。從回件接受了內(nèi)部信息的復(fù)原請求的各CPU把包含內(nèi)部信息復(fù)原指令的LRA包202對全局地址交叉開關(guān)5_1投入。而且,進(jìn)行如下的一系列的處理:基于接受了 LRA包202的投入的全局地址交叉開關(guān)5-1的針對各系統(tǒng)板的GSA包的發(fā)送、從各系統(tǒng)板向全局地址交叉開關(guān)5-1的LCST包的投入、從全局地址交叉開關(guān)5-1向各系統(tǒng)板的GCST包的發(fā)送、基于接收到GCST包的系統(tǒng)板具有的從屬請求控制電路的從屬請求的發(fā)出之類的處理,將上述正常CPU的內(nèi)部信息從存儲器15-1向CPU內(nèi)復(fù)原。
[0125]固件判斷是否在全部CPU中完成了內(nèi)部信息的復(fù)原(步驟S12)。如果固件判斷為在全部CPU中完成了內(nèi)部信息的復(fù)原,固件就對北橋芯片11指示解除對外部指令的抑制(步驟S13)。具體而言,固件指示從屬請求控制電路111,把重試控制寄存器109的再同步中標(biāo)志設(shè)定為無效。通過將再同步中標(biāo)志設(shè)定為無效,從而,LCST生成電路108響應(yīng)從全局地址交叉開關(guān)5-1接收到的GSA包,生成包含表示本系統(tǒng)板能夠繼續(xù)執(zhí)行GSA包中包含的指令的處理可否信息的LCST包。其結(jié)果,本系統(tǒng)板能夠接受來自其他系統(tǒng)板的指令并使冗余CPU執(zhí)行該指令,完成冗余CPU的再同步。
[0126]如果完成了對外部指令的抑制解除,固件就進(jìn)行再同步的實(shí)施次數(shù)的校驗(yàn)(步驟S14),返回圖17的步驟SI。在圖18的步驟S14中,固件比較再同步的實(shí)施次數(shù)和再同步控制寄存器104中設(shè)定的再同步可能上限值,在再同步的實(shí)施次數(shù)低于再同步可能上限值的情況下,判斷為冗余CPU的再同步是可能的,在再同步控制寄存器104中,例如設(shè)定標(biāo)志I作為再同步可否標(biāo)志。在再同步的實(shí)施次數(shù)是再同步可能上限值以上的情況下,固件判斷為冗余CPU的再同步是不可能的,在再同步控制寄存器104中,例如設(shè)定標(biāo)志O作為再同步
否t不志。
[0127]當(dāng)在保存到存儲器15-1中的CPU的內(nèi)部信息的復(fù)原處理的途中(參照步驟S11)、固件等待關(guān)于全部CPU的內(nèi)部信息的復(fù)原完成的途中(參照步驟S12),或者北橋芯片11進(jìn)行對外部指令的抑制解除處理的途中(參照步驟S13),如果檢測到冗余CPU的同步崩潰,北橋芯片11就再次停止異常發(fā)生CPU所連接的CPU總線的動作,固件對北橋芯片11指示解除對外部指令的抑制(步驟S15)。然后,利用正常CPU總線繼續(xù)動作(步驟S16)。
[0128]在步驟S16中,固件對從屬請求控制電路111進(jìn)行指示,對全部CPU發(fā)送CPU從屬請求,但是異常CPU所連接的CPU總線已處于停止?fàn)顟B(tài),所以只用正常CPU執(zhí)行本系統(tǒng)板應(yīng)該執(zhí)行的處理。此外,固件指示切換/再同步控制電路105,只把正常CPU總線設(shè)為有效,只把通過正常CPU發(fā)出的指令對全局地址交叉開關(guān)5-1進(jìn)行投入。
[0129]另外,根據(jù)本發(fā)明的一個實(shí)施方式,也可以構(gòu)成為,固件不在步驟S14中,而在圖17的步驟S4的處理中進(jìn)行圖18的步驟S14的再同步的實(shí)施次數(shù)的校驗(yàn)。即在圖17的步驟S4中,固件判斷冗余CPU的再同步的實(shí)施次數(shù)是否為預(yù)先在存儲單元中存儲的冗余CPU的再同步的實(shí)施次數(shù)的上限值以上,在判斷為上述冗余CPU的再同步的實(shí)施次數(shù)為冗余CPU的再同步的實(shí)施次數(shù)的上限值以上的情況下,進(jìn)入圖17的步驟S17。固件在判斷為上述冗余CPU的再同步的實(shí)施次數(shù)低于冗余CPU的再同步的實(shí)施次數(shù)的上限值的情況下,進(jìn)入圖17的步驟S5。
[0130]工業(yè)上的可利用性
[0131]根據(jù)本發(fā)明,例如在發(fā)生了 CPU間的同步崩潰時,不用重啟OS,就能進(jìn)行冗余CPU的再同步處理。此外,本發(fā)明的冗余CPU的再同步處理不依賴于在系統(tǒng)上工作的OS具有的功能,所以能夠使用通用的OS實(shí)現(xiàn)。
[0132]此外,根據(jù)本發(fā)明,例如當(dāng)在冗余CPU中的任意一個CPU中發(fā)生了固定故障時,能夠繼續(xù)正常CPU的運(yùn)行。此外,根據(jù)本發(fā)明,例如當(dāng)在冗余CPU的再同步處理的途中,在異常發(fā)生CPU中再次發(fā)生錯誤時,能夠重新開始正常CPU的運(yùn)行。因此,根據(jù)本發(fā)明,使可以最大限度利用系統(tǒng)中搭載的CPU資源的連續(xù)運(yùn)行成為可能。
【權(quán)利要求】
1.一種信息處理裝置,其特征在于: 具有同時執(zhí)行同一處理的相互冗余化的第一和第二運(yùn)算處理裝置、與所述第一和第二運(yùn)算處理裝置連接的第一控制裝置、通過所述第一控制裝置連接的存儲裝置及第二控制裝置, 所述第一控制裝置具有: 同步崩潰檢測單元,通過檢測出在所述第一和第二運(yùn)算處理裝置中的任意一個運(yùn)算處理裝置中發(fā)生的異常,來檢測出同步崩潰; 指令發(fā)出停止單元,使被檢測到所述異常的運(yùn)算處理裝置的指令的發(fā)出停止; 指令抑制單元,抑制從所述第二控制裝置對所述第一控制裝置發(fā)出的指令; 保存單元,使所述第一和第二運(yùn)算處理裝置中的正常的運(yùn)算處理裝置具有的內(nèi)部信息保存到所述存儲裝置中; 初始化單元,進(jìn)行所述第一和第二運(yùn)算處理裝置的初始化; 復(fù)原單元,把保存到所述存儲裝置中的內(nèi)部信息在所述已被初始化的第一和第二運(yùn)算處理裝置中復(fù)原;和 指令抑制解除單元,在所述內(nèi)部信息在所述第一和第二運(yùn)算處理裝置中已被復(fù)原的情況下,解除對從所述第二控制裝置對所述第一控制裝置發(fā)出的指令的抑制,使所述第一和第二運(yùn)算處理裝置的同步動作重新開始。
2.根據(jù)權(quán)利請求I所述的信息處理裝置,其特征在于: 所述第一控制裝置還具有 判斷單元,該判斷單元,在被檢測到所述異常的運(yùn)算處理裝置的指令發(fā)出被停止的情況下,判斷重新開始所述第一和第二運(yùn)算處理裝置的同步動作的次數(shù)是否是規(guī)定次數(shù)以上,在重新開始所述同步動作的次數(shù)是所述規(guī)定次數(shù)以上的情況下,使所述復(fù)原單元把被保存在所述存儲裝置中的內(nèi)部信息只在所述第一和第二運(yùn)算處理裝置中的所述正常的運(yùn)算處理裝置中復(fù)原。
3.根據(jù)權(quán)利請求I所述的信息處理裝置,其特征在于: 所述第一控制裝置還具有復(fù)原中斷單元,該復(fù)原中斷單元,當(dāng)在將被保存在所述存儲裝置中的內(nèi)部信息在所述已被初始化的第一和第二運(yùn)算處理裝置中復(fù)原的途中,所述同步崩潰檢測單元再次檢測到被檢測出所述異常的運(yùn)算處理裝置中的異常的情況下,中斷針對被檢測到所述異常的運(yùn)算處理裝置的所述內(nèi)部信息的復(fù)原,只使所述內(nèi)部信息已被復(fù)原的正常的運(yùn)算處理裝置的動作重新開始,解除對從所述第二控制裝置對所述第一控制裝置發(fā)出的指令的抑制。
4.一種控制方法,其特征在于: 是具有同時執(zhí)行同一處理的相互冗余化的第一和第二運(yùn)算處理裝置、與所述第一和第二運(yùn)算處理裝置連接的第一控制裝置、通過所述第一控制裝置連接的存儲裝置及第二控制裝置的信息處理裝置的控制方法,包括: 通過檢測出在所述第一和第二運(yùn)算處理裝置中的任意一個的運(yùn)算處理裝置中發(fā)生的異常,來檢測出同步崩潰的步驟; 使被檢測到所述異常的運(yùn)算處理裝置的指令的發(fā)出停止的步驟; 抑制從所述第二控制裝置對所述第一控制裝置發(fā)出的指令的步驟; 使所述第一和第二運(yùn)算處理裝置中的正常的運(yùn)算處理裝置具有的內(nèi)部信息保存到所述存儲裝置中的步驟; 進(jìn)行所述第一和第二運(yùn)算處理裝置的初始化的步驟; 把保存到所述存儲裝置中的內(nèi)部信息在所述已被初始化的第一和第二運(yùn)算處理裝置中復(fù)原的步驟;和 在所述內(nèi)部信息在所述第一和第二運(yùn)算處理裝置中已被復(fù)原的情況下,解除對從所述第二控制裝置對所述第一控制裝置發(fā)出的指令的抑制,重新開始所述第一和第二運(yùn)算處理裝置的同步動作的步驟。
5.根據(jù)權(quán)利請求4所述的控制方法,其特征在于: 還具有:在被檢測到所述異常的運(yùn)算處理裝置的指令發(fā)出被停止的情況下,判斷重新開始所述第一和第二運(yùn)算處理裝置的同步動作的次數(shù)是否是規(guī)定次數(shù)以上的步驟;和在重新開始所述同步動作的次數(shù)在所述規(guī)定次數(shù)以上的情況下,使被保存在所述存儲裝置中的內(nèi)部信息只在所述第一和第二運(yùn)算處理裝置中的所述正常的運(yùn)算處理裝置中復(fù)原的步驟。
6.根據(jù)權(quán)利請求4所述的控制方法,其特征在于: 還具有:當(dāng)在將被保存在所述存儲裝置中的內(nèi)部信息在所述已被初始化的第一和第二運(yùn)算處理裝置中復(fù)原的途中,再次檢測到被檢測出所述異常的運(yùn)算處理裝置中的異常的情況下,中斷針對被檢測到所述異常的運(yùn)算處理裝置的所述內(nèi)部信息的復(fù)原的步驟; 只重新開始所述內(nèi)部信 息已被復(fù)原的正常的運(yùn)算處理裝置的動作的步驟;和 解除對從所述第二控制裝置向所述第一控制裝置發(fā)出的指令的抑制的步驟。
7.一種信息處理裝置,其特征在于: 具備具有同時執(zhí)行同一處理的相互冗余化的第一和第二運(yùn)算處理裝置、與所述第一和第二運(yùn)算處理裝置連接的第一控制裝置和與所述第一控制裝置連接的存儲裝置的第一系統(tǒng)板;具有第二控制裝置的第二系統(tǒng)板;和中繼所述第一和第二系統(tǒng)板的中繼裝置, 所述第一系統(tǒng)板具有: 指令投入單元,把從所述第一和第二運(yùn)算處理裝置中的任意一個運(yùn)算處理裝置發(fā)出的指令通過所述中繼裝置對所述第二系統(tǒng)板投入; 同步崩潰檢測單元,通過檢測出在所述第一和第二運(yùn)算處理裝置中的任意一個運(yùn)算處理裝置中發(fā)生的異常,來檢測出同步崩潰; 指令發(fā)出停止單元,指示所述指令投入單元,使被檢測到異常的運(yùn)算處理裝置的指令發(fā)出停止; 指令抑制單元,抑制從所述第二系統(tǒng)板對所述第一控制裝置投入的指令; 保存單元,使所述第一和第二運(yùn)算處理裝置中的正常的運(yùn)算處理裝置具有的內(nèi)部信息保存到所述存儲裝置中; 初始化單元,進(jìn)行所述第一和第二運(yùn)算處理裝置的初始化; 復(fù)原單元,把保存在所述存儲裝置中的內(nèi)部信息在所述已被初始化的第一和第二運(yùn)算處理裝置中復(fù)原;和 指令抑制解除單元,在所述內(nèi)部信息在所述第一和第二運(yùn)算處理裝置中已被復(fù)原的情況下,解除對從所述第二系統(tǒng)板向所述第一控制裝置發(fā)出的指令的抑制,使所述第一和第二運(yùn)算處理裝置的同步動作重新開始。
8.根據(jù)權(quán)利請求7所述的信息處理裝置,其特征在于: 所述第一系統(tǒng)板還具有判斷單元,該判斷單元,在被檢測到所述異常的運(yùn)算處理裝置的指令發(fā)出被停止的情況下,判斷重新開始所述第一和第二運(yùn)算處理裝置的同步動作的次數(shù)是否是規(guī)定次數(shù)以上,在重新開始所述同步動作的次數(shù)是所述規(guī)定次數(shù)以上的情況下,使所述復(fù)原單元把被保存在所述存儲裝置中的內(nèi)部信息只在所述第一和第二運(yùn)算處理裝置中的所述正常的運(yùn)算處理裝置中復(fù)原。
9.根據(jù)權(quán)利請求7所述的信息處理裝置,其特征在于: 所述第一系統(tǒng)板還具有復(fù)原中斷單元,該復(fù)原中斷單元,當(dāng)在將被保存在所述存儲裝置中的內(nèi)部信息在所述已被初始化的第一和第二運(yùn)算處理裝置中復(fù)原的途中,所述同步崩潰檢測單元再次檢測到被檢測出所述異常的運(yùn)算處理裝置中的異常的情況下,中斷針對被檢測到所述異常的運(yùn)算處理裝置的所述內(nèi)部信息的復(fù)原,只使所述內(nèi)部信息已被復(fù)原的正常的運(yùn)算處理裝置的動作重新開始,解除對從所述第二控制裝置向所述第一控制裝置發(fā)出的指令的 抑制。
【文檔編號】G06F11/18GK103443774SQ200780100802
【公開日】2013年12月11日 申請日期:2007年9月25日 優(yōu)先權(quán)日:2007年9月25日
【發(fā)明者】大脅威, 石塚孝治, 植木俊和, 畑井田誠, 細(xì)川由佳, 諸澤篤史, 山本崇史, 伊藤大介 申請人:富士通株式會社