專利名稱:容錯計算機系統(tǒng)及其中斷控制方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及雙重控制器系統(tǒng)。更具體地說,本發(fā)明針對雙重中斷控制的容錯計算機系統(tǒng)。
背景技術(shù):
容錯計算機系統(tǒng)是眾所周知的一種高可靠性計算機系統(tǒng)。在容錯計算機系統(tǒng)中,計算機系統(tǒng)的所有硬件模塊是雙重或多重的。這些硬件模塊彼此同步操作,即使一個硬件模塊的某一部分發(fā)生故障,發(fā)生故障的硬件模塊也會被從上述容錯計算機系統(tǒng)斷開,由剩下的正常硬件模塊繼續(xù)操作。因此,抗故障特性得到改善。
圖1示出容錯計算機系統(tǒng)配置的一個例子。這個例子的容錯計算機系統(tǒng)備有容錯(FT)控制部分10和硬件模塊,例如CPU、存儲器和I/O設(shè)備,它們是雙重的。FT控制部分10與硬件模塊相連,當(dāng)發(fā)生故障時進行同步處理和切換控制。
在圖1所示的容錯計算機系統(tǒng)中,CPU(或CPU組)2A、存儲器3A和FT控制部分10的一部分組成一個CPU子系統(tǒng),而另一CPU子系統(tǒng)具有與CPU子系統(tǒng)1A完全相同的配置。因此,兩組CPU子系統(tǒng)1A和1B是重復(fù)的。類似地,有相同配置的I/O設(shè)備(I/O組)5A和5B也是重復(fù)的,構(gòu)成I/O子系統(tǒng)。FT控制部分10是這些硬件模塊的核心,控制這些硬件模塊例如CPU子系統(tǒng)1A和1B和I/O設(shè)備組5a和5B,以保持CPU子系統(tǒng)之間的同步操作并檢測故障。另外,F(xiàn)T控制部分10也控制發(fā)生故障的硬件模塊從容錯計算機系統(tǒng)斷開。圖1的計算機系統(tǒng)中雖然有兩組CPU子系統(tǒng)1A和1B,但發(fā)生故障的子系統(tǒng)在邏輯上從FT控制部分10斷開,由剩下的CPU子系統(tǒng)和I/O子系統(tǒng)繼續(xù)其進程。
一般來說,容錯計算機系統(tǒng)分成以硬件方式重復(fù)的部分和以軟件方式重復(fù)的部分。例如,CPU子系統(tǒng)1A和1B是軟件在其中執(zhí)行的基礎(chǔ),這些CPU子系統(tǒng)1A和1B必須以硬件方式重復(fù)。當(dāng)一個CPU子系統(tǒng)發(fā)生故障時,F(xiàn)T控制部分10將CPU子系統(tǒng)發(fā)生故障的CPU或者存儲器從計算機系統(tǒng)斷開,并進行控制使不利的影響不損害正常操作的CPU和存儲器。另一方面,當(dāng)I/O設(shè)備發(fā)生故障時,F(xiàn)T控制部分10檢測故障并將故障的發(fā)生通知軟件,從而控制I/O設(shè)備(以下稱為“I/O設(shè)備驅(qū)動器”)。因此,就有可能以軟件方式切換I/O設(shè)備。在這種情況下,I/O設(shè)備驅(qū)動器停止驅(qū)動發(fā)生故障的I/O設(shè)備,轉(zhuǎn)而去驅(qū)動雙重I/O設(shè)備中的另一I/O設(shè)備。這就是使用在I/O子系統(tǒng)中的I/O設(shè)備的切換實現(xiàn)的。
但是,某些I/O設(shè)備在軟件方式中不能重復(fù)。例如中斷控制器就是這類設(shè)備之一,它不能以軟件方式重復(fù)。中斷控制器接收各I/O設(shè)備或諸如此類發(fā)布的中斷請求并將中斷請求通知CPU。中斷請求由操作系統(tǒng)(OS)指配一個叫做“IRQ”的中斷號碼。在某些情況下,多個I/O設(shè)備被指配單一的中斷號碼。中斷控制器將各設(shè)備發(fā)布的中斷請求轉(zhuǎn)換為預(yù)定的中斷號碼,然后將中斷號碼通知CPU。這時,在CPU現(xiàn)行執(zhí)行與某個中斷號碼相應(yīng)的中斷處理時,中斷控制器并不通知具有相同中斷號碼的中斷請求,或者管理多個設(shè)備發(fā)布的中斷請求使中斷請求不丟失。為此,中斷控制器內(nèi)部執(zhí)行一種處理以保持與執(zhí)行的中斷請求相應(yīng)的狀態(tài)。如果在中斷控制器中發(fā)生故障,所有關(guān)于中斷請求的數(shù)據(jù)將會丟失。結(jié)果是在軟件中不可能將中斷控制器恢復(fù)成原來的狀態(tài)。
進一步說,雖然現(xiàn)有的操作系統(tǒng)(OS)例如“Windows”(注冊商標)和“Linux”允許存在多個中斷控制器,但這些操作系統(tǒng)不能用操作期間中斷控制器增加或減少這樣的狀態(tài)復(fù)制。因此,當(dāng)計算機起動時已經(jīng)存在的中斷控制器必須存在直至操作系統(tǒng)停止運行,并且必須以正常狀態(tài)繼續(xù)運行。
還有,現(xiàn)在的PC服務(wù)器趨向于開放系統(tǒng),當(dāng)PC服務(wù)器以低廉成本制造時,Intel兼容(Intel為注冊商標)的CPU和低價商品電子元件是必然的選擇。Windows和Linux是現(xiàn)在的PC服務(wù)器的主要操作系統(tǒng),并且已基于Intel兼容的結(jié)構(gòu)設(shè)計出來。但在開放系統(tǒng)PC服務(wù)器中,當(dāng)容錯計算機系統(tǒng)以低價配置時,存在許多問題。
例如,大多數(shù)I/O設(shè)備和大多數(shù)操作系統(tǒng)如“Windows”在設(shè)計中沒有考慮容錯計算機系統(tǒng)。因此,即使設(shè)備是重復(fù)的,PC服務(wù)器也不能完全復(fù)制對故障的故障切換處理。在Intel兼容的PC服務(wù)器中,中斷控制依賴于特定的I/O設(shè)備,這種設(shè)備精心于叫做“南橋”的傳統(tǒng)功能。特別是由于中斷控制是系統(tǒng)操作的核心功能,所以操作系統(tǒng)直接進入南橋控制南橋的操作。因此,如果一旦在南橋中發(fā)生故障,這個操作系統(tǒng)的功能就完全喪失,結(jié)果引起系統(tǒng)停機。所以對操作系統(tǒng)例如已主要用在開放系統(tǒng)PC服務(wù)器的Windows進行修改以適應(yīng)容錯計算機系統(tǒng),實際上是不可能的。
與上述有關(guān),日本專利申請公報(JP-A-Heisei 9-251443)披露了一種信息處理系統(tǒng)的處理器故障恢復(fù)方法。在這個常規(guī)例子中,信息處理系統(tǒng)具有多個處理器,其中的至少一個操作為系統(tǒng)支持處理器。余下的處理器操作為指令處理器。在這一信息處理系統(tǒng)中,當(dāng)一個處理器發(fā)生故障時,一個中斷被發(fā)送至操作系統(tǒng)(OS),它控制至少一個指令處理器。當(dāng)中斷發(fā)送時,操作系統(tǒng)判明指令處理器中發(fā)生故障,便停止在指令處理器中正在執(zhí)行的應(yīng)用程序,然后用系統(tǒng)支持處理器代替上述指令處理器。
發(fā)明內(nèi)容
本發(fā)明的一個目的是提供一種容錯計算機系統(tǒng),其中兩個系統(tǒng)是重復(fù)的,并且彼此同步地操作。
本發(fā)明的另一目的是提供一種容錯計算機系統(tǒng),其中當(dāng)系統(tǒng)從現(xiàn)用系統(tǒng)切換為備用系統(tǒng)時,中斷請求可以被保持。
本發(fā)明的另一目的是提供一種容錯計算機系統(tǒng),其中南橋的故障能對CPU隱藏。
本發(fā)明的另一目的是提供一種容錯計算機系統(tǒng),其中即使當(dāng)容錯控制部分被新的容錯控制部分替代時,也可以完全恢復(fù)同步操作。
本發(fā)明的另一目的是提供一種容錯計算機系統(tǒng),其中即使是在裝有未考慮容錯計算機系統(tǒng)的現(xiàn)有的OS和現(xiàn)有的南橋的計算機系統(tǒng)(服務(wù)器)中,也能夠重復(fù)設(shè)置中斷控制器。
本發(fā)明的一方面,一種容錯(FT)計算機系統(tǒng),其包括主用系統(tǒng)和輔助系統(tǒng)。主用系統(tǒng)包括第一CPU;與第一CPU相連的第一FT控制部分;和在電氣上和操作上與第一FT控制部分相連的第一南橋。輔助系統(tǒng)包括第二CPU;與第二CPU相連的第二FT控制部分;和在電氣上與第二FT控制部分相連但操作上與第二FT控制部分不相連的第二南橋。第一FT控制部分和第二FT控制部分通過鏈路部分相連,主用系統(tǒng)和輔助系統(tǒng)利用鏈路部分彼此同步操作,第二南橋除外。
在這里,第一CPU和第二CPU在相同的操作系統(tǒng)上運行,第二南橋從操作系統(tǒng)是不可見的。第一FT控制部分最好具有第一主I/O高級可編程中斷控制器(IOAPIC)控制部分,第二FT控制部分具有第二主IOAPIC控制部分。第一南橋具有PIC控制部分和IOAPIC控制部分。第一南橋中的IOAPIC控制部分地址空間與第一主IOAPIC控制部分地址空間的一部分相同,第二南橋中IOAPIC控制部分的地址空間與第二主IOAPIC控制部分的地址空間的一部分相同。
另外,第一和第二FT控制部分具有為分別存儲主用和輔助系統(tǒng)的設(shè)置數(shù)據(jù)和狀態(tài)數(shù)據(jù)而配置的第一和第二配置/狀態(tài)存儲部分。當(dāng)主用系統(tǒng)和輔助系統(tǒng)分別作為現(xiàn)用系統(tǒng)和備用系統(tǒng)同步操作時,如果第一南橋發(fā)生故障,在第一FT控制部分的第一配置/狀態(tài)存儲部分中的設(shè)置數(shù)據(jù)和狀態(tài)數(shù)據(jù)被發(fā)送至第二FT控制部分中的第二配置/狀態(tài)存儲部分。然后輔助系統(tǒng)作為現(xiàn)用系統(tǒng)運行。
另外,主用系統(tǒng)進一步包括與第一FT控制部分相連的第一PCI橋和與第一PCI橋相連的第一I/O設(shè)備組。輔助系統(tǒng)進一步包括與第二FT控制部分相連的第二PCI橋和與第二PCI橋相連的第二I/O設(shè)備組。在操作系統(tǒng)還沒有操作的傳統(tǒng)方式中,當(dāng)主用系統(tǒng)被設(shè)置為現(xiàn)用系統(tǒng)和輔助系統(tǒng)被設(shè)置為備用系統(tǒng)而與主用系統(tǒng)同步操作時。來自第一I/O設(shè)備組的一個I/O設(shè)備的第一中斷請求,經(jīng)過第一南橋的PIC控制部分和第一主IOAPIC控制部分發(fā)送至第一CPU。
在這種情況下,第一中斷請求最好經(jīng)過鏈路和第二FT控制部分的第二主IOAPIC控制部分發(fā)送至第二CPU,并在預(yù)定的延遲時間之后發(fā)送至第一FT控制部分的第一主IOAPIC控制部分。
另外,在傳統(tǒng)方式之后操作系統(tǒng)運行的擴展方式中,來自第一南橋的第二中斷請求最好經(jīng)過第一IOAPIC控制部分發(fā)送至第一CPU,經(jīng)過鏈路和第二FT控制部分的第二IOAPIC控制部分發(fā)送至第二CPU。
在這種情況下,在擴展方式中,來自第一I/O設(shè)備組的一個I/O設(shè)備的第二中斷請求最好經(jīng)過第一主IOAPIC控制部分發(fā)送至第一CPU,并經(jīng)過鏈和第二主IOAPIC控制部分發(fā)送至第二CPU。
還有,在擴展方式中,來自第二I/O設(shè)備的一個I/O設(shè)備的第三中斷請求最好經(jīng)過第二主IOAPIC控制部分發(fā)送至第二CPU,并經(jīng)過鏈路和第一主IOAPIC控制部分發(fā)送至第一CPU。
另外,第一和第二FT控制部分進一步包括第一和第二狀態(tài)存儲部分,其分別存儲主用和輔助系統(tǒng)的設(shè)置數(shù)據(jù)以及表示主用和輔助系統(tǒng)狀態(tài)的狀態(tài)數(shù)據(jù)。第一IOAPIC控制部分將除第一中斷請求以外的所收到的中斷請求和當(dāng)時主用系統(tǒng)的狀態(tài)數(shù)據(jù)存儲到第一狀態(tài)存儲部分。第二IOAPIC控制部分將除第一中斷請求以外的所收到的中斷請求和當(dāng)時主用系統(tǒng)的狀態(tài)數(shù)據(jù)存儲到第二狀態(tài)存儲部分中。
還有,第一和第二FT控制部分可具有第一和第二狀態(tài)存儲部分,其分別存儲主用和輔助系統(tǒng)的設(shè)置數(shù)據(jù)以及表示主用和輔助系統(tǒng)的狀態(tài)的狀態(tài)數(shù)據(jù)。當(dāng)?shù)谝籆PU和第二CPU彼此同步操作時,如果檢測出第一和第二狀態(tài)存儲部分之間存儲的數(shù)據(jù)不一致,則SMI(系統(tǒng)管理中斷)處理器停止第一CPU和第二CPU的操作,并控制第一和第二FT控制部分使存儲在第一和第二狀態(tài)存儲部分的設(shè)置數(shù)據(jù)/狀態(tài)數(shù)據(jù)彼此符合。
本發(fā)明的另一方面,一種容錯計算機系統(tǒng),包括主用系統(tǒng)和輔助系統(tǒng)。主用系統(tǒng)包括第一CPU、與第一CPU相連的第一FT控制部分、與第一FT控制部分在電氣上和操作上相連的第一南橋、與第一FT控制部分相連的第一PCI橋和與第一PCI橋相連的第一I/O設(shè)備組。輔助系統(tǒng)包括第二CPU、與第二CPU相連的第二FT控制部分、與第二FT控制部分在電氣上相連但操作上不相連的第二南橋、與第二FT控制部分相連的第二PCI橋和與第二PCI橋相連的第二I/O設(shè)備組。第一FT控制部分和第二FT控制部分通過鏈路部分相連,第一FT控制部分具有第一主IOAPIC控制部分,第二FT控制部分具有第二主IOAPIC控制部分。第一CPU和第二CPU具有第一中斷路徑和第二中斷路徑。在起動時在主用系統(tǒng)中產(chǎn)生的第一中斷,經(jīng)過第一和第二主IOAPIC控制部分和第一中斷路徑發(fā)送至第一和第二CPU,在操作時在主用系統(tǒng)或輔助系統(tǒng)中產(chǎn)生的第二中斷,經(jīng)過第一和第二主IOAPIC控制部分和第二中斷路徑發(fā)送至第一和第二CPU。
本發(fā)明的另一方面,一種中斷控制方法,其通過提供包括主用系統(tǒng)和輔助系統(tǒng)的容錯計算機系統(tǒng)而實現(xiàn),其中主用系統(tǒng)包括第一CPU、與第一CPU相連的第一FT控制部分、與第一FT控制部分在電氣上和操作上相連的第一南橋、與第一FT控制部分相連的第一PCI橋和與第一PCI橋相連的第一I/O設(shè)備組,輔助系統(tǒng)包括第二CPU、與第二CPU相連的第二FT控制部分、與第二FT控制部分在電氣上相連但操作上不相連的第二南橋、與第二FT控制部分相連的第二PCI橋和與第二PCI橋相連的第二I/O設(shè)備組。第一FT控制部分和第二FT控制部分通過鏈路部分相連,第一FT控制部分具有第一主IOAPIC控制部分,第二FT控制部分具有第二主IOAPIC控制部分。中斷控制方法這樣不定期實現(xiàn)當(dāng)主用系統(tǒng)被設(shè)置為現(xiàn)用系統(tǒng)而輔助系統(tǒng)設(shè)置為備用系統(tǒng)并與主用系統(tǒng)同步操作時,在操作系統(tǒng)還沒有運行的傳統(tǒng)方式中,將第一I/O設(shè)備組的一個I/O設(shè)備發(fā)布的第一中斷請求進一步傳送至第一主IOAPIC控制部分;將第一中斷請求經(jīng)過鏈路部分發(fā)送第二FT控制部分的第二主IOAPIC控制部分;通過將第一中斷請求經(jīng)過第一南橋的PIC控制部分傳送至第一主IOAPIC控制部分,將第一中斷請求從第一主IOAPIC控制部分發(fā)送至第一CPU;和通過將第一中斷請求經(jīng)過第二南橋的PIC控制部分傳送至第二主制的方法,將第一中斷請求從第二主IOAPIC控制部分發(fā)送至第二CPU。
這里,第一中斷請求到達第一主IOAPIC控制部分的定時與第一中斷請求到達第二主IOAPIC控制部分的定時相同。
另外,中斷控制方法也可以這樣實現(xiàn),即在傳統(tǒng)方式之后,以擴展方式將第二南橋發(fā)布的第二中斷請求從第一IOAPIC控制部分發(fā)送至第一CPU;和將第二中斷請求從第二FT控制部分的第二IOAPIC控制部分經(jīng)過鏈路發(fā)送至第二CPU。
中斷控制方法也可以這樣來實現(xiàn),即在擴展方式中,將第二中斷請求經(jīng)第一主IOAPIC控制部分發(fā)送至第一CPU;和將第二中斷請求經(jīng)過鏈路和第二主IOAPIC控制部分發(fā)送至第二CPU。
中斷控制方法也可以這樣實現(xiàn),即在擴展方式中,將來自第二I/O設(shè)備組的一個I/O設(shè)備的第三中斷請求經(jīng)過第二主IOAPIC控制部分發(fā)送至第二CPU;和將第三中斷請求經(jīng)過鏈路和第一主IOAPIC控制部分發(fā)送至第一CPU。
中斷控制方法也可以這樣實現(xiàn),即將收到的除第一中斷請求以外的中斷請求和當(dāng)時主用系統(tǒng)的狀態(tài)數(shù)據(jù)存儲至第一FT控制部分的第一狀態(tài)存儲部分中;和將收到的除第一中斷請求以外的中斷請求和當(dāng)時主用系統(tǒng)的狀態(tài)數(shù)據(jù)存儲至第二FT控制部分的第二狀態(tài)存儲部分。
中斷控制方法也可以這樣實現(xiàn),即當(dāng)?shù)谝籆PU和第二CPU彼此同步操作時,如果檢測出第一和第二狀態(tài)存儲部分之間存儲的數(shù)據(jù)不一致,則SMI(系統(tǒng)管理中斷)處理器停止第一CPU和第二CPU的操作;和控制第一和第二FT控制部分使存儲在第一和第二狀態(tài)存儲部分中的設(shè)置數(shù)據(jù)和狀態(tài)數(shù)據(jù)彼此符合;和當(dāng)?shù)谝缓偷诙顟B(tài)存儲部分之間的設(shè)置數(shù)據(jù)和狀態(tài)數(shù)據(jù)彼此符合時,重新起動第一CPU和第二CPU的操作。
圖1是常規(guī)容錯計算機系統(tǒng)的配置示例方框圖;圖2是根據(jù)本發(fā)明實施例的容錯計算機系統(tǒng)的基本配置方框圖;圖3是圖2所示容錯計算機系統(tǒng)的PCI(外圍部件互連)分層結(jié)構(gòu)方框圖;圖4是非雙重PC服務(wù)器的中斷路由選擇示意方框圖;圖5是示出根據(jù)本發(fā)明實施例的容錯計算機系統(tǒng)的中斷控制器雙重系統(tǒng)的中斷路由選擇的方框示意圖;圖6是容錯(FT)控制部分的主IOAPIC(IO高級可編程中斷控制器)的配置示意方框圖;圖7是根據(jù)本發(fā)明實施例的容錯計算機系統(tǒng)的系統(tǒng)地址映象實例示意圖;圖8是相同的設(shè)置命令通過路由器發(fā)送至現(xiàn)用南橋的狀態(tài)示意圖;圖9是容錯(FT)控制部分的主IOAPIC中的IRQ表和南橋的IOAPIC的IRQ表之間的關(guān)系圖;圖10是根據(jù)本發(fā)明容錯計算機系統(tǒng)在傳統(tǒng)方式中的中斷控制操作示意圖;圖11是根據(jù)本發(fā)明容錯計算機系統(tǒng)在擴展方式中的中斷控制示意圖。
具體實施例方式
下面將參考附圖詳細描述根據(jù)本發(fā)明容錯計算機系統(tǒng)。例如,本發(fā)明的容錯計算機系統(tǒng)能應(yīng)用于服務(wù)器系統(tǒng)。
圖2是根據(jù)本發(fā)明的容錯計算機系統(tǒng)基本配置方框圖。如圖2所示,實施例的容錯計算機系統(tǒng)有兩個具有相同配置的系統(tǒng),即主用系統(tǒng)#1和輔助系統(tǒng)#2。主用系統(tǒng)#1和輔助系統(tǒng)#2各包括容錯(FT)控制器10(10A、10B)、CPU(中央處理器)2(2A、2B)、主存儲器3、南橋6(6A、6B)、PCI(外圍部件互連)橋7(7A、7B)和I/O設(shè)備5(5A、5B)。注意,上述后綴“A”指示主用系統(tǒng),另一后綴“B”表示輔助系統(tǒng)。FT控制部分10A通過FT鏈路8連接至FT控制部分10B。在本實施例中,F(xiàn)T控制部分是雙重的,本發(fā)明的中斷控制器裝在FT控制部分10A和10B中。
為了能用正常部件代替故障部件,希望主用系統(tǒng)#1和輔助系統(tǒng)#2安排在分立的板上。最好容錯計算機系統(tǒng)由四塊或更多的板組成,以使含有CPU2和主存儲器3和CPU子系統(tǒng)與I/O子系統(tǒng)能夠分開。兩個CPU子系統(tǒng)各包括一個CPU組(在這個實施例中為單一CPU)、主存儲器3和包含中斷控制器的FT控制部分10的上半部分。兩個CPU子系統(tǒng)完全同步操作,包括時鐘。I/O子系統(tǒng)提供有I/O設(shè)備5、PCI橋7和南橋組6,它們是雙重的。主I/O子系統(tǒng)和次I/O子系統(tǒng)有完全相同的硬件配置。PCI橋7將I/O設(shè)備5連接至FT控制部分10。
圖3是圖2所示根據(jù)本實施例容錯計算機系統(tǒng)的PCI分層結(jié)構(gòu)的方框圖。所有可訪問的設(shè)備都有按照PCI規(guī)范的PCI總線號碼、PCI設(shè)備號碼和PCI功能號碼。根據(jù)本實施例的容錯計算機系統(tǒng)還具有分層結(jié)構(gòu),其中CPU設(shè)置為最高層。雖然只有南橋6具有完全相同的設(shè)備號碼,但在正常操作中只使用一個南橋6。在下面的陳述中,正在使用的南橋6稱為“現(xiàn)用南橋”6,而其他的南橋6則稱為“備用南橋”6。備用南橋6邏輯上與FT控制部分10斷開,在故障切換之前不允許進入備用南橋6。
圖4是非雙重部件的一般PC服務(wù)器的中斷路由選擇示意圖。各I/O設(shè)備組(本示例中的PIC設(shè)備)最大能有四條中斷線(#A至#D),這些中,斷線#A至#D一次地連接至PCI橋7。PCI橋7以線“或”方式連接多組中斷線,四條線“或”連接的中斷線連接至南橋6的PIC或IOAPIC(IO高級可編程中斷控制器)當(dāng)中的一個。本PC服務(wù)器以傳統(tǒng)方式起動。在這種情況下,PIC用作中斷控制器。當(dāng)OS(操作系統(tǒng))例如Windows和Linux進行操作時,PIC的操作被停止,而使用具有比PIC更高功能的IOAPIC。
圖5是根據(jù)本發(fā)明的容錯計算機系統(tǒng)和中斷路由選擇的配置示意方框圖,其中中斷控制器為雙重配置。
FT控制部分10(10A、10B)提供有圖2中的錯誤檢測單元11(11A、11B),圖5中的主IOAPIC 12(12A、12B),圖5中的消息轉(zhuǎn)換器14(14A、14B),圖8中的FT比較器15(15A、15B),圖8中的路由器18(18A、18B)和圖9中的定時器19(19A、19B)。雖未表示,但FT控制部分10還提供有用于保證主CPU子系統(tǒng)和輔CPU子系統(tǒng)同步操作的同步操作保證控制部分。
錯誤檢測器11檢查從CPU或者I/O設(shè)備發(fā)布的請求,以檢測發(fā)生在內(nèi)部單元或I/O子系統(tǒng)中的錯誤。當(dāng)檢測到任何錯誤時,錯誤檢測器11產(chǎn)生SMI(系統(tǒng)管理中斷)。主IOAPIC 12以擴展方式(操作系統(tǒng)(OS)使CPU2運行)管理或控制中斷請求,并以傳統(tǒng)方式(其中OS尚未起動)將與來自I/O子系統(tǒng)的中斷請求相應(yīng)的中斷消息發(fā)送至南橋6。應(yīng)當(dāng)注意,主和輔助系統(tǒng)兩者CPU的OS是相同的。主IOAPIC 12以傳統(tǒng)方式將來自南橋6的中斷請求傳送至CPU2。消息轉(zhuǎn)換器14將從I/O子系統(tǒng)發(fā)布的中斷請求轉(zhuǎn)換為中斷消息。FT比較器15比較兩個值,并將從CPU2發(fā)送來的設(shè)置命令經(jīng)過路由器18發(fā)送至現(xiàn)用南橋6。門控制器16將來自主IOAPIC 12的中斷請求連接至南橋6,并將來自南橋6的中斷請求連接至主IOAPIC 12。路由器18將CPU發(fā)送來的數(shù)據(jù)/命令發(fā)送至主存儲器3或者I/O子系統(tǒng),并將數(shù)據(jù)/命令和來自I/O子系統(tǒng)的中斷請求傳送至主存儲器3或者CPU。主用系統(tǒng)中的FT控制部分的路由器18A將中斷請求經(jīng)過FT鏈路8,發(fā)送至輔助系統(tǒng)中的FT控制部分10B的主IOAPIC12B。從FT控制部分10B的路由器18B來的中斷請求至FT控制部分10A的主IOAPIC 12A的發(fā)送是同樣的。應(yīng)當(dāng)注意,由于向另一系統(tǒng)中主IOAPIC 12的通報是經(jīng)過FT鏈路8進行的,所以產(chǎn)生時間延遲。但是,由于上述中斷消息是在預(yù)定的時間周期之后,基于這個時滯通知它自身系統(tǒng)的主IOAPIC的,所以中斷消息能以基本上相同的時間通知主IOAPIC 12A和12B。
FT(容錯)鏈路8將主用系統(tǒng)中的FT控制部分#1 10A和輔助系統(tǒng)中的FT控制部分#2 10B連接起來。FT鏈路8用于從主用系統(tǒng)的I/O設(shè)備進入輔助系統(tǒng),或者從輔助系統(tǒng)進入主用系統(tǒng)。因此,主用系統(tǒng)中的FT控制部分#1 10A只將對PCI橋#1 7A和由這個PCI橋#1 7A管理的I/O設(shè)備5A的訪問請求,經(jīng)過FT鏈路8發(fā)送至輔助系統(tǒng)中的FT控制部分#2 10B。類似地,輔助系統(tǒng)中的FT控制部分#210B接收發(fā)自主用系統(tǒng)中FT控制部分#1 10A的訪問請求,并只將對PCI橋#2 7B和由這個PCI橋#2 7B管理的I/O設(shè)備5B的訪問請求,經(jīng)過FT鏈路8發(fā)送至主用系統(tǒng)中的FT控制部分#1 10A。因此,主和輔助系統(tǒng)兩者同步檢查的范圍限于上述范圍。換句話說,在本發(fā)明的容錯計算機系統(tǒng)中,由FT控制部分10以分布方式進行同步檢查。
因為現(xiàn)有的開放系統(tǒng)設(shè)備和OS能用于這種容錯計算機系統(tǒng),所以能成功利用雙重配置而不必考慮上述操作。FT控制部分10(10A、10B)中的主IOAPIC 12(12A、12B)從OS來看是可見的,是作為唯一的中斷控制器出現(xiàn)的。在主和輔助系統(tǒng)的FT控制部分10中提供的兩組主中斷控制器12,彼此完全同步操作。
南橋6備有或者連接至稱作“傳統(tǒng)設(shè)備”的設(shè)備,例如串行端口、并行端口、鼠標、鍵盤、定時器和時鐘,所有這些設(shè)備都未示出,它們在系統(tǒng)中各自單獨出現(xiàn)。這些傳統(tǒng)設(shè)備在系統(tǒng)中有預(yù)定的地址,不允許系統(tǒng)多于一個設(shè)備出現(xiàn)。另外經(jīng)常直接從OS進入這些傳統(tǒng)設(shè)備。南橋6使用與其他I/O設(shè)備5不同的中斷控制,并且在軟件上不能重復(fù),不像其他I/O設(shè)備5。即使在本發(fā)明的容錯計算機系統(tǒng)中,主用系統(tǒng)和輔助系統(tǒng)中也只有一個南橋工作為現(xiàn)用南橋。另一南橋處于備用狀態(tài),直至現(xiàn)用南橋6出現(xiàn)故障。因此,備用南橋從OS來看是不可見的。
圖6是FT控制部分10和南橋6之間傳送中斷請求的配置示意圖。南橋6(6A、6B)具有通用的配置,備有中斷路由選擇邏輯32(32A、32B),PIC 34(34A、34B)和IOAPIC 36(36A、36B)。中斷路由選擇邏輯32接收從外部設(shè)備或內(nèi)部設(shè)備發(fā)布的中斷請求,或者向PIC 34或者向IOAPIC 36通報目的地,隨操作方式而變。PIC 34是以傳統(tǒng)方式作為操作方式的中斷控制器,以傳統(tǒng)方式起動對傳統(tǒng)設(shè)備的中斷控制。IOAPIC36是以擴展方式作為操作方式的中斷控制器,一般用于Intel兼容的PC服務(wù)器。IOAPIC 36管理和控制涉及南橋6的中斷請求,并向FT控制部分10的主IOAPIC 12發(fā)送所收到的中斷請求。
FT控制部分10(10A、10B)提供有路由器18和主IOAPIC 12(12A、12B),主IOAPIC 12(12A、12B)提供有IOAPIC 24(24A、24B),配置/狀態(tài)存儲部分(寄存器組)22(22A、22B)和中斷路由選擇邏輯20(20A、20B)。從南橋6的PIC 34來的中斷請求經(jīng)過主IOAPIC 12作為中斷(INTR)輸出。中斷路由選擇邏輯20接收來自PCI橋7的INT#x消息,向IOAPIC 24發(fā)送INT#x消息或者經(jīng)門控制器(圖5所示)向南橋6的中斷路由選擇邏輯32發(fā)送INT#x消息,取決于操作方式。
主IOAPIC 12的配置/狀態(tài)存儲部分22中設(shè)置所有的設(shè)置數(shù)據(jù),并從存儲部分22能知道狀態(tài)。存儲部分22存儲指示中斷控制器狀態(tài)的數(shù)據(jù)。系統(tǒng)軟件在故障切換時參考存儲部分22。當(dāng)在容錯計算機系統(tǒng)主用系統(tǒng)的FT控制部分10模塊中發(fā)生故障時,故障模塊被新的模塊代替。這時,故障模塊的狀態(tài)能在輔助系統(tǒng)的中斷控制器中完全重現(xiàn)。存儲部分22保存如下數(shù)據(jù)·IOAPIC的設(shè)置數(shù)據(jù);·FT控制部分10中IOAPIC控制邏輯的內(nèi)部狀態(tài)(注意,內(nèi)部狀態(tài)表示為二進制數(shù)值,系統(tǒng)軟件處理時不檢查這一數(shù)值,而這一內(nèi)部狀態(tài)純粹用于復(fù)制內(nèi)部狀態(tài));·PIC的設(shè)置數(shù)據(jù)(雖然FT控制部分10沒有PIC功能,但在故障切換時FT控制部分10使用這一設(shè)置數(shù)據(jù)進行南橋6中的設(shè)置);·FT控制部分10中PIC控制邏輯的內(nèi)部狀態(tài)(二進制狀態(tài));·中斷控制器的其他設(shè)置數(shù)據(jù)(限于FT控制部分等的寄存器設(shè)置數(shù)據(jù));和·中斷控制器邏輯的其他內(nèi)部狀態(tài)(二進制條件)。
存儲部分22的所有存儲內(nèi)容復(fù)制至新模塊的存儲部分22。因此,主IOAPIC 12能設(shè)置為與復(fù)制源完全相同的設(shè)置和完全相同的操作狀態(tài)。結(jié)果,一個系統(tǒng)中的新FT模塊能與另一系統(tǒng)中的FT模塊完全同步操作。
圖7是根據(jù)本發(fā)明容錯計算機系統(tǒng)的系統(tǒng)地址映象實例的示意圖。主IOAPIC 12映象至例如FEC0_0000h至FEC8_FFFFh,并在這個空間進行配置/狀態(tài)的設(shè)置。南橋6中IOAPIC 36的地址空間與主IOAPIC 12的地址空間的一部分重疊。因此,在本發(fā)明的容錯計算機系統(tǒng)中,提供在現(xiàn)用南橋6中的IOAPIC 36從CPU2或者OS看是隱藏的,不可見的。但是,現(xiàn)用南橋6中的IOAPIC 36的設(shè)置必須進行。為了這個目的,南橋6中的IOAPIC 36的地址空間由主IOAPIC 12的地址空間復(fù)蓋。
圖9示出各類設(shè)備和中斷號碼(IRQs)之間的關(guān)系。左側(cè)的IRQ表提供在現(xiàn)用南橋6的IOAPIC 36中,右側(cè)的IRQ表提供在FT控制部分10的主IOAPIC 12的IOAPIC 24中。在收到中斷原因后,IOAPIC 24將IRQ直接向CPU通報。為了這個目的,在IOAPIC 24中備有IRQ表。南橋6中IOAPIC 36的IRQ表具有通用的配置,特別是IRQ0至IRQ15固定地確定在Intel兼容的CPU系統(tǒng)中。南橋6中IOAPIC 36的IRQ表的設(shè)置操作實際上是通過對主IOAPIC 12的IOAPIC 24設(shè)置數(shù)據(jù)進行的。相同的設(shè)置命令從CPU 2A通過路由器18發(fā)送至主用系統(tǒng)中的現(xiàn)用南橋6A和輔助系統(tǒng)中的備用南橋6B。因此,現(xiàn)用南橋6A中IOAPIC 36的IRQ表和備用南橋6B中IOAPIC 36的IRQ36表被設(shè)置為相同的內(nèi)容,F(xiàn)T控制部分10A中IOAPIC 24的IRQ表和FT控制部分10B中IOAPIC 24的IRQ表被設(shè)置為相同的內(nèi)容。另外,IOAPIC 24的IRQ表內(nèi)容包含IOAPIC36的IRQ表內(nèi)容。從現(xiàn)用現(xiàn)橋6A發(fā)布的中斷消息被直接替代為中斷請求發(fā)送至主IOAPIC 12。從PCI橋7發(fā)布的中斷請求被分配給例如IRQ20至IRQ27中的一個。
圖8是相同的設(shè)置命令通過路由器18(18A、18B)發(fā)送至現(xiàn)用南橋的狀態(tài)示意圖。
如圖8所示,F(xiàn)T控制部分10進一步提供有外部插腳(圖8)和現(xiàn)用南橋寄存器(未示)。外部插腳指示含有FT控制部分10的模塊的實際位置,也就是說指示FT控制部分10出現(xiàn)在或者主用系統(tǒng)或者輔助系統(tǒng)?,F(xiàn)用南橋寄存器指示現(xiàn)用南橋6的地址單元。
如圖8所示,從CPU2發(fā)布的設(shè)置命令通過路由器18發(fā)送至主IOAPIC 12,并設(shè)置在主IOAPIC 12中。在設(shè)置命令中,與南橋6的IOAPIC36重疊的命令部分通過路由器18發(fā)送至FT比較器15。FT比較器15將設(shè)置命令與一組模塊的實際位置數(shù)據(jù)和現(xiàn)用南橋寄存器的數(shù)據(jù)進行比較,當(dāng)不一致時則將設(shè)置命令發(fā)送至現(xiàn)用南橋6。因此,南橋6的IOAPIC36的設(shè)置狀態(tài)等效地出現(xiàn)在主IOAPIC 12上。因此,可以設(shè)置主IOAPIC12的IOAPIC 24中的設(shè)置重疊部分和IOAPIC 36。換句話說,能產(chǎn)生具有完全相同設(shè)置的IOAPIC的復(fù)制品。
主IOAPIC 12是主中斷控制器,并管理整個系統(tǒng)的中斷。主IOAPIC12是擴展的中斷控制器。當(dāng)出現(xiàn)了中斷因素時,主IOAPIC 12向CPU2連同消息形式中的中斷號碼一起通報中斷出現(xiàn)。提供在FT控制部分10A和10B中的兩個主中斷控制器12A和12B和輔助系統(tǒng),通過同步操作保證控制器進行彼此完全同步的操作。從中斷線#A至#D中任何一個來的PCI橋7A和PCI橋7B發(fā)布的中斷請求通過消息轉(zhuǎn)換器14轉(zhuǎn)換為INT #x斷言消息或INT #x非斷言消息(圖5),然后通過路由器18將消息同時通報主和輔助系統(tǒng)中的主IOAPIC 12A和12B。
PIC(可編程中斷控制器)34和IOAPIC(IO高級可編程中斷控制器)12和36彼此不同之處有如下幾點。也就是說,PIC 34是繼承以往傳統(tǒng)的傳統(tǒng)中斷控制器。當(dāng)出現(xiàn)中斷因素時,PIC 34通過使用一條中斷線(INTR)向CPU2輸出中斷請求作為INTR信號。在收到INTR信號后,CPU2向PIC 34發(fā)布中斷應(yīng)答命令并識別中斷號碼。另一方面,主IOAPIC 12或36進一步擴展中斷控制器。當(dāng)中斷因素出現(xiàn)時,主IOAPIC 12或36將中斷請求連同消息形式中的中斷號碼通報給CPU2。由于存在上述不同點,在每個主和輔助系統(tǒng)中存在兩個向CPU2通報中斷的系統(tǒng)。
如上所述,在本計算機系統(tǒng)中,PIC 34在OS起動之前在傳統(tǒng)方式中使用,而主IOAPIC 12和36是在OS起動之后在擴展方式中使用。因此,中斷請求路徑被切換。
如上所述,現(xiàn)用/備用門控制器16(圖5)出現(xiàn)在FT控制部分10中。南橋6在電氣上連接至備用方的FT控制部分10,但在邏輯上與FT控制部分10斷開。結(jié)果,向備用門控制器16那一方的南橋6發(fā)出的任何中斷通報被阻斷。
應(yīng)當(dāng)注意,錯誤檢測器11由定時器19周期性地激活,主和輔助系統(tǒng)中的狀態(tài)存儲單元22可彼此進行比較。作為比較的結(jié)果,當(dāng)被檢測的狀態(tài)不一致時,將狀態(tài)的不一致通報給SMI處理器。SMI處理器停止CPU2的操作并執(zhí)行數(shù)據(jù)傳送處理,使主和輔助系統(tǒng)中狀態(tài)存儲單元22的存儲數(shù)據(jù)彼此相同。此后,SMI處理器重新起動CPU2的操作。照這樣,每次經(jīng)過預(yù)定的時間周期,能消除由累積引起的錯誤。每次經(jīng)過預(yù)定時間周期后,當(dāng)錯誤檢測器11檢測到在南橋6或其他位置兩者之一中出現(xiàn)故障,或者響應(yīng)從CPU2或I/O設(shè)備5兩者之一發(fā)布的請求時,將所檢測的故障通報給SMI處理器。SMI處理器停止CPU2的操作。在出現(xiàn)故障的板被新板替換之后,SMI處理器執(zhí)行數(shù)據(jù)傳送處理,以使主和輔助系統(tǒng)之間狀態(tài)存儲單元22的存儲數(shù)據(jù)彼此相同。此后,SMI處理器重新起動CPU2的操作。
在傳統(tǒng)方式中,通過使南橋6中的PIC 34用作容錯計算機系統(tǒng)中的唯一的中斷控制器,將INT #x消息返回中斷線#A至#D,就有一個輸出將PCI橋7發(fā)布的INT #x消息連接至南橋6。利用主IOAPIC進行至CPU2的中斷。由南橋6的PIC 34發(fā)布的中斷請求INTR和IOAPIC 36發(fā)布的中斷消息經(jīng)過現(xiàn)用/備用門控制器16連接至主IOAPIC 12。因此,主IOAPIC 12具有一條INTR中斷線的路徑,使南橋6來的中斷請求INTR能經(jīng)過它直接到CPU2,和一條在這個主IOAPIC 12中處理的中斷消息的路徑。兩條路徑連接至CPU2。
在傳統(tǒng)方式之后的擴展方式中,對于CPU2的所有中斷請求的接收和發(fā)送都經(jīng)過主IOAPIC 12進行。在擴展方式中,主IOAPIC 12管理和控制來自南橋6的中斷和來自PCI橋7的中斷兩者。由于這個原因,主IOAPIC 12的一部分可以從現(xiàn)用南橋6的IOAPIC 36直接觀察。因此,各南橋6中的IOAPIC 36從計算機系統(tǒng)來看是可見的。這是考慮在南橋6中發(fā)生故障的結(jié)果。當(dāng)故障發(fā)生在現(xiàn)用南橋6中時,主IOAPIC 12的中斷控制直接由備用南橋6的IOAPIC 36代替。因此,從OS方面來看,不會發(fā)生IOAPIC的增加和減少。
其次,在本發(fā)明實施例圖2所示的計算機系統(tǒng)中,假定主用系統(tǒng)方的南橋6稱作“現(xiàn)用南橋”,并且用作正常處理。
下面將描述傳統(tǒng)方式中的現(xiàn)用南橋6的操作。在傳統(tǒng)方式中,PIC 34起中斷控制的核心作用。當(dāng)使用PIC 34時,這個PIC 34只是計算機系統(tǒng)中的一個中斷控制器,控制來自所有設(shè)備的中斷。雖然FT控制部分10能監(jiān)視來自PCI橋7控制下的I/O設(shè)備5-1和5-2的中斷狀態(tài),但是FT控制部分10不能掌握南橋6中設(shè)備的狀態(tài)。因此,使用現(xiàn)用南橋6中的PIC 34。
參考圖10,斷言來自PCI設(shè)備#1b的中斷信號。這時,中斷請求經(jīng)過PCI橋#1 7A被通報給FT控制部分10中的消息轉(zhuǎn)換器14A(步驟S1)。消息轉(zhuǎn)換器14A將信號線的狀態(tài)即中斷請求轉(zhuǎn)換為INT #x斷言消息,然后將這個INT #x斷言消息通報給主IOAPIC 12A和12B(步驟S2)。在與這個消息發(fā)送至主IOAPIC 12B相應(yīng)的預(yù)定延時之后,將這個INT #x斷言消息經(jīng)過FT鏈路8通報給FT控制部分#2 10B,并通報給主IOAPIC12A。結(jié)果是,主和輔助系統(tǒng)中的主IOAPIC 12A和12B同時收到中斷請求,由此能以完全同步的方式進行操作。
主IOAPIC 12A和12B分別將INT #x斷言消息發(fā)送至門控制器16A和16B(步驟S3)。當(dāng)門控制器16A基于板位置插腳和現(xiàn)用南橋寄存器的數(shù)值判斷門控制器16本身是現(xiàn)用的時候,門控制器16A將INT #x斷言消息返回至中斷信號線INT #x,向南橋6通報(步驟S4)。一般地說,南橋6具有圖6所示的配置,外部進入的中斷被提供給路由選擇邏輯32。應(yīng)當(dāng)注意,來自外部設(shè)備例如最初出現(xiàn)在南橋6的串行端口、并行端口、鼠標、定時器、鍵盤和時鐘的中斷請求同樣提供給路由選擇邏輯32。在這種情況下,中斷通報從這一內(nèi)部設(shè)備開始。
由于南橋6中的路由選擇邏輯32用的是傳統(tǒng)方式,所以路由選擇邏輯32向PIC 34通報中斷請求。PIC 34將中斷線斷言為INTR信號(步驟S5)。門控制器16A將INTR信號轉(zhuǎn)換為INTR斷言消息,然后將所轉(zhuǎn)換的斷言消息向主IOAPIC 12A和12B通報。這時,INTR斷言消息經(jīng)過FT鏈路8向備用方面的主IOAPIC 12B通報。在實際情況中,由于INTR斷言消息經(jīng)過和上述INT #x消息相同的路徑,所以INTR斷言消息能同時通報給主IOAPIC 12A和12B(步驟S6)。當(dāng)主IOAPIC 12A和12B接受INTR斷言消息時,主IOAPIC 12A和12B同時將INTR斷言給CPU2(步驟S7)。
當(dāng)故障以傳統(tǒng)方式發(fā)生在現(xiàn)用南橋6中時,中斷被通報給CPU2指示南橋6的故障的發(fā)生,以便調(diào)用容錯控制的系統(tǒng)軟件。最高級的中斷用來調(diào)用系統(tǒng)軟件。例如,在Intel兼容的CPU中使用系統(tǒng)管理中斷(SMI)。結(jié)果是,在CPU2中正在執(zhí)行的所有進程一度停止。在這些進程停止時,SMI處理器將現(xiàn)用南橋6的所有設(shè)置數(shù)據(jù)復(fù)制到備用方,并改變現(xiàn)用南橋寄存器的數(shù)值。在SMI處理器的進程結(jié)束之后,一度停止的CPU2中的進程被重新起動。這時,曾替換過南橋6的事實完全被隱藏。
下面將描述使用IOAPIC的擴展方式中的中斷控制。
圖11示出使用IOAPIC時的操作。假定I/O設(shè)備#2b 5-2A斷言一個INTR信號(步驟S1)。另外,假定中斷經(jīng)過PCI橋#27B被通報給FT控制部分#2 10B作為中斷信號“INT #C”。消息轉(zhuǎn)換器14B接收這個中斷信號INT #C,并將INT #C斷言消息通報給主用系統(tǒng)和輔助系統(tǒng)中的主IOAPIC 12A和12B(步驟S2)。主IOAPIC 12A和12B將PCI橋#2 7B發(fā)布的中斷“INT #C”判斷作為中斷IRQ 26,然后將中斷消息通報給CPU2(步驟S3)。雖然省略詳細的說明,但是南橋6發(fā)布的中斷經(jīng)過相同的路徑。
如上所述,根據(jù)本發(fā)明,在使用IOAPIC的擴展方式中,當(dāng)在南橋6中發(fā)生故障時,SMI處理器像傳統(tǒng)方式一樣能參照主IOAPIC 12A和12B的配置/狀態(tài)存儲單元22,并能設(shè)置與備用方的南橋6的IOAPIC 36中完全相同的設(shè)置數(shù)據(jù)。結(jié)果是從CPU2看,南橋6的故障能被隱藏。
另外,即使在傳統(tǒng)方式和擴展方式兩者中,主IOAPIC 12A和12B也彼此同步地操作。因此,即使當(dāng)FT控制部分10本身中的一個出現(xiàn)故障并且CPU子系統(tǒng)在邏輯上被斷開時,正常操作也能通過另一FT控制部分10的主IOAPIC 12繼續(xù)下去。因此,因此,中斷請求不會丟失。
還有,當(dāng)故障FT控制部分10由新的FT控制部分10代替時,新模塊中的主IOAPIC 12和南橋6中的IOAPIC 36的所有設(shè)置數(shù)據(jù)和狀態(tài)完全丟失。但是,系統(tǒng)軟件(SMI處理器)參照正在繼續(xù)操作的系統(tǒng)中主IOAPIC 12的配置/狀態(tài)存儲部分22,并復(fù)制設(shè)置數(shù)據(jù)和狀態(tài)數(shù)據(jù)。因此,能恢復(fù)完全同步的狀態(tài)。
如上所述具有保存配置/狀態(tài)的存儲部分22的主IOAPIC 12安裝在FT控制部分10中,進行中斷路由選擇控制。所以,中斷控制器能是雙重的。結(jié)果是,即使在沒有考慮容錯計算機系統(tǒng)的情況下生產(chǎn)的并且其中裝有現(xiàn)有的OS和現(xiàn)有的南橋的服務(wù)器中,中斷控制器也能雙重配置。
權(quán)利要求
1.一種容錯(FT)計算機系統(tǒng),其包括主用系統(tǒng)和輔助系統(tǒng),其特征在于所述主用系統(tǒng)包括第一CPU;與所述第一CPU相連的第一FT控制部分;和與所述第一FT控制部分在電氣和操作上相連的第一南橋,所述輔助系統(tǒng)包括第二CPU;與所述第二CPU相連的第二FT控制部分;和與所述第二FT控制部分在電氣上相連但操作上不相連的第二南橋,所述第一FT控制部分和所述第二FT控制部分通過鏈接部分相連,和所述主用系統(tǒng)和所述輔助系統(tǒng)利用鏈接部分彼此同步操作,所述第二南橋除外。
2.根據(jù)權(quán)利要求1所述的容錯計算機系統(tǒng),其特征在于所述第一CPU和所述第二CPU以相同的操作系統(tǒng)運行,和所述第二南橋從操作系統(tǒng)是不可見的。
3.根據(jù)權(quán)利要求1所述的容錯計算機系統(tǒng),其特征在于所述第一FT控制部分具有第一主I/O高級可編程中斷控制器(IOAPIC)控制部分,和所述第二FT控制部分具有第二主IOAPIC控制部分,所述第一南橋具有PIC控制部分和IOAPIC控制部分,所述第一南橋中的所述IOAPIC控制部分的地址空間與所述第一主IOAPIC控制部分的地址空間的一部分相同,和所述第二南橋中的所述IOAPIC控制部分的地址空間與所述第二主IOAPIC控制部分的地址空間的一部分相同。
4.根據(jù)權(quán)利要求1至3中的任一權(quán)利要求所述的容錯計算機系統(tǒng),其特征在于所述第一和第二FT控制部分具有第一和第二配置/狀態(tài)存儲部分,是分別為存儲所述主用和輔助系統(tǒng)的設(shè)置數(shù)據(jù)和狀態(tài)數(shù)據(jù)而配置的,和當(dāng)所述主用系統(tǒng)和輔助系統(tǒng)分別作為現(xiàn)用系統(tǒng)和備用系統(tǒng)同步操作時,如果在所述第一南橋中發(fā)生故障,在所述第一FT控制部分的所述第一配置/狀態(tài)存儲部分中的所述設(shè)置數(shù)據(jù)和所述狀態(tài)數(shù)據(jù)被發(fā)送至所述第二FT控制部分的所述第二配置/狀態(tài)存儲部分,和然后,所述輔助系統(tǒng)作為現(xiàn)用系統(tǒng)運行。
5.根據(jù)權(quán)利要求3所述的容錯計算機系統(tǒng),其特征在于所述主用系統(tǒng)進一步包括與所述第一FT控制部分相連的第一PCI橋,和與所述第一PCI橋相連的第一I/O設(shè)備組,所述輔助系統(tǒng)進一步包括與所述第二FT控制部分相連的第二PCI橋,和與所述第二PCI橋相連的第二I/O設(shè)備組,在操作系統(tǒng)還沒有操作的傳統(tǒng)方式中,當(dāng)所述主用系統(tǒng)設(shè)置為現(xiàn)用系統(tǒng)和所述輔助系統(tǒng)設(shè)置為備用系統(tǒng)而與所述主用系統(tǒng)同步操作時,來自所述第一I/O設(shè)備組的一個I/O設(shè)備的第一中斷請求,經(jīng)過所述第一南橋的所述PIC控制部分和所述第一主IOAPIC控制部分被發(fā)送至所述第一CPU。
6.根據(jù)權(quán)利要求5所述的容錯計算機系統(tǒng),其特征在于所述第一中斷請求經(jīng)過所述鏈路和所述第二FT控制部分的所述第二主IOAPIC控制部分,被發(fā)送至所述第二CPU,并在預(yù)定的延遲時間以后發(fā)送至所述第一FT控制部分的所述第一主IOAPIC控制部分。
7.根據(jù)權(quán)利要求5或6所述的容錯計算機系統(tǒng),其特征在于在所述傳統(tǒng)方式之后的所述操作系統(tǒng)已運行的擴展方式中,來自所述第一南橋的第二中斷請求經(jīng)過所述第一IOAPIC控制部分被發(fā)送至所述第一CPU,并經(jīng)過所述鏈路和所述第二FT控制部分的所述第二IOAPIC控制部分被發(fā)送至所述第二CPU。
8.根據(jù)權(quán)利要求5或6所述的容錯計算機系統(tǒng),其特征在于在擴展方式中,來自所述第一I/O設(shè)備組的一個I/O設(shè)備的第二中斷請求,經(jīng)過所述第一主IOAPIC控制部分,被發(fā)送至所述第一CPU,并經(jīng)過所述鏈路和所述第二主IOAPIC控制部分,被發(fā)送至所述第二CPU。
9.根據(jù)權(quán)利要求5或6所述的容錯計算機系統(tǒng),其特征在于在擴展方式中,來自所述第二I/O設(shè)備組的一個I/O設(shè)備的第三中斷請求,經(jīng)過所述第二主IOAPIC控制部分被發(fā)送至所述第二CPU,并經(jīng)過所述鏈路和所述第一主IOAPIC控制部分被發(fā)送至所述第一CPU。
10.根據(jù)權(quán)利要求5或6所述的容錯計算機系統(tǒng),其特征在于所述第一和第二FT控制部分進一步包括所述第一和第二狀態(tài)存儲部分,其分別存儲主用和輔助系統(tǒng)的設(shè)置數(shù)據(jù)和表示主用和輔助系統(tǒng)狀態(tài)的狀態(tài)數(shù)據(jù),所述第一IOAPIC控制部分將除第一中斷請求之外的所收到的中斷請求和當(dāng)時所述主用系統(tǒng)的狀態(tài)數(shù)據(jù),存儲在所述第一狀態(tài)存儲部分中,所述第二IOAPIC控制部分將除第一中斷請求之外的所收到的中斷請求和當(dāng)時所述主用系統(tǒng)的狀態(tài)數(shù)據(jù),存儲在所述第二狀態(tài)存儲部分中。
11.根據(jù)權(quán)利要求1至3中的任一權(quán)利要求所述的容錯計算機系統(tǒng),其特征在于所述第一和第二FT控制部分具有第一和第二狀態(tài)存儲部分,其分別存儲主用和輔助系統(tǒng)的設(shè)置數(shù)據(jù)和表示主用和輔助系統(tǒng)狀態(tài)的狀態(tài)數(shù)據(jù),和當(dāng)所述第一CPU和所述第二CPU彼此同步操作時,如果檢測出所述第一和第二狀態(tài)存儲部分之間存儲的數(shù)據(jù)不一致,則SMI(系統(tǒng)管理中斷)處理器停止所述第一CPU和所述第二CPU的操作,控制所述第一和第二FT控制部分,使存儲在所述第一和第二狀態(tài)存儲部分中的設(shè)置數(shù)據(jù)/狀態(tài)數(shù)據(jù)彼此符合。
12.根據(jù)權(quán)利要求5或6所述的容錯計算機系統(tǒng),其特征在于所述第一和第二FT控制部分具有第一和第二狀態(tài)存儲部分,其分別存儲主用和輔助系統(tǒng)的設(shè)置數(shù)據(jù)和表示主用和輔助系統(tǒng)狀態(tài)的狀態(tài)數(shù)據(jù),當(dāng)所述第一CPU和所述第二CPU彼此同步操作時,如果檢測出所述第一和第二狀態(tài)存儲部分之間存儲的數(shù)據(jù)不一致,則系統(tǒng)管理中斷(SMI)處理器停止所述第一CPU和所述第二CPU的操作,控制所述第一和第二FT控制部分,使存儲在所述第一和第二狀態(tài)存儲部分中的設(shè)置數(shù)據(jù)/狀態(tài)數(shù)據(jù)彼此符合。
13.一種容錯計算機系統(tǒng),包括主用系統(tǒng)和輔助系統(tǒng),其特征在于所述主用系統(tǒng)包括第一CPU,與所述第一CPU相連的第一FT控制部分,與所述第一FT控制部分在電氣和操作上相連的第一南橋,與所述第一FT控制部分相連的第一PCI橋,和與所述第一PCI橋相連的第一I/O設(shè)備組,所述輔助系統(tǒng)包括第二CPU,與所述第二CPU相連的第二FT控制部分,與所述第二FT控制部分在電氣上相連但操作上不相連的第二南橋,與所述第二FT控制部分相連的第二PCI橋,和與所述第二PCI橋相連的第二I/O設(shè)備組,所述第一FT控制部分和所述第二FT控制部分通過鏈接部分相連,所述第一FT控制部分具有第一主IOAPIC控制部分,所述第二FT控制部分具有第二主IOAPIC控制部分,所述第一CPU和所述第二CPU各具有第一中斷路徑和第二中斷路徑,在起動時在所述主用系統(tǒng)中產(chǎn)生的第一中斷經(jīng)過所述第一和第二主IOAPIC控制部分和所述第一中斷路徑,被發(fā)送至所述第一和第二CPU,在操作時在所述主用系統(tǒng)或所述輔助系統(tǒng)中產(chǎn)生的第二中斷經(jīng)過所述第一和第二主IOAPIC控制部分和所述第二中斷路徑,被發(fā)送至所述第一和第二CPU。
14.一種中斷控制方法,其特征在于包括提供容錯計算機系統(tǒng),包括主用系統(tǒng)和輔助系統(tǒng),其中,所述主用系統(tǒng)包括第一CPU,與所述第一CPU相連的第一FT控制部分,與所述第一FT控制部分在電氣和操作上相連的第一南橋,與所述第一FT控制部分相連的第一PCI橋,和與第一PCI橋相連的第一I/O設(shè)備組,所述輔助系統(tǒng)包括第二CPU,與所述第二CPU相連的第二FT控制部分,與所述第二FT控制部分電氣上相連但操作上不相連的第二南橋,與所述第二FT控制部分相連的第二PCI橋,和與第二PCI橋相連的第二I/O設(shè)備組,所述第一FT控制部分和所述第二FT控制部分通過鏈接部分相連,和所述第一FT控制部分具有第一主IOAPIC控制部分,所述第二FT控制部分具有第二主IOAPIC控制部分;當(dāng)所述主用系統(tǒng)被設(shè)置為現(xiàn)用系統(tǒng)而所述輔助系統(tǒng)被設(shè)置為備用系統(tǒng)并與所述主用系統(tǒng)同步操作時,在操作系統(tǒng)還沒有運行的傳統(tǒng)方式中,將所述第一I/O設(shè)備組的一個I/O設(shè)備發(fā)布的第一中斷請求傳送至所述第一主IOAPIC控制部分;將所述第一中斷請求經(jīng)過所述鏈路部分發(fā)送至所述第二FT控制部分的所述第二主IOAPIC控制部分;通過將所述第一中斷請求經(jīng)過所述第一南橋的所述PIC控制部分傳送至所述第一主IOAPIC控制部分,將所述第一中斷請求從所述第一IOAPIC控制部分傳送至所述第一CPU;和通過將所述第一中斷請求經(jīng)過所述第二南橋的所述PIC控制部分傳送至所述第二主IOAPIC控制部分,將所述第一中斷請求從所述第二IOAPIC控制部分傳送至所述第二CPU。
15.根據(jù)權(quán)利要求14所述的中斷控制方法,其特征在于所述第一中斷請求到達所述第一主IOAPIC控制部分的定時與所述第一中斷請求到達所述第二主IOAPIC控制部分的定時相同。
16.根據(jù)權(quán)利要求14或15所述的中斷控制方法,其特征在于進一步包括在所述傳統(tǒng)方式之后,在所述操作系統(tǒng)已操作的擴展方式中,將所述第二南橋發(fā)布的第二中斷請求從所述第一IOAPIC控制部分發(fā)送至所述第一CPU;將所述第二中斷請求從所述第二FT控制部分的所述第二IOAPIC控制部分經(jīng)過所述鏈路發(fā)送至所述第二CPU。
17.根據(jù)權(quán)利要求16所述的中斷控制方法,其特征在于進一步包括在所述擴展方式中,將所述第二中斷請求經(jīng)過所述第一主IOAPIC控制部分發(fā)送至所述第一CPU;和將所述第二中斷請求經(jīng)過所述鏈路和所述第二主IOAPIC控制部分發(fā)送至所述第二CPU。
18.根據(jù)權(quán)利要求14或15所述的中斷控制方法,其特征在于進一步包括在所述擴展方式中,將來自所述第二I/O設(shè)備組的一個I/O設(shè)備的第三中斷請求,經(jīng)過所述第二主IOAPIC控制部分發(fā)送至所述第二CPU;和將所述第三中斷請求經(jīng)過所述鏈路和所述第一主IOAPIC控制部分發(fā)送至所述第一CPU。
19.根據(jù)權(quán)利要求14或15所述的中斷控制方法,其特征在于進一步包括將收到的除所述第一中斷請求以外的中斷請求和當(dāng)時所述主用系統(tǒng)的狀態(tài)數(shù)據(jù),存儲在所述第一FT控制部分的第一狀態(tài)存儲部分中;和將收到的除所述第一中斷請求以外的中斷請求和當(dāng)時所述主用系統(tǒng)的狀態(tài)數(shù)據(jù),存儲在所述第二FT控制部分的第二狀態(tài)存儲部分中。
20.根據(jù)權(quán)利要求19所述的中斷控制方法,其特征在于進一步包括當(dāng)所述第一CPU和所述第二CPU彼此同步操作時,如果檢測出所述第一和第二狀態(tài)存儲部分之間存儲的數(shù)據(jù)不一致,則系統(tǒng)管理中斷(SMI)處理器停止所述第一CPU和所述第二CPU的操作;和控制所述第一和第二FT控制部分,使所述第一和第二狀態(tài)存儲部分的設(shè)置數(shù)據(jù)和狀態(tài)數(shù)據(jù)彼此符合;和當(dāng)所述第一和第二狀態(tài)存儲部分之間所述設(shè)置數(shù)據(jù)和所述狀態(tài)數(shù)據(jù)彼此符合時,重新起動所述第一CPU和所述第二CPU的操作。
全文摘要
一種容錯計算機系統(tǒng),其包括主用系統(tǒng)和輔助系統(tǒng)。主用系統(tǒng)包括第一CPU(2A);與第一CPU相連的第一FT控制部分(10A);和在電氣及操作上與第一FT控制部分相連的第一南橋(6A)。輔助系統(tǒng)包括第二CPU(2B);與第二CPU相連的第二FT控制部分(10B);和第二南橋(6B),其電氣上與第二FT控制部分相連而操作上不與第二FT控制部分相連。第一FT控制部分和第二FT控制部分通過鏈路部分(8)相連,主用系統(tǒng)和輔助系統(tǒng)利用鏈路部分同步操作,第二南橋除外。
文檔編號G06F13/24GK1821973SQ200510133818
公開日2006年8月23日 申請日期2005年12月21日 優(yōu)先權(quán)日2004年12月21日
發(fā)明者阿部晉樹 申請人:日本電氣株式會社