專利名稱:容錯(cuò)計(jì)算機(jī)系統(tǒng)及其同步方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種鎖步型容錯(cuò)計(jì)算機(jī)系統(tǒng)及其同步方法,其中多個(gè)計(jì)算機(jī)系統(tǒng)以與時(shí)鐘信號同步的時(shí)序同時(shí)執(zhí)行相同的指令串,并且特別涉及如下的鎖步型容錯(cuò)計(jì)算機(jī)系統(tǒng)及其同步方法,其中當(dāng)計(jì)算機(jī)系統(tǒng)之間的操作同步(鎖步狀態(tài))在第一計(jì)算機(jī)系統(tǒng)中受到干擾時(shí),能夠進(jìn)行為了恢復(fù)操作同步(重建鎖步狀態(tài))而激活的操作,而不停止除了從容錯(cuò)計(jì)算機(jī)系統(tǒng)中分離的第一計(jì)算機(jī)系統(tǒng)之外的計(jì)算機(jī)系統(tǒng)的常規(guī)操作。
背景技術(shù):
根據(jù)現(xiàn)有技術(shù)的鎖步容錯(cuò)計(jì)算機(jī)系統(tǒng),在同步地執(zhí)行相同的指令串的多個(gè)計(jì)算機(jī)系統(tǒng)中,當(dāng)檢測到其中一個(gè)計(jì)算機(jī)系統(tǒng)由于故障或內(nèi)外因素而執(zhí)行不同于其他計(jì)算機(jī)系統(tǒng)的輸出操作時(shí),發(fā)生故障的計(jì)算機(jī)系統(tǒng)立即和其他計(jì)算機(jī)系統(tǒng)分離,從而被設(shè)置為非工作狀態(tài)。根據(jù)故障的原因,如必要的話,該計(jì)算機(jī)系統(tǒng)被另一個(gè)計(jì)算機(jī)系統(tǒng)取代。如果無需替換該計(jì)算機(jī)系統(tǒng),例如,則該系統(tǒng)根據(jù)需要被重新初始化并且被再次設(shè)置為工作狀態(tài)。
在現(xiàn)有的鎖步型容錯(cuò)計(jì)算機(jī)系統(tǒng)中,在將有故障的計(jì)算機(jī)系統(tǒng)恢復(fù)為工作狀態(tài)的操作中,在初始設(shè)置階段中,需要將被如此替換的有故障的計(jì)算機(jī)的存儲器或備用側(cè)的計(jì)算機(jī)的存儲器的內(nèi)容設(shè)置為與活動(dòng)側(cè)的有關(guān)計(jì)算機(jī)的存儲器的內(nèi)容相匹配。因此,需要將處于工作狀態(tài)中的計(jì)算機(jī)系統(tǒng)的主存儲器的全部數(shù)據(jù)復(fù)制到要恢復(fù)為工作狀態(tài)的計(jì)算機(jī)系統(tǒng)的主存儲器中。
在現(xiàn)有技術(shù)的鎖步容錯(cuò)計(jì)算機(jī)系統(tǒng)中,在有故障的計(jì)算機(jī)系統(tǒng)被替換并且根據(jù)其發(fā)生故障的部件執(zhí)行重新初始化后,停止工作狀態(tài)中的計(jì)算機(jī)系統(tǒng)以將有故障的計(jì)算機(jī)系統(tǒng)恢復(fù)成工作狀態(tài)(例如,參考日本專利申請?zhí)亻_No.2004-046455)。
也就是說,在現(xiàn)有的鎖步容錯(cuò)計(jì)算機(jī)系統(tǒng)中,整個(gè)計(jì)算機(jī)系統(tǒng)需要長時(shí)間地停止操作,即三至五秒或分鐘量級的時(shí)間,以將有故障的計(jì)算機(jī)系統(tǒng)恢復(fù)到工作狀態(tài),原因如下。
為了將有故障的計(jì)算機(jī)系統(tǒng)復(fù)位為工作的系統(tǒng),當(dāng)已經(jīng)處于工作狀態(tài)的計(jì)算機(jī)系統(tǒng)的主存儲器的內(nèi)容被復(fù)制到如上要恢復(fù)的計(jì)算機(jī)系統(tǒng)的主存儲器中時(shí),如果其他的計(jì)算機(jī)繼續(xù)工作,則會產(chǎn)生使工作狀態(tài)中的計(jì)算機(jī)系統(tǒng)的主存儲器的內(nèi)容毀壞的擔(dān)憂。在復(fù)制源側(cè)的計(jì)算機(jī)系統(tǒng)在復(fù)制操作期間繼續(xù)操作的情況中,如果復(fù)制已經(jīng)完成的地址的數(shù)據(jù)被更新,則工作狀態(tài)中的計(jì)算機(jī)系統(tǒng)的主存儲器的內(nèi)容不能被適當(dāng)?shù)貜?fù)制到要恢復(fù)到工作狀態(tài)的計(jì)算機(jī)系統(tǒng)上。
為了消除困難,例如,日本專利申請?zhí)亻_No.2001-265750中已經(jīng)提出了一種技術(shù)。根據(jù)該技術(shù),準(zhǔn)備寄存器來保存復(fù)制結(jié)束的區(qū)域的地址。在發(fā)生寫指令時(shí),校驗(yàn)指令的地址以確定該地址指定的區(qū)域是否已經(jīng)完成了復(fù)制。如果被請求的寫指令具有復(fù)制操作已經(jīng)結(jié)束的區(qū)域的地址,則該地址被存儲到寄存器中。在已經(jīng)完全進(jìn)行了存儲器復(fù)制之后,從寄存器獲得該地址,以從該區(qū)域讀取數(shù)據(jù)。然后數(shù)據(jù)被傳送到傳送目的地的計(jì)算機(jī)。
在現(xiàn)有的鎖步型容錯(cuò)計(jì)算機(jī)系統(tǒng)中,當(dāng)因故障從容錯(cuò)計(jì)算機(jī)系統(tǒng)分離的計(jì)算機(jī)系統(tǒng)被恢復(fù)到工作狀態(tài)時(shí),在工作中的其他計(jì)算機(jī)系統(tǒng)也被立即停止,以進(jìn)行主存儲器復(fù)制。由于目前計(jì)算機(jī)系統(tǒng)的存儲器具有幾十億字節(jié)的存儲容量,因此整個(gè)存儲器復(fù)制要占用很長時(shí)間。這會導(dǎo)致系統(tǒng)操作停止很長時(shí)間的問題。為了解決這個(gè)問題,已經(jīng)提出了一種技術(shù),其中當(dāng)限制活動(dòng)側(cè)中的計(jì)算機(jī)系統(tǒng)的存儲器訪問時(shí),主存儲器的內(nèi)容被從活動(dòng)側(cè)復(fù)制到要恢復(fù)的備用側(cè)的計(jì)算機(jī)系統(tǒng)中,其中在活動(dòng)側(cè),容錯(cuò)計(jì)算機(jī)系統(tǒng)正常地工作。然而,這會產(chǎn)生對于軟件需要特殊的處理并且在連續(xù)地執(zhí)行處理的計(jì)算機(jī)系統(tǒng)中性能會顯著地降低的問題。
根據(jù)日本專利申請?zhí)亻_No.2001-265750中描述的方法,在要開始存儲器讀操作以執(zhí)行存儲器復(fù)制的情況中,如果對于存儲器讀操作的地址發(fā)出存儲器寫指令,則存儲器寫操作可能繼續(xù)進(jìn)行(go ahead)。因此,不能保證傳送源的存儲器內(nèi)容被完全發(fā)送到傳送目的地存儲器。在該方法中,由于數(shù)據(jù)是從已經(jīng)執(zhí)行了存儲器寫的地址的區(qū)域讀取并然后被傳送到目的地,因此會出現(xiàn)寫數(shù)據(jù)的傳送占用很長時(shí)間的問題。
發(fā)明內(nèi)容
因此,為了解決上述問題的本發(fā)明的第一個(gè)目的是完成恢復(fù)備用側(cè)的計(jì)算機(jī)系統(tǒng)的處理,而不停止活動(dòng)側(cè)的計(jì)算機(jī)系統(tǒng)的操作。本發(fā)明的第二個(gè)目的是擺脫對軟件進(jìn)行特殊處理的需要。本發(fā)明的第三個(gè)目的是在備用側(cè)的計(jì)算機(jī)的恢復(fù)期間,抑制活動(dòng)側(cè)的計(jì)算機(jī)系統(tǒng)的性能的降低。本發(fā)明的第四個(gè)目的是通過盡可能少的處理步驟完成數(shù)據(jù)傳送,從而在短時(shí)間內(nèi)實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)的同步。
根據(jù)本發(fā)明為了達(dá)到上述目的,提供了一種包括多個(gè)計(jì)算機(jī)系統(tǒng)的容錯(cuò)計(jì)算機(jī)系統(tǒng),每個(gè)計(jì)算機(jī)系統(tǒng)都包括一個(gè)或多個(gè)處理器、主存儲器、路由控制器、同步(sync)控制器以及橋路,該橋路使處理器、主存儲器、路由控制器以及同步控制器相互連接,以控制各組成元件。各計(jì)算機(jī)系統(tǒng)是同步的并且處理相同的指令串。當(dāng)?shù)谝挥?jì)算機(jī)系統(tǒng)的主存儲器的數(shù)據(jù)被復(fù)制到第二計(jì)算機(jī)系統(tǒng)的主存儲器中時(shí),從主存儲器經(jīng)由同步控制器讀取數(shù)據(jù)以傳送到第二計(jì)算機(jī)系統(tǒng)的同步控制器。路由控制器包括存儲器訪問監(jiān)視單元,其包括計(jì)數(shù)模塊,當(dāng)從主存儲器經(jīng)由同步控制器讀取數(shù)據(jù)時(shí),該計(jì)數(shù)模塊確定讀操作的處理狀態(tài);以及地址比較器,當(dāng)處理器發(fā)出寫指令時(shí),其將計(jì)數(shù)模塊的計(jì)數(shù)值與由寫指令執(zhí)行的寫操作的地址(寫地址)進(jìn)行比較。當(dāng)處理器在使處于非工作狀態(tài)的計(jì)算機(jī)系統(tǒng)(備用計(jì)算機(jī)系統(tǒng))和處于工作狀態(tài)的計(jì)算機(jī)系統(tǒng)(活動(dòng)計(jì)算機(jī)系統(tǒng))同步期間發(fā)出對于主存儲器的寫指令時(shí),活動(dòng)計(jì)算機(jī)系統(tǒng)的主存儲器的數(shù)據(jù)被順序地傳送到備用計(jì)算機(jī)系統(tǒng);根據(jù)由地址比較器執(zhí)行的比較的結(jié)果,存儲器訪問監(jiān)視單元僅將數(shù)據(jù)讀操作已經(jīng)完成的地址的寫數(shù)據(jù)和當(dāng)前正在執(zhí)行的數(shù)據(jù)讀操作的地址的寫數(shù)據(jù)傳送到活動(dòng)計(jì)算機(jī)系統(tǒng)的同步控制器。
根據(jù)本發(fā)明,提供一種容錯(cuò)計(jì)算機(jī)系統(tǒng)以達(dá)到上述目的。該系統(tǒng)包括多個(gè)計(jì)算機(jī)系統(tǒng),每個(gè)計(jì)算機(jī)系統(tǒng)都包括一個(gè)或多個(gè)處理器、主存儲器、路由控制器、同步控制器以及橋路,其使處理器、主存儲器、路由控制器以及同步控制器相互連接,以控制各組成元件。各計(jì)算機(jī)系統(tǒng)是同步的并且處理相同的指令串。當(dāng)?shù)谝挥?jì)算機(jī)系統(tǒng)的主存儲器的數(shù)據(jù)被復(fù)制到第二計(jì)算機(jī)系統(tǒng)的主存儲器上時(shí),從主存儲器經(jīng)由同步控制器讀取數(shù)據(jù)以傳送到第二計(jì)算機(jī)系統(tǒng)的同步控制器。該路由控制器包括存儲器訪問監(jiān)視單元,其包括計(jì)數(shù)模塊,當(dāng)從主存儲器經(jīng)由同步控制器讀取數(shù)據(jù)時(shí),該計(jì)數(shù)模塊確定讀操作的處理狀態(tài);以及地址比較器,當(dāng)處理器發(fā)出寫指令時(shí),其將計(jì)數(shù)模塊的計(jì)數(shù)值與由寫指令執(zhí)行的寫操作的寫地址進(jìn)行比較。當(dāng)處理器在使備用計(jì)算機(jī)系統(tǒng)和活動(dòng)計(jì)算機(jī)系統(tǒng)同步的操作期間發(fā)出對于主存儲器的寫指令時(shí),活動(dòng)計(jì)算機(jī)系統(tǒng)的主存儲器的數(shù)據(jù)被順序地傳送到備用計(jì)算機(jī)系統(tǒng);根據(jù)由地址比較器執(zhí)行的比較的結(jié)果,如果寫指令被發(fā)出到數(shù)據(jù)讀操作完成或當(dāng)前正在處理的數(shù)據(jù)讀操作的地址,則存儲器訪問監(jiān)視單元執(zhí)行寫指令并通知中斷,并且同步控制器在執(zhí)行如此通知的中斷的中斷處理操作中獲得寫數(shù)據(jù)。
根據(jù)本發(fā)明為了達(dá)到上述目的,提供了一種使用于容錯(cuò)計(jì)算機(jī)系統(tǒng)的備用計(jì)算機(jī)系統(tǒng)和活動(dòng)計(jì)算機(jī)系統(tǒng)同步的同步方法,該容錯(cuò)計(jì)算機(jī)系統(tǒng)包括多個(gè)計(jì)算機(jī)系統(tǒng),每個(gè)計(jì)算機(jī)系統(tǒng)都包括一個(gè)或多個(gè)處理器、主存儲器、路由控制器、同步控制器以及橋路,其使處理器、主存儲器、路由控制器以及同步控制器相互連接以控制各組成元件。各計(jì)算機(jī)系統(tǒng)同步并且處理相同的指令串。當(dāng)活動(dòng)計(jì)算機(jī)系統(tǒng)的主存儲器的數(shù)據(jù)被復(fù)制到備用計(jì)算機(jī)系統(tǒng)的主存儲器上時(shí),如果寫指令發(fā)出到數(shù)據(jù)傳送操作完成的地址或讀操作開始的地址,以將數(shù)據(jù)傳送給備用計(jì)算機(jī)系統(tǒng),則寫指令的數(shù)據(jù)被傳送到備用計(jì)算機(jī)系統(tǒng),從而使備用計(jì)算機(jī)系統(tǒng)和活動(dòng)計(jì)算機(jī)系統(tǒng)同步而不停止活動(dòng)計(jì)算機(jī)系統(tǒng)。
根據(jù)本發(fā)明,得到的第一個(gè)優(yōu)點(diǎn)是能夠同步備用側(cè)計(jì)算機(jī)系統(tǒng)而不停止活動(dòng)側(cè)計(jì)算機(jī)的操作,也就是,保持常規(guī)工作狀態(tài)。
第二個(gè)優(yōu)點(diǎn)是在活動(dòng)側(cè),任何計(jì)算機(jī)系統(tǒng)對主存儲器的寫訪問不受軟件限制。因此,存儲器訪問無需特別地考慮軟件。在同步操作中,能夠以與常規(guī)操作幾乎相同的方式來使用計(jì)算機(jī)。這使得能夠保持軟件控制的簡單性。
第三個(gè)優(yōu)點(diǎn)是由于存儲器訪問不受軟件和固件限制,計(jì)算機(jī)系統(tǒng)的性能下降是受同步處理的存儲器訪問限制的。因此,和存儲器訪問在計(jì)算機(jī)系統(tǒng)中被禁止的情況相比,能夠在相當(dāng)短的時(shí)間內(nèi)完全實(shí)現(xiàn)同步。
第四個(gè)優(yōu)點(diǎn)是即使在同步處理期間發(fā)出對于主存儲器的寫指令,也能夠最大限度地減少向備用側(cè)的有關(guān)計(jì)算機(jī)系統(tǒng)的重復(fù)傳送寫指令的寫數(shù)據(jù)。因此,這盡可能地抑制了系統(tǒng)性能的降低。
從下面的結(jié)合附圖的詳細(xì)說明中,本發(fā)明的目的和特征將更加清楚,其中圖1是示出根據(jù)本發(fā)明的第一實(shí)施例的整體結(jié)構(gòu)的示意框圖;圖2是示出根據(jù)本發(fā)明的第一實(shí)施例的橋路的結(jié)構(gòu)的框圖;
圖3是示出第一實(shí)施例中存儲器復(fù)制操作的進(jìn)程的流程圖;圖4是示出第一實(shí)施例中當(dāng)在存儲器復(fù)制處理期間發(fā)出存儲器寫指令時(shí)處理的進(jìn)程的流程圖;圖5是示出第一實(shí)施例中指令和數(shù)據(jù)的流向的流程圖;圖6是根據(jù)本發(fā)明的第二實(shí)施例的橋路的結(jié)構(gòu)的框圖;圖7是示出第二實(shí)施例中存儲器復(fù)制操作的進(jìn)程的流程圖;以及圖8是示出第二實(shí)施例中當(dāng)在存儲器復(fù)制處理期間發(fā)出存儲器寫指令時(shí)處理的進(jìn)程的流程圖。
具體實(shí)施例方式現(xiàn)在參考附圖,給出根據(jù)本發(fā)明的實(shí)施例的細(xì)節(jié)的說明。
第一實(shí)施例圖1是示出根據(jù)本發(fā)明的第一實(shí)施例的整體結(jié)構(gòu)的示意框圖。在該結(jié)構(gòu)中,相互連接組成元件的線是總線或布線,箭頭表示信號的傳送的方向。這也適用于圖2和圖6。從示出容錯(cuò)計(jì)算機(jī)系統(tǒng)100的圖1中可以看出,系統(tǒng)100包括在結(jié)構(gòu)上彼此基本相同的計(jì)算機(jī)系統(tǒng)101和計(jì)算機(jī)系統(tǒng)102。盡管該實(shí)施例包括兩個(gè)計(jì)算機(jī)系統(tǒng),但容錯(cuò)計(jì)算機(jī)系統(tǒng)還可以包括三個(gè)或更多的計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)101和102分別包括中央處理單(CPU)101和102以及CPU 201和202。盡管每個(gè)計(jì)算機(jī)系統(tǒng)都包括兩個(gè)CPU,但計(jì)算機(jī)系統(tǒng)還可以包括一個(gè)CPU或三個(gè)以上的CPU。CPU 101和102(201,202)經(jīng)由橋路11(21)連接到路由控制器12(22)。橋路11(21)包括路由控制器12(22),同步控制器13(23)和輸入輸出(IO)控制器14(24)。路由控制器12(22)連接主存儲器15(25)。IO控制器14(24)與IO單元16和17(26,27)耦合。
當(dāng)計(jì)算機(jī)系統(tǒng)100處于常規(guī)操作時(shí),計(jì)算機(jī)系統(tǒng)101和102相同步以執(zhí)行基本相同的操作。也就是說,計(jì)算機(jī)系統(tǒng)101和102根據(jù)相同的時(shí)鐘信號進(jìn)行操作。CPU 101和102以及CPU 201和202分別同時(shí)地發(fā)出相同的指令。該指令被分別傳送到橋路11和21。CPU經(jīng)由橋路11和21分別訪問主存儲器15和25。同樣,也會導(dǎo)致用于IO單元16和17以及IO單元26和27的控制操作。
從計(jì)算機(jī)系統(tǒng)101的CPU 101和102發(fā)出的部分指令經(jīng)由路由控制模塊12傳送給計(jì)算機(jī)系統(tǒng)102的同步控制器23。此外,也從CPU 201和202發(fā)出的相同的指令,其經(jīng)由路由控制器22傳送給同步控制器13。同步控制器23確認(rèn)從各CPU發(fā)出的指令之間的時(shí)序差異。相似地,同步控制器13確認(rèn)從各CPU發(fā)出的指令之間的時(shí)序差異。
圖2更詳細(xì)地示出圖1的橋路11的結(jié)構(gòu)。然而,IO控制器在結(jié)構(gòu)圖中未示出。如圖2所示,路由控制器12包括控制訪問主存儲器15的存儲控制器121以及存儲器訪問監(jiān)視模塊122。盡管路由控制器12包括諸如總線控制器這樣的其他控制器,但是這些組成元件并未示出。當(dāng)在經(jīng)由存儲控制器121和同步控制器13從主存儲器15向計(jì)算機(jī)系統(tǒng)102傳送數(shù)據(jù)的處理期間從CPU發(fā)出存儲器寫指令時(shí),存儲器訪問監(jiān)視模塊122控制存儲器寫指令的寫數(shù)據(jù)向同步控制器13的傳送。
存儲器訪問監(jiān)視模塊122包括讀請求計(jì)數(shù)器1223,每當(dāng)同步控制器13向存儲控制器121發(fā)出讀請求時(shí),其計(jì)數(shù)值增加;讀結(jié)束計(jì)數(shù)器1224,每當(dāng)讀操作完成時(shí),其計(jì)數(shù)值增加;地址比較器1221,用于比較請求計(jì)數(shù)器1223的計(jì)數(shù)值和結(jié)束計(jì)數(shù)器1224的計(jì)數(shù)值;以及寫數(shù)據(jù)傳送和接收單元1222,用于向同步控制器13傳送傳送寫數(shù)據(jù)。盡管數(shù)據(jù)能夠按照升序或降序進(jìn)行傳送,但為了便于描述,在本申請中數(shù)據(jù)按照升序進(jìn)行傳送。
圖3的流程圖示出了在容錯(cuò)計(jì)算機(jī)系統(tǒng)100中,將主存儲器15的數(shù)據(jù)傳送到計(jì)算機(jī)系統(tǒng)102以恢復(fù)計(jì)算機(jī)系統(tǒng)102的進(jìn)程的流程。圖4所示的流程圖是當(dāng)在存儲器復(fù)制處理期間發(fā)出存儲器寫指令時(shí)的處理的進(jìn)程。圖5的流程圖示出了數(shù)據(jù)從主存儲器15傳送到計(jì)算機(jī)系統(tǒng)102的操作中的指令和數(shù)據(jù)的流向。在圖中,讀請求計(jì)數(shù)器和讀結(jié)束計(jì)數(shù)器1223和1224具有計(jì)數(shù)值“5”。這表示地址6的數(shù)據(jù)正被傳送。接下來參考圖3至圖5,說明容錯(cuò)計(jì)算機(jī)系統(tǒng)100的第一實(shí)施例中的計(jì)算機(jī)系統(tǒng)的同步進(jìn)程。這里假定計(jì)算機(jī)系統(tǒng)101在活動(dòng)側(cè)而計(jì)算機(jī)系統(tǒng)102在備用側(cè),計(jì)算機(jī)系統(tǒng)101和102的角色是可以互換的。
在圖3的流程圖中,當(dāng)在步驟S101計(jì)算機(jī)101的CPU發(fā)出同步開始指令到同步控制器13時(shí),在步驟S102復(fù)位計(jì)數(shù)器1223和1224。然后同步控制器13發(fā)出存儲請求以由此接收具有數(shù)據(jù)的讀應(yīng)答。數(shù)據(jù)被傳送到計(jì)算機(jī)102,從而增加計(jì)數(shù)器1223和1224的計(jì)數(shù)值。此時(shí),計(jì)數(shù)值是5,并且已經(jīng)完成了直到地址5的存儲器數(shù)據(jù)傳送。當(dāng)在步驟S103同步控制器13發(fā)出地址6的讀請求到路由控制器12時(shí),路由控制器12詢問CPU在CPU的高速緩沖存儲器中是否具有地址6的數(shù)據(jù)(圖5中的a)。與來自CPU的響應(yīng)無關(guān),路由控制器12發(fā)出讀請求到存儲控制器121(圖5中的b)。在步驟S104,更新讀請求計(jì)數(shù)器1223并且啟動(dòng)主存儲器讀操作(圖5中的c)。當(dāng)在步驟S105發(fā)送讀應(yīng)答時(shí)(圖5中的d),讀數(shù)據(jù)(數(shù)據(jù)A)在步驟S106被傳送到同步控制器13。然后在步驟S107,更新讀結(jié)束計(jì)數(shù)器1224,并且此后在步驟S108,讀數(shù)據(jù)被傳送到計(jì)算機(jī)系統(tǒng)102的同步控制器23(圖5中的e)。在步驟S109,進(jìn)行校驗(yàn)以確定主存儲15的全部區(qū)域的數(shù)據(jù)是否已經(jīng)被完全傳送。如果仍然存在要傳送的數(shù)據(jù),則控制返回到步驟S103,以重復(fù)地執(zhí)行上述處理過程。如果在步驟S109確定所有數(shù)據(jù)都被傳送,則認(rèn)為同步已經(jīng)結(jié)束,因此存儲器復(fù)制被終止。容錯(cuò)計(jì)算機(jī)系統(tǒng)100使用計(jì)算機(jī)系統(tǒng)101和102開始其常規(guī)操作。
順便提及,圖3所示的流程圖的步驟S106和S107可以互換或被同時(shí)執(zhí)行。
在圖5的處理流程中,如果CPU在讀請求計(jì)數(shù)器更新之前并且在讀結(jié)束計(jì)數(shù)器更新之后發(fā)出存儲器寫指令,也就是說,當(dāng)計(jì)數(shù)器具有相同的計(jì)數(shù)值時(shí),來自CPU的存儲器寫指令比來自同步控制13的存儲器讀指令優(yōu)先執(zhí)行。因此,無需考慮位于已經(jīng)執(zhí)行存儲器讀操作的地址的數(shù)據(jù)被存儲器寫指令改變的問題。與此相反,在讀請求計(jì)算器更新之后并且在讀結(jié)束計(jì)數(shù)器更新之前的一段時(shí)間中,如果對讀請求的地址發(fā)出存儲器寫指令,則可能出現(xiàn)已經(jīng)進(jìn)行讀應(yīng)答的地址的數(shù)據(jù)被寫操作改變的情況。根據(jù)本發(fā)明,對于已經(jīng)對其發(fā)出讀請求的地址,在此時(shí)間段內(nèi)暫時(shí)停止存儲器寫指令。
從圖4可以看出,在等待狀態(tài)期間,即在存儲器復(fù)制操作的處理期間期待存儲器寫指令的狀態(tài)中,如果在步驟S201 CPU發(fā)出存儲器寫指令到存儲控制器121,則其寫地址被傳送到地址比較器1221。在步驟S202,進(jìn)行校驗(yàn)以確定寫地址是否是來自同步控制器13的讀請求的地址。地址比較器1221將寫地址和讀請求計(jì)數(shù)器1223的計(jì)數(shù)值以及讀結(jié)束計(jì)數(shù)器1224的計(jì)數(shù)值相比較。如果寫地址大于請求計(jì)數(shù)器1223的計(jì)數(shù)值,則認(rèn)為寫指令的地址未被任何讀請求使用。因此,在步驟S203,向存儲控制器121授予存儲器寫許可,然后處理返回到等待狀態(tài)。當(dāng)?shù)刂繁容^器1221在步驟S202確定寫地址等于或小于讀結(jié)束計(jì)數(shù)器1224的計(jì)數(shù)值時(shí),則認(rèn)為寫指令被發(fā)出到存儲器復(fù)制已經(jīng)結(jié)束的地址。寫數(shù)據(jù)在步驟S204經(jīng)由寫數(shù)據(jù)傳送和接收模塊1222傳送到同步控制器13。在步驟S205,同步控制器13發(fā)送寫數(shù)據(jù)到計(jì)算機(jī)系統(tǒng)102的同步控制器23。然后,在步驟S203,同步控制器13授予存儲器寫許可給存儲控制器122,并返回到等待狀態(tài)。
當(dāng)?shù)刂繁容^器1221在步驟S202檢測到寫地址等于讀請求計(jì)數(shù)器1223的計(jì)數(shù)值并大于讀結(jié)束計(jì)數(shù)器1224的計(jì)數(shù)值時(shí),則認(rèn)為寫指令被發(fā)出到當(dāng)前正在處理存儲器讀操作的地址。因此,在步驟S206,控制等待結(jié)束計(jì)數(shù)器1224的計(jì)數(shù)值被更新的事件,然后轉(zhuǎn)到步驟S204。假定讀請求計(jì)數(shù)器1223具有計(jì)數(shù)值5而讀結(jié)束計(jì)數(shù)器1224具有計(jì)數(shù)值6。當(dāng)如圖5中f所示的那樣發(fā)出寫指令(具有數(shù)據(jù)B)時(shí),處理等待讀結(jié)束計(jì)數(shù)器1224被更新的事件。其后,如圖5中g(shù)所示那樣,數(shù)據(jù)經(jīng)由傳送和接收單元1222和同步控制器13傳送到計(jì)算機(jī)系統(tǒng)102的同步控制器23(步驟S204和S205)。因此,在步驟S203,系統(tǒng)授予存儲器寫許可給存儲控制器121(如圖5中h所示的那樣執(zhí)行存儲器寫操作),然后返回到等待狀態(tài)。
在圖4的流程圖中,步驟S106和S107的順序可以互換,或者可以同時(shí)執(zhí)行步驟S106和S107。
第二實(shí)施例圖6示出了根據(jù)本發(fā)明的橋路11的第二實(shí)施例的結(jié)構(gòu)的框圖。第二實(shí)施例的整體結(jié)構(gòu)基本上與第一實(shí)施例相同。在圖6中,等效于圖2的第一實(shí)施例的組成元件被賦予相同的參考標(biāo)記,因此避免了橋路11的重復(fù)說明。在第二實(shí)施例中,讀結(jié)束計(jì)數(shù)器沒有被使用而僅使用了讀請求計(jì)數(shù)器1223。
圖7的操作流程示出第二實(shí)施例中將數(shù)據(jù)從主存儲器15傳送到作為備用側(cè)的計(jì)算機(jī)系統(tǒng)102的進(jìn)程。
當(dāng)在步驟S301計(jì)算機(jī)系統(tǒng)101的CPU發(fā)出同步開始指令到同步控制器13時(shí),在步驟S302復(fù)位讀請求計(jì)數(shù)器1223。然后在步驟S303,同步控制器13發(fā)出讀請求到存儲控制器121。在步驟S304,更新讀請求計(jì)數(shù)器1223并且啟動(dòng)主存儲器讀操作。當(dāng)步驟S305進(jìn)行讀數(shù)據(jù)應(yīng)答時(shí),在步驟S306讀數(shù)據(jù)被傳送到同步控制器13。然后在步驟S307讀數(shù)據(jù)被傳送到計(jì)算機(jī)系統(tǒng)102的同步控制器23。在步驟S308,進(jìn)行校驗(yàn)以確定中斷是否被通知。如果中斷未被通知,則在步驟S310進(jìn)行校驗(yàn)以確定主存儲器15的全部區(qū)域的數(shù)據(jù)是否已經(jīng)被傳送。如果仍然存在要被傳送的數(shù)據(jù),則控制返回到步驟S303以再次執(zhí)行上述處理。
如果在步驟S308確定中斷已經(jīng)被通知,則控制進(jìn)行到步驟S309以執(zhí)行中斷處理。在處理中,在步驟S3091,寫數(shù)據(jù)經(jīng)由寫數(shù)據(jù)傳送和接收模塊1222傳送到同步控制器13。在步驟S3092,寫數(shù)據(jù)被傳送到計(jì)算機(jī)系統(tǒng)102的同步控制器23,從而終止中斷處理。如果在步驟S310檢測到主存儲器15的數(shù)據(jù)已經(jīng)被完全傳送,則該系統(tǒng)認(rèn)為同步完成而終止復(fù)制處理。
圖8示出當(dāng)在存儲器復(fù)制處理期間發(fā)布存儲器寫指令時(shí),橋路11中處理的進(jìn)程的流程圖。在等待狀態(tài)中,當(dāng)CPU在步驟S401發(fā)出存儲器寫指令到存儲控制器121時(shí),指令的寫地址被傳送到地址比較器1221。在步驟S402,比較器1221進(jìn)行校驗(yàn)以確定該地址是否已經(jīng)被同步控制器13請求用于讀請求。比較器1221將寫地址和讀請求計(jì)數(shù)器1223的計(jì)數(shù)值相比較。如果寫地址大于計(jì)數(shù)器1223的計(jì)數(shù)值,則比較器1221認(rèn)為寫請求的地址未被讀請求指定,并在步驟S403允許存儲控制器121進(jìn)行存儲器寫,然后返回到等待狀態(tài)。如果比較器1221在步驟S402確定寫地址等于或小于計(jì)數(shù)器1223的計(jì)數(shù)值,則比較器1221認(rèn)為寫請求是向讀請求已經(jīng)指定的地址發(fā)出的。因此,地址比較器1221在步驟S403授予存儲器寫許可給存儲控制器122,并在步驟S405通知中斷,然后返回到等待狀態(tài)。
在圖8的流程圖中,步驟S404和S405的執(zhí)行順序可以互換,或可以同時(shí)執(zhí)行。
盡管第二實(shí)施例僅包括讀請求計(jì)數(shù)器,但是該實(shí)施例還可以除去讀請求計(jì)數(shù)器而僅包括讀結(jié)束計(jì)數(shù)器。在這種結(jié)構(gòu)中,上面描述的方法通過將讀結(jié)束計(jì)數(shù)器的計(jì)數(shù)值加1來執(zhí)行。
盡管已經(jīng)通過參考特定示例實(shí)施例說明了本發(fā)明,但是本發(fā)明并不被那些實(shí)施例限制,而是僅由權(quán)利要求限制。應(yīng)當(dāng)理解,本領(lǐng)域的技術(shù)人員可以對上述實(shí)施例進(jìn)行改變或修改,而不脫離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種容錯(cuò)計(jì)算機(jī)系統(tǒng),其包括多個(gè)計(jì)算機(jī)系統(tǒng),每個(gè)計(jì)算機(jī)系統(tǒng)包括一個(gè)或多個(gè)處理器;主存儲器;路由控制器;同步控制器;以及橋路,其使處理器、主存儲器、路由控制器以及同步控制器相互連接以控制各組成元件,其中各計(jì)算機(jī)系統(tǒng)是同步的并且處理相同的指令串,其中當(dāng)?shù)谝挥?jì)算機(jī)系統(tǒng)的主存儲器的數(shù)據(jù)被復(fù)制到第二計(jì)算機(jī)系統(tǒng)的主存儲器上時(shí),從主存儲器經(jīng)由同步控制器讀取數(shù)據(jù),以傳送到第二計(jì)算機(jī)系統(tǒng)的同步控制器;路由控制器包括存儲器訪問監(jiān)視單元,其包括計(jì)數(shù)模塊,當(dāng)從主存儲器經(jīng)由同步控制器讀取數(shù)據(jù)時(shí),該計(jì)數(shù)模塊確定讀操作的處理狀態(tài);以及地址比較器,當(dāng)處理器發(fā)出寫指令時(shí),其將計(jì)數(shù)模塊的計(jì)數(shù)值與由寫指令執(zhí)行的寫操作的寫地址進(jìn)行比較;以及當(dāng)處理器在使處于非工作狀態(tài)的備用計(jì)算機(jī)系統(tǒng)和處于工作狀態(tài)的活動(dòng)計(jì)算機(jī)系統(tǒng)同步的操作期間發(fā)出對于主存儲器的寫指令時(shí),活動(dòng)計(jì)算機(jī)系統(tǒng)的主存儲器的數(shù)據(jù)被順序傳送到備用計(jì)算機(jī)系統(tǒng);根據(jù)地址比較器執(zhí)行的比較的結(jié)果,存儲器訪問監(jiān)視單元僅將數(shù)據(jù)讀操作已經(jīng)完成的地址的寫數(shù)據(jù)和當(dāng)前正在執(zhí)行數(shù)據(jù)讀操作的地址的寫數(shù)據(jù)傳送到活動(dòng)計(jì)算機(jī)系統(tǒng)的同步控制器。
2.根據(jù)權(quán)利要求1的容錯(cuò)計(jì)算機(jī)系統(tǒng),其中計(jì)數(shù)模塊包括讀請求計(jì)數(shù)器,用于存儲數(shù)據(jù)讀操作被啟動(dòng)的數(shù)據(jù)的地址;以及讀結(jié)束計(jì)數(shù)器,用于存儲數(shù)據(jù)讀操作被完成的數(shù)據(jù)的地址。
3.根據(jù)權(quán)利要求2的容錯(cuò)計(jì)算機(jī)系統(tǒng),其中在地址比較器確定寫地址是未發(fā)出讀請求的地址的情況中,只有存儲器寫操作被許可;在地址比較器確定寫地址是完成數(shù)據(jù)讀操作的地址的情況中,存儲器寫操作被許可并且寫數(shù)據(jù)被傳送到同步控制器;以及在除了上面描述的情況以外的任何情況中,在當(dāng)前處理中的數(shù)據(jù)讀操作結(jié)束之后,存儲器寫操作被許可,并且寫數(shù)據(jù)被傳送到同步控制器。
4.根據(jù)權(quán)利要求2的容錯(cuò)計(jì)算機(jī)系統(tǒng),其中在由讀結(jié)束計(jì)數(shù)器的計(jì)數(shù)值改變的時(shí)刻所確定的時(shí)刻,寫數(shù)據(jù)被傳送到同步控制器。
5.一種容錯(cuò)計(jì)算機(jī)系統(tǒng),其包括多個(gè)計(jì)算機(jī)系統(tǒng),每個(gè)計(jì)算機(jī)系統(tǒng)包括一個(gè)或多個(gè)處理器;主存儲器;路由控制器;同步控制器;以及橋路,其使處理器、主存儲器、路由控制器、同步控制器相互連接以控制各組成元件,其中各計(jì)算機(jī)系統(tǒng)是同步的并且處理相同的指令串,其中當(dāng)?shù)谝挥?jì)算機(jī)系統(tǒng)的主存儲器的數(shù)據(jù)被復(fù)制到第二計(jì)算機(jī)系統(tǒng)的主存儲器上時(shí),從主存儲器經(jīng)由同步控制器讀取數(shù)據(jù),以傳送到第二計(jì)算機(jī)系統(tǒng)的同步控制器;路由控制器包括存儲器訪問監(jiān)視單元,其包括計(jì)數(shù)模塊,當(dāng)從主存儲器經(jīng)由同步控制器讀取數(shù)據(jù)時(shí),該計(jì)數(shù)模塊確定讀操作的處理狀態(tài);以及地址比較器,當(dāng)處理器發(fā)出寫指令時(shí),其將計(jì)數(shù)模塊的計(jì)數(shù)值與由寫指令執(zhí)行的寫操作的寫地址進(jìn)行比較;以及當(dāng)處理器在使備用計(jì)算機(jī)系統(tǒng)和活動(dòng)計(jì)算機(jī)系統(tǒng)同步的操作期間發(fā)出對于主存儲器的寫指令時(shí),活動(dòng)計(jì)算機(jī)系統(tǒng)的主存儲器的數(shù)據(jù)被順序傳送到備用計(jì)算機(jī)系統(tǒng);根據(jù)地址比較器執(zhí)行的比較的結(jié)果,如果寫指令被發(fā)出到完成數(shù)據(jù)讀操作的地址或當(dāng)前正在處理中的數(shù)據(jù)讀操作的地址,則存儲器訪問監(jiān)視單元執(zhí)行寫指令并通知中斷,并且同步控制器在執(zhí)行如此通知的中斷的中斷處理的操作中獲得寫數(shù)據(jù)。
6.根據(jù)權(quán)利要求5的容錯(cuò)計(jì)算機(jī)系統(tǒng),其中計(jì)數(shù)模塊包括讀請求計(jì)數(shù)器,用于存儲數(shù)據(jù)讀操作被啟動(dòng)的數(shù)據(jù)的地址;以及讀結(jié)束計(jì)數(shù)器,用于存儲數(shù)據(jù)讀操作被完成的數(shù)據(jù)的地址。
7.根據(jù)權(quán)利要求5的容錯(cuò)計(jì)算機(jī)系統(tǒng),其中如果地址比較器確定寫地址是同步控制器未發(fā)出讀請求的地址,則只有寫指令被許可而不通知中斷。
8.根據(jù)權(quán)利要求5的容錯(cuò)計(jì)算機(jī)系統(tǒng),其中由存儲器訪問監(jiān)視單元通知的中斷是在當(dāng)前處理的數(shù)據(jù)讀操作結(jié)束之后并在下一個(gè)數(shù)據(jù)讀操作開始之前執(zhí)行的。
9.一種使用于容錯(cuò)計(jì)算機(jī)系統(tǒng)的備用計(jì)算機(jī)系統(tǒng)和活動(dòng)計(jì)算機(jī)系統(tǒng)同步的同步方法,該容錯(cuò)計(jì)算機(jī)系統(tǒng)包括多個(gè)計(jì)算機(jī)系統(tǒng),每個(gè)計(jì)算機(jī)系統(tǒng)都包括一個(gè)或多個(gè)處理器、主存儲器、路由控制器、同步控制器,以及橋路,該橋路使處理器、主存儲器、路由控制器以及同步控制器相互連接以控制各組成元件,其中各計(jì)算機(jī)系統(tǒng)以與時(shí)鐘信號同步的時(shí)序來處理一個(gè)相同的指令串,其中當(dāng)活動(dòng)計(jì)算機(jī)系統(tǒng)的主存儲器的數(shù)據(jù)被復(fù)制到備用計(jì)算機(jī)系統(tǒng)的主存儲器上時(shí),如果寫指令被發(fā)出到完成數(shù)據(jù)傳送操作的地址或開始讀操作的地址以將數(shù)據(jù)傳送給備用計(jì)算機(jī)系統(tǒng),則寫指令的數(shù)據(jù)被傳送到備用計(jì)算機(jī)系統(tǒng),從而使備用計(jì)算機(jī)系統(tǒng)和活動(dòng)計(jì)算機(jī)系統(tǒng)同步而不停止活動(dòng)計(jì)算機(jī)系統(tǒng)。
10.根據(jù)權(quán)利要求9的使備用計(jì)算機(jī)系統(tǒng)和活動(dòng)計(jì)算機(jī)系統(tǒng)同步的同步方法,其中寫指令的數(shù)據(jù)被傳送到備用計(jì)算機(jī)系統(tǒng)而不使用主存儲器。
11.根據(jù)權(quán)利要求9的使備用計(jì)算機(jī)系統(tǒng)和活動(dòng)計(jì)算機(jī)系統(tǒng)同步的同步方法,其中當(dāng)活動(dòng)計(jì)算機(jī)系統(tǒng)的主存儲器的數(shù)據(jù)被復(fù)制到備用計(jì)算機(jī)系統(tǒng)的主存儲器上時(shí),容錯(cuò)計(jì)算機(jī)系統(tǒng)從主存儲器經(jīng)由同步控制器讀取數(shù)據(jù)并將數(shù)據(jù)傳送到備用計(jì)算機(jī)系統(tǒng)的同步控制器。
12.根據(jù)權(quán)利要求9的使備用計(jì)算機(jī)系統(tǒng)和活動(dòng)計(jì)算機(jī)系統(tǒng)同步的同步方法,其中路由控制器包括存儲器訪問監(jiān)視單元,其包括計(jì)數(shù)模塊,當(dāng)從主存儲器經(jīng)由同步控制器讀取數(shù)據(jù)時(shí),該計(jì)數(shù)模塊確定讀操作的處理狀態(tài);以及地址比較器,當(dāng)處理器發(fā)出寫指令時(shí),其將計(jì)數(shù)模塊的計(jì)數(shù)值與由寫指令執(zhí)行的寫操作的地址進(jìn)行比較。
全文摘要
每當(dāng)同步控制器順序地發(fā)出讀請求到存儲控制器時(shí),第一計(jì)數(shù)器的計(jì)數(shù)值增加。當(dāng)對于讀請求執(zhí)行讀操作時(shí),第二計(jì)數(shù)器的計(jì)數(shù)值增加,并且數(shù)據(jù)被傳送到備用計(jì)算機(jī)。如果在存儲器復(fù)制操作期間發(fā)出存儲器寫指令,則地址比較器將存儲器寫指令的寫地址和第一以及第二計(jì)數(shù)器的計(jì)數(shù)值相比較。如果寫地址大于計(jì)數(shù)值,則存儲器寫操作被允許。如果寫地址等于第一計(jì)數(shù)器的計(jì)數(shù)值,則處理等待數(shù)據(jù)讀操作的終止。否則,寫操作立即被允許并且寫數(shù)據(jù)被傳送到同步控制器。因此,在活動(dòng)側(cè)的存儲器的數(shù)據(jù)被復(fù)制到備用計(jì)算機(jī)上而不停止系統(tǒng)操作。
文檔編號G06F11/16GK1790285SQ20051013392
公開日2006年6月21日 申請日期2005年12月19日 優(yōu)先權(quán)日2004年12月17日
發(fā)明者杉本基浩 申請人:日本電氣株式會社