專利名稱:容錯計(jì)算機(jī)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及高性能容錯計(jì)算機(jī)處理器領(lǐng)域,特別是,本發(fā)明在硬件時鐘級提供冗余表決方法和裝置。本發(fā)明可用來檢測和校正計(jì)算機(jī)中的差錯,尤其是遠(yuǎn)程安裝的計(jì)算機(jī),諸如在軌道上的空間飛行器中的計(jì)算機(jī)差錯。發(fā)明背景在地球上和空間中的自然輻射環(huán)境經(jīng)常引起計(jì)算機(jī)中使用的半導(dǎo)體器件的短期和長期劣變。這種危害對于需要無故障操作的計(jì)算機(jī)是一個問題。除了這些輻射影響,計(jì)算機(jī)芯片還由于未檢測的缺陷和隨著時間的發(fā)展產(chǎn)生的弱點(diǎn)而經(jīng)受隨機(jī)錯誤。在半導(dǎo)體封裝物中的微量放射性材料也可能引起故障。當(dāng)遠(yuǎn)程環(huán)境中的計(jì)算機(jī)必須長時間運(yùn)行時,或在這些器件必須長時間無故障運(yùn)行的地方,尤其需要保護(hù)系統(tǒng)免受故障或錯誤。遠(yuǎn)程或易損壞環(huán)境包括遠(yuǎn)程石油平臺、潛艇、飛機(jī)和偏僻場所諸如南極。在地球軌道和地球軌道之外運(yùn)行的系統(tǒng)尤其易受這種輻射損傷。
宇宙射線,尤其是范艾倫輻射帶附近空間中高能粒子的存在能夠產(chǎn)生稱為單事件效應(yīng)(single event effect,SEE)或單事件干擾(single event upset,SEU)的干擾。地球磁場偏轉(zhuǎn)這些粒子,并且改變它們的能級和屬性。地球磁場也捕獲從太陽和其它星球向地球行進(jìn)的帶電粒子。一些沒有由地球磁場捕獲的粒子由該場引向極地附近我們的大氣層。這些粒子能夠穿透衛(wèi)星上的電子器件。
當(dāng)高能粒子和γ射線穿透半導(dǎo)體器件時,它們在計(jì)算機(jī)電路內(nèi)沉積電荷,并且產(chǎn)生瞬態(tài)過程和/或噪聲。這個現(xiàn)象能夠“干擾”存儲器電路。一種類型的干擾出現(xiàn)在當(dāng)由于輻射使存儲在芯片的存儲器中數(shù)據(jù)的單個位改變其值時。在這種情況下,“1”的邏輯值能夠改變到“0”的邏輯值,反之亦然。干擾通??啥x為部件的誤狀態(tài)輸出。該輸出可包括一個或更多個信號位。
輻射還能夠?qū)е滦酒须娐返摹八梨i(Latchup)”。死鎖是半導(dǎo)體的一種電并狀態(tài),其中由于高能粒子導(dǎo)致在半導(dǎo)體電路內(nèi)產(chǎn)生電荷的沉積,器件的輸出被驅(qū)動和保持在飽和態(tài)。死鎖狀態(tài)的發(fā)生原因可以僅僅是臨時干擾。如果關(guān)掉電源然后再加電,部件可以正常工作。
部件的干擾率取決于芯片的結(jié)構(gòu)特征,包括其尺寸、工作電壓、溫度和內(nèi)部電路設(shè)計(jì)。對于特定部件的干擾率可以為從對于商用一兆位隨機(jī)存取存儲器芯片(RAM)的每天10個到對于輻射硬化的一兆位RAM的每2800年1個的范圍。輻射硬化部件是已經(jīng)特別設(shè)計(jì)并且構(gòu)建以防止輻射損傷的器件。這些器件往往比常規(guī)器件昂貴和慢。它們通常落后于最新技術(shù)水平1到3年。
目前在地面上常規(guī)應(yīng)用中使用的計(jì)算機(jī)芯片實(shí)際上通常不受宇宙輻射的威脅。這種免除性是由于地球大氣層提供的保護(hù)。然而,也有某些地面使用的計(jì)算機(jī)芯片受到輻射干擾。在半導(dǎo)體封裝物中的微量放射性材料能夠引起干擾。從診斷或治療醫(yī)療設(shè)備發(fā)射的輻射能夠類似地影響半導(dǎo)體部件。隨著器件變得更復(fù)雜,來自大氣宇宙輻射線透射的次級和三級粒子將使它們受到干擾。
在Catherine Barillot等的論文、題為《商用空間飛行器異?,F(xiàn)象和單事件效應(yīng)發(fā)生的綜述(Review of Commercial Spacecraft Anomalies and Single-Event-Effect Occurrences)》中,描述了自從1975年在空間中已經(jīng)觀察到的干擾事件。追蹤和分析了這些事件和它們的起因。給出數(shù)據(jù),該數(shù)據(jù)示出了在TDRS衛(wèi)星上遇到的干擾數(shù)遵循宇宙射線隨太陽周期的調(diào)整。
Colorado大學(xué)的L.D.Akers發(fā)表了關(guān)于干擾的論文、題為《微處理器技術(shù)和單事件干擾易感性(Microprocessor Technology and Single Event UpsetSusceptibility)》。作者指出當(dāng)前采用大功率微電路控制空間飛行器各方面的衛(wèi)星更加易受重離子引起的SEU的損害。他預(yù)測低功率和高速度的微器件的出現(xiàn),再加上來自大的太陽耀斑的粒子的可望增加,將導(dǎo)致SEU的更高發(fā)生率。他相信小衛(wèi)星的設(shè)計(jì)者將需要實(shí)現(xiàn)SEU減低技術(shù),以保證未來衛(wèi)星任務(wù)的成功。
先前設(shè)法減輕影響計(jì)算機(jī)芯片的輻射損傷已經(jīng)獲得了各種結(jié)果。關(guān)于容錯計(jì)算機(jī)的工作主要在高級例如在寄存器級處理差錯檢測。在IEEE 1984年第152至157頁C.M.Krishna等的論文、題為《在冗余實(shí)時系統(tǒng)中的同步和故障屏蔽(Synchronization and Fault-Masking in Redundant Real-TimeSystems)》中,描述了在出現(xiàn)“有害”錯誤時許多個鎖相時鐘的硬件同步和軟件同步。作者描述了簡單的硬件表決方案,其中時鐘的輸出值與參考時鐘的輸入信號比較。非故障時鐘被鎖定相位。當(dāng)處理器出現(xiàn)故障時,如果備件可用,它們被備件替換。此方法應(yīng)用到很多具有多個時鐘的冗余計(jì)算機(jī),這里多個時鐘用相近的同步工作。Krshna等還描述了使用軟件算法使具有其自己時鐘的很多個處理器的系統(tǒng)能以相近的同步工作。
象Krishna等使用的軟件解決方案在軟件塊級采用表決程序。這些解決方案通常涉及在高級比較計(jì)算機(jī)輸出,看每個單獨(dú)的計(jì)算機(jī)是否與其它計(jì)算機(jī)一致。這種系統(tǒng)為達(dá)到高的冗余度在重量、體積、成本和功耗方面都付出了不小的代價。
Krishna等沒有談到系統(tǒng)的瞬時干擾的問題。作者也沒有談到被限制在處理器的任何一個部件內(nèi)的故障問題。在諸如Krishna等所描述的系統(tǒng)中對故障的認(rèn)可意指整個器件已經(jīng)出現(xiàn)故障。但是輻射干擾不一定導(dǎo)致器件故障。干擾狀態(tài)能夠是暫時的。
在由Johns Hopkins大學(xué)應(yīng)用物理實(shí)驗(yàn)室發(fā)表的論文、題為《衛(wèi)星系統(tǒng)中單事件干擾和死鎖敏感的器件(Single Event Upset and Latchup SensitiveDevices in Satellite Systems )》中,Richard M.Maurer和James D.Kinnison認(rèn)識到單事件干擾和死鎖的危害。他們提供判決樹作為幫助,以從設(shè)計(jì)中消除單事件效應(yīng)敏感部件,或“原樣(as-is)”使用SEE敏感部件,以在所述部件將起作用的電路設(shè)計(jì)中提供某些保護(hù)措施。
在1975年12月的IEEE可靠性文集、R-24卷第5號中出版的FrancisMather和Paulo T.de Sousa的文章、題為《通用模塊式冗余系統(tǒng)的可靠性模擬和分析(Reliability Modeling and Analysis Of General Modular RedundantSystems)》中,他們解釋硬件冗余已經(jīng)用來設(shè)計(jì)容錯數(shù)字系統(tǒng)。他們描述了冗余模塊的多數(shù)表決和作為硬件冗余結(jié)構(gòu)的四線邏輯(每個硬件門由四個門替換)。
1986年8月25日,在Santa Cruz的Califomia大學(xué)計(jì)算機(jī)科學(xué)學(xué)院第16期年報中,E.J.McClusky發(fā)表了題為《硬件容錯(Hardware Fault Tolerance)》的論文。McClusky描述了硬件容錯的基本概念和技術(shù)。一種這樣的技術(shù)是“差錯屏蔽”,即防止差錯出現(xiàn)在系統(tǒng)輸出處的能力。按照McClusky,用“大量冗余”實(shí)現(xiàn)差錯屏蔽。系統(tǒng)輸出由各信號的表決來確定,當(dāng)無差錯時,這些信號是相同的。冗余的通常形式是三模塊冗余、四部件、四線和表決邏輯。McClusky報告表決邏輯包括將一模塊的所有重復(fù)件連接到一表決器。每個模塊的輸出在傳送到系統(tǒng)其它部件之前通過表決器。表決在整個系統(tǒng)中的高級進(jìn)行。四線邏輯被描述為用四個門替換每個邏輯門。通過各個門的互連模式自動校正故障。這種系統(tǒng)對于被保護(hù)避免輻射損傷的系統(tǒng)將明顯地導(dǎo)致付出重量、功率和成本的代價。
盡管McClusky提議三模塊冗余能夠應(yīng)用到重復(fù)件(replication)的小單元以及整個計(jì)算機(jī),但除了使用糾錯碼和某些軟件程序,他沒有描述如何能夠?qū)崿F(xiàn)這種方案。糾錯碼方法以糾錯電路為基礎(chǔ),以改變故障信息位,因此僅當(dāng)糾錯電路是無故障時才有效。由McClusky列舉的該軟件方法需要獨(dú)立編寫一程序的幾個版本。每個程序?qū)ο嗤瑪?shù)據(jù)運(yùn)行,并且通過表決獲得輸出。這種技術(shù)對于暫時故障可能有效,但是需要大量時間和系統(tǒng)開銷。
在1984年的IEEE第36到41頁、題為《在可再配置控制計(jì)算機(jī)的設(shè)計(jì)中的關(guān)鍵問題(Critical issues in the Design of a Reconfigurable ControlComputer)》中,H.Schmidt等討論了大量關(guān)鍵問題,這些問題是在可再配置計(jì)算機(jī)諸如用于實(shí)時控制系統(tǒng)的計(jì)算機(jī)的詳細(xì)設(shè)計(jì)之前必須解決的。
在1985年1月的IEEE計(jì)算機(jī)學(xué)報、第34卷第1號第33頁到45頁中出版的Dhiraj K.Pardha的論文、題為《容錯多處理器鏈接和總線網(wǎng)絡(luò)結(jié)構(gòu)(Fault Tolerant Multiprocessor Link and Bus Network Architectures)》中,他提出了一大類的常用網(wǎng)絡(luò),該網(wǎng)絡(luò)為在集成系統(tǒng)中互連的大量計(jì)算單元提供最優(yōu)或接近最優(yōu)容錯。
早期的高性能處理器包括大量邏輯芯片、浮點(diǎn)芯片和用作局部高速緩存的很多存儲器芯片。目前的處理器在單個芯片中包含所有這些功能。這種將功能集中在單個芯片內(nèi)允許在芯片硬件級將容錯方法應(yīng)用到處理器系統(tǒng)中的僅幾個芯片。隨著越來越多器件包含在一個基底上,處理器芯片變得越來越密。結(jié)果,這些器件,特別是互補(bǔ)金屬氧化物、鎵砷、和雙極半導(dǎo)體器件和其它器件,受到輻射更大的影響。
在1992年數(shù)字出版社出版的、Daniel P.Siewiorek和Robert S.Swarz的書名為《可靠計(jì)算機(jī)系統(tǒng)(Reliable Computer Systems)》第二版中,他們討論了差錯檢測、保護(hù)冗余、容錯軟件和在可靠性技術(shù)中涉及的評判標(biāo)準(zhǔn)。該文的第三章提出了在系統(tǒng)級、寄存器級或傳輸級、總線級、模塊級、和門級的計(jì)算機(jī)輸出的比較。作者描述了在故障影響到達(dá)模塊輸出之前,隔離或糾正故障影響的三冗余模塊加表決。他們還討論了在混合冗余系統(tǒng)中使用備份備用件。即,并行操作的N個模塊的核心,具有表決器確定系統(tǒng)以及具有一組備份備用模塊,這些備用模塊能夠被切換進(jìn)來替代核心中出錯的模塊。該文的圖3到31描述了在三模塊和/或三表決器的輸出處的多數(shù)表決。Siewiorek等斷言該技術(shù)導(dǎo)致信號延遲并且降低性能。圖3到57示出了Hopkins、Smith和Lala(1978)用一組處理器/高速緩存、存儲器和輸入/輸出模塊全部由冗余的公共串行總線相互連接,所實(shí)現(xiàn)的容錯計(jì)算機(jī)。該計(jì)算機(jī)的計(jì)算用三單元組執(zhí)行,該三單元組為以表決方式執(zhí)行相同操作、并且在時鐘級同步的三處理器/高速緩存和三存儲器。因?yàn)榇蟛糠痔幚砝酶咚倬彺?,表決不在每個時鐘周期執(zhí)行,但是在每當(dāng)數(shù)據(jù)經(jīng)過總線傳輸時執(zhí)行。作者沒有描述包括由各個單獨(dú)總線連接到表決器的多個處理器的系統(tǒng),該系統(tǒng)具有連接到單存儲器的表決器輸出。Siewiorek和Swarz沒有描述其處理器輸出和輸入在每個時鐘周期被表決的系統(tǒng)。作者沒有討論作為這種系統(tǒng)部件的控制給故障處理器的電源的裝置。
根據(jù)用在軍事和商業(yè)空間運(yùn)載工具中的商用部件的容錯計(jì)算機(jī)的發(fā)展,將提供很大的操作優(yōu)點(diǎn)和成本優(yōu)點(diǎn)。這樣的發(fā)明將提供較高水平的性能,并且比基于輻射硬化芯片的現(xiàn)有技術(shù)制造成本低。本發(fā)明將用于遭受隨機(jī)錯誤或遭受以不可接受的高速率產(chǎn)生單事件干擾的輻射環(huán)境的遠(yuǎn)程安裝的計(jì)算機(jī)系統(tǒng)和其它處理器。這種輻射干擾保護(hù)將發(fā)現(xiàn)和校正差錯。如果容錯方法能夠在很低的硬件級例如在處理器芯片內(nèi)應(yīng)用,而不是在計(jì)算機(jī)寄存器或計(jì)算機(jī)模塊的輸出被應(yīng)用,這將是十分有益的。這種系統(tǒng)將滿足在專用計(jì)算機(jī)不發(fā)達(dá)的衛(wèi)星工業(yè)中的長期需要。
發(fā)明的概述本發(fā)明使用硬件時鐘級的冗余表決來檢測和校正由輻射引起的單事件干擾(SEU)和其它隨機(jī)錯誤。在硬件時鐘級的表決指在每個時鐘周期比較許多中央處理單元的數(shù)據(jù)和地址信號。在過去,表決技術(shù)已經(jīng)在較高的系統(tǒng)級應(yīng)用于長壽命空間應(yīng)用中。近來在半導(dǎo)體技術(shù)方面的進(jìn)步使得在硬件時鐘級將冗余表決用于非輻射硬化商業(yè)部件成為可能?,F(xiàn)在可用的較高的集成度使得僅使用少數(shù)器件就可以對于整個系統(tǒng)實(shí)現(xiàn)冗余功能。先前,高性能處理器由幾個邏輯芯片、浮點(diǎn)芯片和很多用作局部高速緩存的存儲器芯片組成。今天,所有這些功能包含在一個單芯片中。使用該芯片和少數(shù)幾個其它芯片能夠在一個模塊中實(shí)現(xiàn)各種冗余功能。
實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)結(jié)構(gòu)的一個優(yōu)選實(shí)施例包括帶有四個商用單芯片中央處理單元(CPU)的計(jì)算機(jī);表決器;存儲器控制器;和系統(tǒng)存儲器。一個可替換的實(shí)施例使用三個商用CPU。這些CPU以嚴(yán)格的“鎖步”操作,即,每個CPU的每個每個操作步驟并行地并且基本上與其它CPU同時完成。這些CPU以保持這種鎖定的常規(guī)鎖相環(huán)電路操作。在表決器中在每個CPU時鐘周期“表決”所有四個CPU輸出,這是該系統(tǒng)的術(shù)語“四表決的由來”。該表決器可被輻射硬化。在表決處理中,由表決器在每個時鐘周期,一個與另一個地比較每個CPU輸出信號。這些處理器共享單個系統(tǒng)存儲器和存儲器總線。由于這些存儲器是在鎖步狀態(tài),所有他們應(yīng)該同時請求相同的存儲器訪問。表決的地址被用于對存儲器進(jìn)行訪問,表決的數(shù)據(jù)寫到存儲器和通過存儲器控制器到系統(tǒng)計(jì)算機(jī)(I/O)總線。由器件“死鎖”引起的差錯校正通常包括必須減少或去除處理單元或其它部件的電源,防止由于死鎖狀態(tài)導(dǎo)致災(zāi)難性的毀壞。表決器和存儲器控制器可以用專用集成電路(ASIC)實(shí)現(xiàn)。表決器和存儲器ASIC可以是輻射硬化的。
從存儲器和系統(tǒng)I/O總線讀出的數(shù)據(jù)同時提供給所有的四個處理器芯片。這些從存儲器的“讀”用常規(guī)技術(shù)來檢驗(yàn)。例如,在存儲器芯片硬件中實(shí)現(xiàn)的公知的“漢明碼”能夠檢驗(yàn)和校正單個位差錯,并且檢測雙位差錯。
比較來自每個CPU的輸出,用于與來自所有其它CPU的輸出一致。提供給表決器的各CPU輸出信號的多數(shù)一致產(chǎn)生具有多數(shù)的值的表決輸出信號。不與多數(shù)一致的CPU輸出信號由表決器檢測,產(chǎn)生一差錯信號。差錯信號發(fā)送到存儲器控制器,該控制器以下面幾種方式反應(yīng)1、由一致的CPU使用多數(shù)表決信號,以不產(chǎn)生中斷,繼續(xù)CPU處理操作;2、不一致CPU被禁止進(jìn)一步參與表決;3、給其它的CPU產(chǎn)生系統(tǒng)管理中斷(SMI);和4、之后,軟件啟動恢復(fù)禁止的CPU的再同步處理。
在計(jì)算機(jī)故障的情況下,換上備用的無差錯的計(jì)算機(jī)。然而,在本發(fā)明中實(shí)施的方法和裝置是期望用來校正上述的故障,而不需要換上備用計(jì)算機(jī)。
對本發(fā)明的其它目標(biāo)和目的理解和對本發(fā)明的更完全和綜合的理解,可通過研究下列描述的優(yōu)選實(shí)施例和通過參照附圖獲得。
附圖描述
圖1a是表示連接到系統(tǒng)計(jì)算機(jī)(I/O)總線的冗余計(jì)算機(jī)的計(jì)算機(jī)系統(tǒng)的示意圖;圖1b是表示具有多個以并行“鎖步”操作、并且對它們到系統(tǒng)存儲器的輸出作“表決”的計(jì)算機(jī)的本發(fā)明示意圖;圖2是對于其輸出不被表決的部件、輸出被三分之二表決比較的部件、和輸出被四分之二表決比較的部件的每年系統(tǒng)干擾的數(shù)目與每天單個部件干擾的數(shù)目之間的關(guān)系曲線。該曲線表示對于部件輸出進(jìn)行表決比起非表決的情況,使系統(tǒng)干擾減少了很多個數(shù)量級;圖3是實(shí)現(xiàn)本發(fā)明的、使用商用非輻射硬化CPU的計(jì)算機(jī)的一個優(yōu)選實(shí)施例的方框圖;圖4是實(shí)現(xiàn)示于圖1b和圖3中的“四表決”方法的表決器的一種類型電路的示意圖;圖5描述了對故障檢測和其校正作反應(yīng)的系統(tǒng)的本發(fā)明的狀態(tài)圖;圖6是CPU控制狀態(tài)圖,示出了當(dāng)上電時,由指令或由干擾禁止的單個處理器的各種狀態(tài),和從一種狀態(tài)到另一種狀態(tài)的轉(zhuǎn)換;圖7是描述再同步各CPU和從差錯中恢復(fù)的硬件和軟件的流程圖。
優(yōu)選和其它實(shí)施例的詳細(xì)描述基本結(jié)構(gòu)圖1a是計(jì)算機(jī)系統(tǒng)10的頂層方框圖,該計(jì)算機(jī)系統(tǒng)設(shè)計(jì)用來對計(jì)算機(jī)11a、b內(nèi)的中央處理單元(CPU)容錯和管理錯誤。計(jì)算機(jī)11a、b給系統(tǒng)計(jì)算機(jī)(I/O)總線12提供數(shù)據(jù)和控制信號,用于操作其它設(shè)備或記錄。本發(fā)明“屏蔽”計(jì)算機(jī)差錯。這些差錯是由設(shè)計(jì)和致命(end-of-life)故障或輻射導(dǎo)致的單事件干擾(SEU)引起的。本發(fā)明還容受由半導(dǎo)體封裝物內(nèi)的微量輻射材料(阿爾法粒子)引起的暫時或永久錯誤,或容受由諸如暴露于采用X射線的診斷或治療醫(yī)用設(shè)備的其它事件引起的錯誤。干擾不一定表示部件出故障。間歇的或硬的故障表示必須禁用或換掉出故障的部件。
在圖1b中描述了容錯計(jì)算機(jī)11。在此本發(fā)明的簡圖中,描述至少四個商用中央處理器單元(CPU)22并行“鎖步”操作。這些CPU以保持鎖定的常規(guī)鎖相環(huán)電路操作。每個CPU 22的每個操作步驟以并行方式完成,并且與其它CPU 22基本上同時地進(jìn)行。給系統(tǒng)存儲器20的所有CPU輸出信號15送給表決器16。對各CPU輸出信號15作“表決”。當(dāng)使用四個CPU時,此硬件配置稱為“四表決”系統(tǒng)。在表決處理中,由表決器16在CPU時鐘的每個周期一個與另外一個地比較每個CPU輸出信號15。CPU 22共享單個系統(tǒng)存儲器20和CPU總線17。由于CPU 22處于鎖步,它們在同一時間都請求同一存儲器訪問。表決出來的地址用于對系統(tǒng)存儲器20作訪問。在CPU總線17上的表決數(shù)據(jù)17a寫入存儲器20,并且通過存儲器控制器18提供給系統(tǒng)計(jì)算機(jī)(I/O)總線12。表決器16和存儲器控制器18可在專用集成電路(ASIC)中容易地實(shí)現(xiàn)。表決器16和存儲器控制器18可以是輻射硬化的。
從存儲器20和系統(tǒng)I/O總線12讀出的數(shù)據(jù)信號19、21同時提供給所有的四個CPU 22。使用常規(guī)技術(shù)檢驗(yàn)從存儲器20的各個“讀”。在存儲器芯片硬件中實(shí)現(xiàn)的公知的“漢明碼”能夠檢驗(yàn)和校正單個位差錯,并且能夠檢測雙位差錯。
來自每個CPU 22的輸出15在表決器16中比較,看是否與來自所有其它CPU 22的輸出15一致。提供給表決器16的多數(shù)CPU輸出信號15的一致產(chǎn)生具有多數(shù)的值的表決輸出信號17a。由表決器16檢測與多數(shù)不一致的CPU輸出信號15,然后產(chǎn)生差錯信號。差錯信號發(fā)送給表決狀態(tài)和控制電路。該電路可在存儲器控制器18或表決器16中實(shí)現(xiàn)。表決狀態(tài)和控制電路表現(xiàn)為幾種方式1、多數(shù)表決信號被用于繼續(xù)CPU操作而不中斷;2、產(chǎn)生系統(tǒng)管理中斷(SMI)并且傳送給其它的CPU 22;和3、之后,軟件啟動再同步處理,該再同步處理恢復(fù)禁止的CPU 22。如果是由于暫時干擾引起CPU輸出信號15不一致,則通過將最后表決CPU內(nèi)部狀態(tài)相同地分配給所有CPU 22,將所有CPU 22再同步。
系統(tǒng)邏輯選擇通過再同步所有CPU 22、通過將故障CPU(22)斷電或通過切換到備用計(jì)算機(jī)11b來從檢測的故障恢復(fù)的最好時機(jī),然后復(fù)位和重新引導(dǎo)換用的CPU。
當(dāng)少于三個CPU 22是可操作的并且少于兩個CPU 22是一致的時,如果CPU輸出信號15不一致表示CPU 22的暫時干擾或永久故障,則備用的無差錯計(jì)算機(jī)11b被換上,并且系統(tǒng)被復(fù)位(通常將所有寄存器設(shè)定到零)和重新引導(dǎo)。然而,在本發(fā)明中實(shí)施的技術(shù)是期望用來校正所述故障,而不需要求助于換用備用計(jì)算機(jī)11b。盡管第二計(jì)算機(jī)形成本發(fā)明的優(yōu)選實(shí)施例的一部分,以提供更大容錯,但讀者將認(rèn)識到在暫時故障之后,單個幸存的計(jì)算機(jī)也能夠執(zhí)行任務(wù)。
為了保證所有信號14在相同時鐘周期提供給所有CPU 22,在系統(tǒng)的其它部分產(chǎn)生的所有信號17b、21在表決器16中被同步到系統(tǒng)時鐘,并且被分別驅(qū)送到每個CPU 22。例如這些信號包括復(fù)位和中斷。
圖2示出了對于輸出不被表決的部件28a、輸出被三分之二表決比較的部件28b、輸出被四分之二表決比較的部件28c的每年出現(xiàn)系統(tǒng)干擾的數(shù)目24與每天單個部件干擾的數(shù)目26之間的關(guān)系曲線。對于每天干擾的給定數(shù)目例如10,該曲線示出了四分之二表決部件的每年系統(tǒng)干擾相比輸出未表決部件被減少了約三個數(shù)量級(103)。在四分之二表決器系統(tǒng)中,每天每個部件10次干擾僅導(dǎo)致在約五百年中有一次系統(tǒng)干擾。甚至對于相同部件干擾率,三分之二表決器系統(tǒng)將呈現(xiàn)每年幾次的系統(tǒng)干擾。在本發(fā)明中,除非四個CPU 22中的一個發(fā)生永久故障,否則四個表決部件都可用。四分之二表決組用四個部件開始,但是一旦任何部件發(fā)生故障,就減低到三分之二組。按照衛(wèi)星控制軟件系統(tǒng)的一秒主周期時間內(nèi)恢復(fù),對干擾計(jì)算已經(jīng)使用半秒平均時間于再同步。在很多情況下,更短周期時間也是可能的,它產(chǎn)生甚至更低的系統(tǒng)干擾率。
容錯計(jì)算機(jī)圖3示出了實(shí)現(xiàn)容錯計(jì)算機(jī)30的優(yōu)選實(shí)施例的另外實(shí)現(xiàn)細(xì)節(jié)。在一個優(yōu)選實(shí)施例中,計(jì)算機(jī)30具有同步操作的多個四商用CPU 32。然而,使用的CPU 32的數(shù)目可以根據(jù)用戶可接受的容錯程度從至少三個向上變化。示于圖3的CPU 32是精簡指令集計(jì)算機(jī)芯片(RISC)。最好用RISC芯片是因?yàn)樗鼈儼咚俅鎯ζ鳎⑶冶绕渌捎肅PU芯片需要更少的開銷。計(jì)算機(jī)30包括表決器34,該表決器示為用專有集成電路(ASIC)實(shí)現(xiàn)。在另外的實(shí)施例中,表決器34可以由現(xiàn)場可編程門陣列構(gòu)成。表決器34連接到每個CPU32。表決器34連接到包含表決狀態(tài)和控制電路38的存儲控制器36。存儲器控制器36示為用與表決器34分開的ASIC實(shí)現(xiàn)。盡管管腳數(shù)限制可能導(dǎo)致兩個或更多的IC用于表決器34和存儲器控制器36,它們均可設(shè)計(jì)為單個的。
圖3還描述了存儲器46,其通過存儲器接口40接收表決后的CPU信號35。表決CPU信號35還通過總線接口42發(fā)送到系統(tǒng)計(jì)算機(jī)(I/O)總線12。存儲器46通過存儲器接口40向存儲器控制器36提供存儲器輸出信號37a。這些存儲器輸出信號37a通過存儲器控制器36和表決器34經(jīng)CPU總線35a作為輸入信號33a均等地分布給每個CPU 32。
多個CPU 32將CPU輸出信號33b作為輸入提供給表決器34用于比較。由表決器34中多數(shù)表決一致的CPU輸出信號33b從表決器34作為具有多數(shù)值的表決輸出信號35輸出。來自表決器34的表決輸出信號35作為輸入信號37b提供給系統(tǒng)存儲器46,還提供給表決狀態(tài)和控制電路38以及提供給系統(tǒng)計(jì)算機(jī)(I/O)總線12。
由表決器34檢測與多數(shù)CPU輸出信號33b不一致的任何CPU輸出信號33b。然后由表決器34產(chǎn)生差錯信號39b,并且發(fā)送給表決狀態(tài)和控制電路38。多數(shù)表決信號35由一致的各CPU 32用來繼續(xù)處理操作,而不中斷。表決狀態(tài)和控制電路38通過產(chǎn)生系統(tǒng)管理中斷,來響應(yīng)差錯信號39b。之后,響應(yīng)于系統(tǒng)管理中斷,當(dāng)該差錯由單事件干擾引起時,軟件啟動多個CPU 32的再同步。當(dāng)少于三個CPU32是可操作的、并且多個CPU32中少于兩個一致時,表決狀態(tài)和控制電路38響應(yīng)于由CPU32的錯誤引起的差錯信號39b,通過用無差錯計(jì)算機(jī)30換下故障計(jì)算機(jī)30進(jìn)入計(jì)算機(jī)系統(tǒng)10,以與多數(shù)一致。稱為“再配置單元”的傳統(tǒng)控制電路實(shí)現(xiàn)切換處理,為了簡化起見,在圖3中沒有示出該電路。
故障檢測在表決器34中進(jìn)行故障檢測。圖4示出了實(shí)現(xiàn)表決的表決器34中的典型門陣列50。示出了用于源自CPU輸出信號33b的數(shù)據(jù)信號52的門陣列50。類似的門陣列用來獲得表決后的地址信號和表決后的控制信號。這些信號也源自CPU輸出信號33b中。門陣列50包括第一與門陣列53;第二與門陣列55;第一或門63和異或門65陣列。這些門陣列比較CPU輸出信號33b,產(chǎn)生表決輸出給存儲器總線和I/O總線,并且檢測來自CPU 32的差錯輸出33b。表決器34還可以包括用來測試系統(tǒng)的旁路門陣列55。旁路門陣列55包括并行與門51和或門62。在當(dāng)只剩一個功能CPU 32在工作時仍希望運(yùn)行系統(tǒng)10的情況下,旁路門陣列55還可用作表決器34的代用裝置。
在示出的電路中,第一與門陣列53的每個第一與門58具有是數(shù)據(jù)信號52的CPU輸出信號33b作為第一輸入52a-d。它具有是使能信號54的表決狀態(tài)和控制信號39a作為第二輸入54a-d。每個第一與門58具有輸出60。第二與門陣列57的每個門59具有從第一與門陣列53的一個門58的輸出60作為第一輸入,并且具有從第一與門陣列53的另一個門58的輸出60作為第二輸入。每個第二與門59具有輸出61。
第一或門63具有第二與門陣列57的每個門59的輸出61作為輸入,并且具有輸出66。旁路門陣列55還向第一或門63提供輸出61a。
異或門陣列65的每個門64連接到第一或門63的輸出66。在陣列65中的每個異或門64分別連接到每一個數(shù)據(jù)信號52,并且具有輸出68。
輸入到第一與門陣列53的第一端的數(shù)據(jù)信號52,通過將各使能信號54施加到陣列53的相應(yīng)門的第二輸入端,從陣列53作為輸出60出現(xiàn)。在第二與門陣列57中一個與另一個地比較各個輸出60。與輸入到第一與門陣列53的其它數(shù)據(jù)信號52值不一致的、從第二與門陣列57的輸出61將為零邏輯值。輸出61將是那些與其它數(shù)據(jù)信號52一致的各數(shù)據(jù)信號52的邏輯與,并且具有那些數(shù)據(jù)信號52的值。
從第一或門63的輸出66具有作為從第二與門陣列57的輸出61出現(xiàn)的一致數(shù)據(jù)信號52的值。從第一或門63的輸出66施加到異或門陣列65的每個門64的第一輸入。數(shù)據(jù)信號52施加到異或門陣列65的每個門64的第二輸入。當(dāng)施加的數(shù)據(jù)信號52和施加的從第一或門63的輸出66不一致時,由異或門陣列65的每個門64產(chǎn)生表示干擾或故障的差錯信號68。
如圖4所示,作為數(shù)據(jù)信號52出現(xiàn)的每個CPU輸出信號33b能夠通過將旁路信號56施加到旁路門陣列55中門51的一端,旁路繞過表決處理。所述數(shù)據(jù)信號可以通過去除從輸入線54a-d到其各門的使能信號54被排除在表決之外,即被禁止。如果僅使能一個CPU 32,其余的禁止,則表決器數(shù)據(jù)輸出66將與被旁路的CPU的輸出33b一樣。如果多于一個CPU 32被使能,則數(shù)據(jù)輸出66將是所有旁路的CPU輸出33b的邏輯或。如果一CPU 32被旁路又被禁止,則其輸出33b將提供給或門63。同時對地址信號進(jìn)行類似的旁路。
容錯校正圖5示出了用于具有四個CPU 32的本發(fā)明的兩個冗余計(jì)算機(jī)30中之一的狀態(tài)圖100。它示出了對故障檢測和故障校正的系統(tǒng)響應(yīng)。當(dāng)本實(shí)施例的一個CPU 32被干擾或發(fā)生故障時,計(jì)算機(jī)30仍然能夠用剩余的三個CPU 32操作。如果第二CPU 32是暫時干擾,計(jì)算機(jī)30將繼續(xù)用一致的兩個CPU 32工作,并且所有CPU 32將被再同步,以使所有四個CPU 32一致。此優(yōu)選實(shí)施例的邏輯進(jìn)行操作,以在兩個CPU 32出現(xiàn)永久故障以及第三個出現(xiàn)干擾的情況下,用備用計(jì)算機(jī)30換下故障計(jì)算機(jī)30。除了當(dāng)檢測到不一致時,表決器34和表決狀態(tài)和控制電路38將CPU從使能和表決狀態(tài)改變?yōu)榈讲灰恢潞徒範(fàn)顟B(tài)的情況之外,該邏輯主要由運(yùn)行在各CPU 32中的軟件控制。
與“未表決”部分或部件比較,即使一個CPU 32被干擾并且不正確地工作,三個CPU 32的表決組也能夠給出正確的輸出。而在這三個CPU 32中有一個不工作的情況下,因?yàn)槿绻麅H有兩個有效表決器,而多數(shù)表決必須一致,所以其它兩個CPU 32中之一的干擾將導(dǎo)致系統(tǒng)干擾。一旦CPU 32被干擾,由于內(nèi)部機(jī)器狀態(tài)的復(fù)雜性,它可能不同于其它CPU 32地繼續(xù)運(yùn)作。將故障CPU 32恢復(fù)到表決組需要再同步。系統(tǒng)干擾程度取決于各CPU 32的干擾率和啟動再同步之前的時間的平均長度兩者。
圖5的圖示出了系統(tǒng)邏輯。用封閉圈示出了CPU狀態(tài)。由線示出從一個狀態(tài)到另一個狀態(tài)的轉(zhuǎn)變,箭頭表示轉(zhuǎn)變的方向。計(jì)算機(jī)30在“四個CPU一致”的狀態(tài)102開始。如果一個CPU輸出33b與其它三個CPU 32不一致,則如上所述由表決器34產(chǎn)生表示不一致的差錯信號。計(jì)算機(jī)30轉(zhuǎn)變104到“三個CPU一致”108。
當(dāng)計(jì)算機(jī)30轉(zhuǎn)變104到狀態(tài)108時,向各CPU 32產(chǎn)生請求執(zhí)行再同步的中斷。從“三個CPU一致狀態(tài)”108,計(jì)算機(jī)30轉(zhuǎn)變110通過“再同步狀態(tài)”114。然后計(jì)算機(jī)30根據(jù)在“再同步狀態(tài)”114期間有多少個CPU 32具有永久故障或斷電并且不能被改回一致,轉(zhuǎn)變116到狀態(tài)102,轉(zhuǎn)變124到狀態(tài)108,或轉(zhuǎn)變128到狀態(tài)126。
當(dāng)計(jì)算機(jī)30是在“三個CPU一致狀態(tài)”108時,如果在三個表決CPU32中檢測到不一致,則不一致的CPU 32被禁止,并且計(jì)算機(jī)轉(zhuǎn)變122到到“兩個CPU一致狀態(tài)”126。當(dāng)在轉(zhuǎn)變122到狀態(tài)126時,向各CPU 32產(chǎn)生請求執(zhí)行再同步的系統(tǒng)管理中斷。從“兩個CPU一致”狀態(tài)126,轉(zhuǎn)變130通過再同步114將使計(jì)算機(jī)30根據(jù)在“再同步狀態(tài)”114期間有多少個CPU 32具有永久故障或斷電并且不能改回一致,返回到狀態(tài)102、108或126。
當(dāng)計(jì)算機(jī)是在“兩個CPU一致狀態(tài)”126時,如果在兩個表決CPU 32之間檢測到不一致,計(jì)算機(jī)30將轉(zhuǎn)變134到“故障計(jì)算機(jī)狀態(tài)”136。
一旦到達(dá)“故障計(jì)算機(jī)狀態(tài)”136,計(jì)算機(jī)30向再配置單元指示故障狀態(tài),并且進(jìn)行轉(zhuǎn)變138到“切換到無差錯冗余計(jì)算機(jī)狀態(tài)”140。在執(zhí)行切換時,計(jì)算機(jī)30復(fù)位(通常所有寄存器為0),并且用無差錯冗余計(jì)算機(jī)30重新引導(dǎo)系統(tǒng)10。然后換入的計(jì)算機(jī)30轉(zhuǎn)變148到“四個CPU一致”狀態(tài)102。
CPU狀態(tài)控制各CPU32能夠處在下列任何一種狀態(tài)1、使能和表決;2、命令禁止;3、不一致,禁止;4、旁路;5、再同步;或6、斷電。
在本發(fā)明的一個實(shí)施例中,專用集成電路(ASIC)34通過保證到CPU 32的接口管腳被驅(qū)動到非加壓(non-stressed)狀態(tài),來支持?jǐn)嚯姷腃PU 32。當(dāng)電源中斷時,控制器件上的加壓可防止器件的可靠性下降。
表決狀態(tài)和控制電路38通過在離開斷電狀態(tài)174時,總是將CPU 32設(shè)置在不一致、禁止?fàn)顟B(tài)186,以避免從斷電狀態(tài)174直接變到使能和表決狀態(tài)156。
在計(jì)算機(jī)30的操作期間產(chǎn)生的CPU控制和狀態(tài)信號39a、39b是1、來自表決器34的差錯信號68,每個CPU 32一個;2、從表決狀態(tài)和控制電路38到表決器34的使能信號54和旁路信號56,每個CPU 32一個;3、從表決狀態(tài)和控制電路38到每個CPU 32的系統(tǒng)管理中斷和復(fù)位信號和4、到每個CPU 32的電源控制電路的上電/斷電信號。
系統(tǒng)管理中斷和復(fù)位信號通過表決器34用于時鐘同步。用于每個CPU32的各控制信號的靜態(tài)示于表1
表1CPU狀態(tài)控制信號<
圖6是CPU狀態(tài)控制圖150,它示出了各CPU 32當(dāng)上電、由命令或干擾禁止時的各種狀態(tài),以及從一種狀態(tài)到另一種狀態(tài)的轉(zhuǎn)變。在此圖中,用封閉圈示出了CPU狀態(tài),從一種狀態(tài)到另一種狀態(tài)的轉(zhuǎn)變用線示出。由箭頭示出轉(zhuǎn)變的方向。用上電命令152開始循環(huán)。然后在計(jì)算機(jī)30中的每個CPU32轉(zhuǎn)變154到“表決和使能狀態(tài)”156。在計(jì)算機(jī)30中的每個CPU 32可以通過轉(zhuǎn)變158由軟件命令禁止。禁止命令可以用來保存電力用于長期任務(wù)或低總線功率。該命令可以用于當(dāng)太陽耀斑活動相對低、并且受到的干擾數(shù)目減少時,保存衛(wèi)星上的電力。如果電力是非常寶貴的,功率的減低相對完全容錯可以是更優(yōu)先考慮的。當(dāng)識別出或懷疑有永久故障時,也可以禁止計(jì)算機(jī)30。通過轉(zhuǎn)變162,可以使“命令禁止?fàn)顟B(tài)”退回。從“命令禁止?fàn)顟B(tài)”160,CPU可以被再同步,并且返回到“命令禁止?fàn)顟B(tài)”160,如通過轉(zhuǎn)變166到“再同步狀態(tài)”168以及從“再同步狀態(tài)”168到轉(zhuǎn)變164所指示的。
CPU可以經(jīng)過轉(zhuǎn)變170從“表決和使能狀態(tài)”156、或經(jīng)過轉(zhuǎn)變172從“命令禁止?fàn)顟B(tài)”160移到“斷電狀態(tài)”174。CPU 32可以從“不一致,禁止?fàn)顟B(tài)”186通過轉(zhuǎn)變184被斷電。從“操作,表決使能狀態(tài)”156通過轉(zhuǎn)變190得到由于干擾產(chǎn)生的差錯信號68引起的“不一致,禁止?fàn)顟B(tài)”186。如果受干擾的CPU可以恢復(fù)操作,則進(jìn)行轉(zhuǎn)變188到“再同步暫態(tài)”194。通過轉(zhuǎn)變196,各CPU 32被再同步并且返回到“工作,表決使能狀態(tài)”156。當(dāng)在不一致和隨后的再同步之后,CPU 32也不能再同步時,懷疑是死鎖。則關(guān)斷電源,并且再加電到CPU 32以清除死鎖。從“斷電”狀態(tài)174,可以由上電轉(zhuǎn)變182再啟動CPU32到“不一致,禁止?fàn)顟B(tài)”186。
再同步操作由在CPU 32中運(yùn)行的軟件命令再同步操作194。當(dāng)接收到該命令時,所有CPU 32設(shè)置在“復(fù)位”。處在“不一致,禁止?fàn)顟B(tài)”186(就表決來說)的任何CPU 32都返回到“操作,表決啟動狀態(tài)”156。如果CPU 32是在“命令禁止”160(或在旁路狀態(tài))。在“再同步暫態(tài)”168之后它保持該狀態(tài)。再同步操作示于圖7。
CPU復(fù)位當(dāng)電源首先施加到計(jì)算機(jī)30時(152),所有CPU 32加電,到操作和表決啟動狀態(tài)156。當(dāng)CPU轉(zhuǎn)變190到“不一致,禁止?fàn)顟B(tài)”186時,在表決狀態(tài)和控制電路38中產(chǎn)生系統(tǒng)管理中斷(SMI),并且發(fā)送到CPU 32。SMI開始再同步處理序列。中斷服務(wù)軟件程序啟動到再同步操作194的轉(zhuǎn)變188。
通過再同步CPU來糾錯圖7是描述再同步CPU 32的硬件201和軟件205動作的流程圖200。部分處理發(fā)生在硬件201,主要發(fā)生在CPU 32、表決器34和表決狀態(tài)和控制電路38中。由運(yùn)行在各CPU 32中的軟件205控制其它操作。當(dāng)由表決器34檢測到一CPU32與多數(shù)其它CPU 32不一致(步驟202)時,開始糾錯處理。如果沒有兩個操作的CPU 32一致(步驟204),認(rèn)為該系統(tǒng)已經(jīng)產(chǎn)生故障(步驟206)。在這種情況下,將嘗試用替代的備用計(jì)算機(jī)30重新啟動。將重新啟動所有軟件,但是將出現(xiàn)計(jì)算機(jī)功能的大的破壞。
如果檢測到差錯,仍然有兩個或更多CPU 32一致(步驟204),則不一致的CPU 32被禁止參與表決(步驟208)。由硬件產(chǎn)生系統(tǒng)管理中斷(SMI)(步驟210)。SMI產(chǎn)生表示盡管不必立即,但需要在短時間內(nèi)再同步的標(biāo)志。應(yīng)用軟件程序繼續(xù),而不中斷。禁止不一致的CPU 32避免表決處理的破壞,這允許檢測剩余CPU 32中任何另外的干擾或錯誤。之后很快,如同由各CPU 32的中斷使能和優(yōu)先級設(shè)置所確定的那樣,系統(tǒng)響應(yīng)于系統(tǒng)管理中斷210(步驟212)。作為該響應(yīng)212的一部分,包括當(dāng)前執(zhí)行程序所中斷的點(diǎn)的軟件狀態(tài)被存儲到存儲器46。該信息在后面用來在該程序中止的準(zhǔn)確點(diǎn)處恢復(fù)所中斷的程序。
中斷服務(wù)軟件程序203通過表決器34將所有CPU寄存器寫到存儲器46(步驟214)。由于至少兩個CPU 32一致,這些寄存器含有正確的值,并且所存儲的值將是無差錯的。在再同步處理期間,這些值將重新裝入所有CPU32,替換掉不一致CPU 32中的任何錯誤的值。中斷服務(wù)軟件程序203將強(qiáng)迫由CPU 32修改、但還沒有通過表決器34寫入存儲器46中的數(shù)據(jù)緩存中的任何位置,通過表決器34寫入存儲器中(步驟216)。如果各CPU 32在它們的緩存中具有不同值,表決處理保證存儲器46只有正確的值。
然后,中斷服務(wù)軟件程序203啟動再同步(步驟218),并且開始硬件處理序列。首先,如圖7所示,復(fù)位類型設(shè)置到再同步(步驟220),并且復(fù)位類型信息保持在專用寄存器中。其它復(fù)位類型包括多數(shù)故障、加電和外部信號。其次,產(chǎn)生復(fù)位脈沖(步驟222),并且發(fā)送給所有CPU 32。在每個CPU32內(nèi),復(fù)位脈沖使所有CPU32中的寄存器置為相同值,通常為零。復(fù)位脈沖還使得所有CPU高速緩存的內(nèi)容被舍棄。在CPU高速緩沖存儲器能夠使用之前,必須從存儲器46讀取新數(shù)據(jù)。然后,為在步驟208禁止的所有CPU32使能表決。(步驟224)最后,在完成所有復(fù)位功能之后,所有CPU 32具有相同的機(jī)器狀態(tài),并且再一次相同地操作。各CPU 32從稱為復(fù)位向量的特殊地址開始程序執(zhí)行(步驟226)。
駐留在復(fù)位向量地址處的復(fù)位服務(wù)軟件229查看復(fù)位類型寄存器,并且確定發(fā)生的復(fù)位類型(步驟228)。因?yàn)樵诖死?,?fù)位類型設(shè)置為(步驟220)表示CPU 32的再同步232,所以軟件229將先前寫入存儲器46的CPU寄存器數(shù)據(jù)重新裝入各CPU寄存器。所有CPU 32接收相同值,因?yàn)楸頉Q處理只允許一組值存儲到存儲器46。反映在系統(tǒng)中斷時機(jī)器狀態(tài)的信息被恢復(fù)到寄存器中(步驟234)。復(fù)位服務(wù)軟件229執(zhí)行“從中斷返回”的處理,它在原始應(yīng)用程序被中止的點(diǎn)處返回到原始應(yīng)用程序(步驟236)。
隨著程序的進(jìn)行,其內(nèi)容由復(fù)位脈沖舍棄的高速緩存用新數(shù)據(jù)填充。由于它們的動態(tài)特性,高速緩沖存儲器內(nèi)容可以是不一樣的,就好象沒有發(fā)生過不一致,但是在所有CPU 32中的高速緩存將相同。
除了再同步處理需要的時間延遲,原始應(yīng)用程序的操作或結(jié)果不受不一致和后繼的再同步處理的影響。
結(jié)論盡管已經(jīng)參照特定的優(yōu)選實(shí)施例和其它實(shí)施例詳細(xì)描述了本發(fā)明,本發(fā)明涉及的技術(shù)領(lǐng)域內(nèi)的技術(shù)人員將知道可以進(jìn)行各種修改和改進(jìn),而不脫離所附權(quán)利要求的精神和范圍。上述已經(jīng)公開的各種電路和部件是想使讀者了解優(yōu)選實(shí)施例,而不是限制本發(fā)明或權(quán)利要求的范圍。所附的標(biāo)號列表是提供給讀者識別說明書和附圖中本發(fā)明的單元的方便工具。該列表不是用來描述或變窄權(quán)利要求的范圍。
標(biāo)號列表圖1a和1b10容錯計(jì)算機(jī)系統(tǒng)11a-b容錯計(jì)算機(jī)12系統(tǒng)計(jì)算機(jī)(I/O)總線14CPU輸入信號15CPU輸出信號16表決器17CPU總線17a表決輸出17b到表決器的系統(tǒng)輸入18存儲器控制器19a存儲器輸出信號19b存儲器輸入信號20系統(tǒng)存儲器21系統(tǒng)總線輸入/輸出22商用中央處理單元(CPU)圖224每年系統(tǒng)干擾軸26每天部件干擾軸28a無表決部件的干擾率28b三個部件之二表決的干擾率28c四個部件之二表決的干擾率圖312系統(tǒng)計(jì)算機(jī)(I/O)總線30計(jì)算機(jī)32精簡指令集計(jì)算機(jī)(RISC)中央處理單元
33aCPU輸入信號33b CPU輸出信號34表決器-專用集成電路(ASIC)35給存儲器接口和系統(tǒng)總線接口的輸入/輸出信號36存儲器控制器-專用集成電路37a來自系統(tǒng)存儲器的輸出信號37b給系統(tǒng)存儲器的輸入信號38表決狀態(tài)和控制電路39a-b表決狀態(tài)和控制電路輸入/輸出信號40存儲器接口電路41向系統(tǒng)總線的輸入/輸出信號42系統(tǒng)計(jì)算機(jī)(I/O)總線接口電路46系統(tǒng)存儲器(隨機(jī)存取{RAM}和電可擦除可編程存儲器{EEPROM})圖450門陣列51旁路與門52CPU數(shù)據(jù)信號52a-d數(shù)據(jù)線53第一與門陣列54來自表決狀態(tài)和控制電路的使能信號54a-d使能信號線55旁路門陣列57第二與門陣列58第一與門59第二與門60第一與門輸出61第二與門輸出61a旁路門陣列輸出62第二或門
63第一或門64異或門65異或門陣列66給存儲器和總線接口的數(shù)據(jù)信號68給表決狀態(tài)和控制電路的差錯信號69旁路與門輸出圖5100故障檢測和響應(yīng)狀態(tài)圖102“四CPU一致”狀態(tài)104一個CPU信號不一致108“三個CPU”一致狀態(tài)110啟動再同步114各CPU已再同步116所有CPU一致(無CPU故障)122一個CPU不一致124一個CPU故障126“兩個CPU一致”狀態(tài)128兩個CPU故障130啟動再同步134CPU信號不一致136“故障計(jì)算機(jī)”狀態(tài)138“故障計(jì)算機(jī)”狀態(tài)已聲明140“切換到冗余計(jì)算機(jī)”狀態(tài)142冗余計(jì)算機(jī)使能信號146復(fù)位CPU并且重新引導(dǎo)系統(tǒng)148四個CPU信號一致圖6150處理器控制狀態(tài)圖152“系統(tǒng)上電”狀態(tài)
154系統(tǒng)使能信號156“CPU操作,表決使能”狀態(tài)158禁止操作信號160“CPU命令‘禁止’”狀態(tài)162CPU操作信號164CPU再同步信號166再同步CPU信號168“CPU再同步”暫態(tài)170斷電信號172斷電信號174“CPU斷電”狀態(tài)182上電CPU信號184斷電CPU信號186 CPU不一致,禁止差錯CPU188再同步CPU信號192再同步CPU信號194“CPU再同步”暫態(tài)196 CPU再同步信號圖7200硬件和軟件的再同步序列的流程圖201用于再同步的硬件202檢測CPU不一致203中斷服務(wù)軟件程序204“仍有兩個CPU一致?”205用于再同步的軟件206系統(tǒng)錯誤208禁止不一致CPU的表決210產(chǎn)生系統(tǒng)管理中斷(SMI)212響應(yīng)于SMI214通過表決器將所有寄存器寫到存儲器
216通過表決器將修改的數(shù)據(jù)高速緩存位置寫到存儲器218啟動再同步序列220設(shè)置再同步類型為“再同步”222產(chǎn)生復(fù)位脈沖,將寄存器設(shè)置到所知的值,舍棄高速緩存內(nèi)容224所有CPU使能表決226在復(fù)位向量處開始執(zhí)行228“復(fù)位類型?”229復(fù)位服務(wù)軟件程序230啟動其它序列232再同步CPU234恢復(fù)寄存器236返回到當(dāng)前應(yīng)用程序
權(quán)利要求
1.一種容錯計(jì)算機(jī)系統(tǒng)(10),包括多個同步操作的中央處理單元(CPU)(22),所述多個CPU(22)的每一個的每個操作步驟并行完成,并且在所述CPU(22)的每個時鐘周期與所述多個CPU(22)的其它的每一個操作步驟基本上同時進(jìn)行,所述多個CPU(22)的每一個具有CPU輸入(14)和CPU輸出(15);表決器(16),連接到每個所述CPU輸入(14)和每個所述CPU輸出(15);所述表決器(16)使用所述CPU輸出(15)的冗余表決,以檢測在所述多個CPU(22)中任何一個CPU(22)中的差錯和錯誤,該出錯CPU輸出(15)與所述多個CPU(22)的多數(shù)的所述CPU輸出(15)不一致;和由所述表決器(16)在每個時鐘周期一個與另一個地比較每個所述CPU輸出(15)。
2.如權(quán)利要求1所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中所述多個CPU(22)數(shù)目至少為4。
3.如權(quán)利要求1所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中所述多個CPU(22)是商用非輻射硬化芯片。
4.如權(quán)利要求1所述的容錯計(jì)算機(jī)系統(tǒng)(10),還包括系統(tǒng)總線(12);第一計(jì)算機(jī)(11a),所述第一計(jì)算機(jī)(11a)包括所述多個CPU(22)和所述表決器(16),并且連接到所述系統(tǒng)總線(12),所述第一計(jì)算機(jī)(11a)還包括系統(tǒng)存儲器(20);存儲器控制器(18),所述存儲器控制器(18)連接到所述表決器(16)、所述存儲器(20)和所述系統(tǒng)計(jì)算機(jī)總線(12);所述系統(tǒng)存儲器(20)向所述存儲器控制器(18)提供存儲器輸出信號(19a),所述存儲器輸出信號(19a)作為所述CPU輸入(14)通過所述存儲器控制器(18)和所述表決器(16)均等地分配給每一個所述CPU(22),多數(shù)所述CPU輸出(15)在所述表決器(16)中的一致導(dǎo)致產(chǎn)生表決輸出信號(17a),所述表決輸出信號(17a)具有所述多數(shù)所述CPU輸出(15)的值;由所述表決器(16)檢測任何所述CPU輸出(15)與多數(shù)所述CPU(22)輸出(15)的不一致,由所述不一致產(chǎn)生的差錯信號引起在所述第一計(jì)算機(jī)(11a)中所述多個CPU(22)的再同步。
5.如權(quán)利要求1所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中所述多個CPU(32)是精簡指令集CPU(RISC)。
6.如權(quán)利要求4所述的容錯計(jì)算機(jī)系統(tǒng)(10),還包括第二計(jì)算機(jī)(11b),所述第二計(jì)算機(jī)(11b)基本上與所述第一計(jì)算機(jī)(11a)相同,所述第二計(jì)算機(jī)(11b)連接到所述系統(tǒng)總線(12),并且作為所述第一計(jì)算機(jī)(11a)的無差錯替換物保持,當(dāng)所述多個CPU(32)少于兩個相一致,并且少于三個CPU(22)可操作時,所述差錯信號使得所述第二計(jì)算機(jī)(11b)替換所述第一計(jì)算機(jī)(11a)。
7.如權(quán)利要求4所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中在所述第一計(jì)算機(jī)(11a)中所述CPU(22)的再同步由所述多個CPU(22)運(yùn)行的軟件控制。
8.如權(quán)利要求4所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中所述表決器(34)包括專用集成電路(ASIC)。
9.如權(quán)利要求4所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中所述表決器34還包括門陣列(50);所述門陣列(50)包括第一與門陣列(53),所述第一與門陣列(53)的每個門(58)具有從所述CPU輸出(33b)導(dǎo)出的CPU信號(52)作為第一輸入(52a-d),并且具有從表決狀態(tài)和控制信號(39a)導(dǎo)出的使能信號(54)作為第二輸入(54a-d);每個所述門(58)具有輸出(60);第二與門陣列(57),所述第二與門陣列(57)的每個門(59)具有從所述第一與門陣列(53)的一個門(58)的輸出(60)作為第一輸入,并且具有從第一與門陣列(53)的另一個門(58)的輸出(60)作為第二輸入,每個所述門(59)具有輸出(61);第一或門(63),具有所述第二與門陣列(57)的每個所述門(59)的所述輸出(61)作為輸入,并且具有輸出(66);異或門陣列(65),連接到所述第一或門(63)的輸出(66),并且分別連接到每一個所述CPU信號(52);所述異或門陣列(65)的每個門(64)具有輸出(68);通過將每個使能信號(54)施加到所述第一與門陣列(53)的相應(yīng)門,輸入到所述第一與門陣列(53)的每一個所述CPU信號(52)被輸出,在所述第二與門陣列(57)中一個與另一個地比較所述第一與門陣列(53)的所述輸出(60);從所述第二與門陣列(57)的每個所述輸出(61)具有一致的多數(shù)所述CPU信號(52)的值;作為從所述第二與門陣列(57)的輸出(61)出現(xiàn)的所述信號(52)被從所述第一或門(63)輸出,所述第一或門輸出(66)具有一致的所述CPU信號(52)的值;從所述第一或門(63)的所述輸出(66)作為第一輸入施加到所述異或門陣列(65)的每個門(64),并且所述CPU信號(52)分別作為第二輸入施加到所述異或門陣列(65)的每個門(64);和當(dāng)所述施加的CPU信號(52)和所述施加的從所述第一或門(63)的輸出(66)不一致時,從所述異或門陣列(65)的每個門(64)輸出差錯信號(68)。
10.如權(quán)利要求9所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中所述門陣列(50)還包括旁路與門陣列(55),所述旁路與門陣列(55)的每個門(51)具有所述CPU信號(52)作為第一輸入,并且具有旁路信號(56)作為作為第二輸入,所述旁路與門陣列(55)的每個門(51)當(dāng)由所述旁路信號(56)使能時具有輸出(65);旁路或門(62),具有所述旁路與門陣列(55)的所述輸出(69)作為輸入,并且具有輸入給所述第一或門(63)的輸出(61a);通過將每個所述旁路信號(56)施加到所述旁路與門陣列(55)的相應(yīng)門(51),輸入給所述旁路與門陣列(55)的門(51)的每個所述CPU信號(52)被輸出到所述旁路或門(62);和從表決狀態(tài)和控制信號(39a)導(dǎo)出的所述旁路信號(56)根據(jù)遠(yuǎn)程命令,測試或旁路所述表決器動作。
11.如權(quán)利要求9所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中所述CPU信號(52)是數(shù)據(jù)信號。
12.如權(quán)利要求9所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中所述CPU信號(52)是地址信號。
13.如權(quán)利要求11所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中所述多個CPU(22)的每一個是處在下列一種穩(wěn)定狀態(tài)使能和表決;命令禁止;不一致和禁止;旁路;和斷電。
14.一種容錯計(jì)算機(jī)系統(tǒng)(10),包括多個同步操作的精簡指令集(RIS)中央處理單元(CPU)(32),所述多個CPU(32)的每一個的每個操作步驟并行完成,并且在每個CPU時鐘周期與所述多個CPU(32)的其它的每一個操作步驟基本上同時進(jìn)行,所述多個RISCPU(32)的每一個具有CPU輸出(33b)和CPU輸入(33a);系統(tǒng)總線(12);CPU總線(35a);表決器(34);所述表決器具有在所述CPU總線(35a)上載送的表決輸出(35);所述表決器(34)連接到所述多個RIS CPU(32)的每一個,由所述表決器(34)在每個所述時鐘周期,一個與另一個地比較每一個所述CPU輸出(33b);存儲器(46);存儲器控制器(36),具有表決狀態(tài)和控制電路(38),存儲器接口(40)和總線接口(42);所述存儲器控制器(36)通過所述CPU總線(35a)連接到所述表決器(34),通過所述總線接口(42)連接到所述系統(tǒng)總線(22),并且通過所述存儲器接口(40)連接到所述存儲器(46);所述存儲器(46)向存儲器控制器(36)提供存儲器輸出信號(37a),所述存儲器輸出(37a)通過所述存儲器控制器(36)和所述表決器(34)作為所述輸入信號(33a)均等地分布給所述多個RIS CPU(32)的每一個;所述表決輸出(35)由所述存儲器控制器(36)作為輸入提供給所述系統(tǒng)存儲器(46)、所述表決狀態(tài)和控制電路(38)以及給所述系統(tǒng)計(jì)算機(jī)總線(22);提供給所述表決器(34)的多數(shù)所述CPU輸出(33b)的一致,導(dǎo)致產(chǎn)生具有所述多數(shù)所述CPU輸出的值的所述表決輸出(35);由所述表決器(34)檢測與多數(shù)所述CPU輸出(33b)不一致的CPU輸出(33b),并且由此產(chǎn)生的差錯信號被發(fā)送到所述表決狀態(tài)和控制電路(38);所述表決狀態(tài)和控制電路(38)響應(yīng)于指示所述CPU輸出(33b)不一致的所述差錯信號,并且導(dǎo)致進(jìn)行所述多個RIS CPU(32)的再同步。
15.如權(quán)利要求14所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中所述多個RIS CPU(32)數(shù)目至少為4。
16.如權(quán)利要求14所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中所述多個RIS CPU(32)是商用非輻射硬化芯片。
17.如權(quán)利要求14所述的容錯計(jì)算機(jī)系統(tǒng)(10),還包括第一計(jì)算機(jī)(30);第二計(jì)算機(jī)(30);所述第一計(jì)算機(jī)(30)包括所述多個CPU(32);所述表決器(34);所述存儲器(46);所述存儲器控制器(36)和所述CPU總線(35a);所述第二計(jì)算機(jī)(30)包括所述多個CPU(32);所述表決器(34);所述存儲器(46);所述存儲器控制器(36)和所述CPU總線(35a);所述第一計(jì)算機(jī)(30)連接到所述系統(tǒng)總線(12);所述第二計(jì)算機(jī)(11b)連接到所述系統(tǒng)總線(12),并且作為無差錯的用于所述第一計(jì)算機(jī)(11a)的替換物保持;當(dāng)所述多個RIS CPU(32)少于三個可操作,并且所述多個所述RISCPU(32)少于兩個一致時,所述差錯信號使得所述表決狀態(tài)和控制電路(36)作出反應(yīng),并且用所述第二計(jì)算機(jī)(30)替換所述第一計(jì)算機(jī)(30)。
18.如權(quán)利要求17所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中所述各RIS CPU(32)的再同步和所述計(jì)算機(jī)(30)的替換通過由所述RIS CPU(32)運(yùn)行的軟件控制。
19.如權(quán)利要求17所述的容錯計(jì)算機(jī)系統(tǒng)(10),其中所述多個RISCPU(32)的每一個是處在下列一種穩(wěn)定狀態(tài)使能和表決;命令禁止;不一致和禁止;旁路;和斷電。
20.一種在計(jì)算機(jī)系統(tǒng)(10)中故障管理的方法,包括以下步驟同步操作多個中央處理單元(CPU)(22),并行完成所述多個CPU(22)的每一個的每個操作步驟,并且在所述CPU(22)的每個時鐘周期與所述多個CPU(22)的其它每一個基本上同時進(jìn)行,所述多個CPU(22)的每一個具有CPU輸入(14)和CPU輸出(15);將表決器(16)連接到每個所述CPU輸入(14)和每個所述CPU輸出(15);在所述表決器(16)中使用所述CPU輸出(15)的冗余表決,檢測在所述多個CPU(22)的任何一個中的差錯和錯誤,該出錯CPU輸出(15)與所述多個CPU(22)的多數(shù)所述CPU輸出(15)不一致;和由所述表決器(16)在每個所述時鐘周期一個與另一個地比較每個所述CPU輸出(15)。
21.如權(quán)利要求20所述的方法,其中操作多個CPU(22)的步驟包括操作至少四個CPU(22)的步驟。
22.如權(quán)利要求20所述的方法,其中操作多個CPU(22)的步驟包括操作多個是商用非輻射硬化芯片的步驟。
23.如權(quán)利要求20所述的方法,其中操作多個CPU(22)的步驟包括操作多個精簡指令集(RISC)CPU(32)的步驟。
24.如權(quán)利要求20所述的方法,還包括以下步驟提供系統(tǒng)總線(12);提供第一計(jì)算機(jī)(11a),所述第一計(jì)算機(jī)(11a)包括所述多個CPU(22)和所述表決器(16),所述第一計(jì)算機(jī)(11a)還包括系統(tǒng)存儲器(20);所述存儲器控制器(18)連接到所述表決器(16)、所述存儲器(20)和所述系統(tǒng)計(jì)算機(jī)總線(12);提供第二計(jì)算機(jī)(11b),所述第二計(jì)算機(jī)(11b)基本上與所述第一計(jì)算機(jī)(11a)相同;將所述第二計(jì)算機(jī)(11b)連接到所述系統(tǒng)總線(12),并且所述第二中央處理器(11b)作為所述第一計(jì)算機(jī)(11a)的無差錯替換物保持;將存儲器輸出(19)從所述系統(tǒng)存儲器(20)提供給所述存儲器控制器(18);將所述存儲器輸出信號(19)作為所述CPU輸入(14)通過所述存儲器控制器(18)和所述表決器(16)均等地分配給每一個所述CPU(22);通過多數(shù)所述CPU輸出(15)的在所述表決器(16)中的一致,獲得表決輸出信號(17a),所述表決輸出信號(17a)具有所述多數(shù)所述CPU輸出(15)的值;由所述表決器(16)檢測任何所述CPU輸出(15)與多數(shù)所述CPU輸出(15)的不一致,并且由此產(chǎn)生差錯信號;將所述差錯信號發(fā)送給所述存儲器控制器(18);和響應(yīng)于所述差錯信號,并且在所述第一計(jì)算機(jī)(11a)中通過所述存儲器控制器(18)的動作,再同步所述多個CPU(22)。
25.如權(quán)利要求24所述的方法,其中響應(yīng)于所述差錯信號的步驟包括以下步驟當(dāng)少于三個所述CPU(22)可操作,并且少于兩個提供給所述表決器(16)的所述CPU輸出(15)相一致時,用所述第二計(jì)算機(jī)(11b)替換所述第一計(jì)算機(jī)(11a)。
26.如權(quán)利要求24所述的方法,其中響應(yīng)于所述差錯信號的步驟包括以下步驟當(dāng)在所述第一計(jì)算機(jī)(11a)中所述多個CPU(22)少于兩個所述CPU(22)是可操作的時,用所述第二計(jì)算機(jī)(11b)替換所述第一計(jì)算機(jī)(11a)。
27.如權(quán)利要求24所述的方法,其中在所述第一計(jì)算機(jī)(11a)中再同步所述CPU(22)由所述多個CPU(22)運(yùn)行的軟件控制。
28.如權(quán)利要求24所述的方法,其中提供包括所述表決器(16)的第一計(jì)算機(jī)(11a)的步驟還包括以下步驟提供一門陣列(50);所述門陣列(50)包括第一與門陣列(53),所述第一與門陣列(53)的每個門具有輸出(60);從所述CPU輸出(33b)導(dǎo)出CPU信號(52),并且將所述CPU信號(52)作為第一輸入(52a-d)提供給所述第一與門陣列(53)的每個門(58);將使能信號(54)作為第二輸入提供給所述第一與門陣列(53)的每個門(58),所述使能信號(54)來自所述存儲器控制器(18);提供第二與門陣列(57),所述第二與門陣列(53)的每個門(59)具有輸出(61);將從所述第一與門陣列(53)的一個門(58)的輸出(60)作為第一輸入,提供給所述第二與門陣列(57)的每個門(59);將從所述第一與門陣列(53)的另一個門(58)的輸出(60)作為第二輸入,提供給所述第二與門陣列(57)的每個門(59);提供具有輸出(66)的第一或門(63);將所述第二與門陣列(57)的每個所述門(59)的所述輸出(61)作為輸入提供給第一或門(63);提供異或門陣列(65),所述異或門陣列(65)的每個門(64)具有輸出(68);將所述異或門陣列(65)的每個門(64)連接到所述第一或門(63);將所述異或門陣列(65)的每個門(64)分別連接列所述第一與門陣列(53)的每個門(58)的第一輸入;通過將所述每個使能信號(54)施加到所述第一與門陣列(53)的相應(yīng)門,使能輸入到所述第一與門陣列(53)的每一個所述CPU信號(52)的所述輸出(60);在所述第二與門陣列(57)中一個與另一個地比較每個所述輸出(60);并且從所述第二與門陣列(59)的每個所述門(59)獲得所述輸出(61);從所述第二與門陣列(59)的每個所述輸出(61)具有一致的所述CPU信號(52)的值;將從所述第二與門陣列(57)的每個所述輸出(61)施加到所述第一或門(63);從所述第一或門(63)的所述輸出(66)具有從所述第二與門陣列(57)的每個門(59)的所述輸出(60)的值;將從所述第一或門(63)的所述輸出(66)施加到所述異或門陣列(65)的每個門(64)的第一輸入;將所述CPU信號(52)分別施加到所述異或門陣列(65)的每個門(64)的第二輸入;和當(dāng)所述施加的CPU信號(52)和所述施加的從所述第一或門(63)的輸出(66)不一致時,獲得從所述異或門陣列(65)的每個門(64)輸出的差錯信號(68)。
29.如權(quán)利要求28所述的方法,其中提供門陣列(50)的步驟還包括以下步驟提供旁路與門陣列(55);將所述CPU信號(52)作為第一輸入(52a-d)提供給所述旁路與門陣列(55)的每個門(51);將旁路信號(56)作為第二輸入(56a-d)提供給所述旁路與門陣列(55)的每個門(51),所述旁路與門陣列(55)的每個門(51)當(dāng)由所述旁路信號(56)使能時具有輸出(69);提供旁路或門(62);將所述旁路與門陣列(55)的所述輸出(69)作為輸入提供給所述旁路或門(62),所述旁路或門(62)具有輸入給所述第一或門(63)的輸出(61a);通過將各個所述旁路信號(56)施加到所述旁路與門陣列(55)的相應(yīng)門(51),輸入給所述旁路與門陣列(55)的門(51)的每個所述CPU信號(52)施加到所述旁路或門(65)的輸入;和從所述存儲器控制器(18)導(dǎo)出的所述旁路信號根據(jù)遠(yuǎn)程命令以測試或旁路所述表決器(16)動作。
30.如權(quán)利要求28所述的方法,其中將所述CPU信號(52)作為第一輸入(52a-d)提供給所述第一與門陣列(53)的每個門(58)的步驟包括提供數(shù)據(jù)信號的步驟。
31.如權(quán)利要求28所述的方法,其中將所述CPU信號(52)作為第一輸入(52a-d)提供給所述第一與門陣列(53)的每個門(58)的步驟包括提供地址信號。
32.如權(quán)利要求29所述的方法,還包括步驟將所述多個CPU(22)的每一個設(shè)置在下列一種穩(wěn)定狀態(tài)使能和表決;命令禁止;不一致和禁止;旁路;和斷電。
33.一種用于計(jì)算機(jī)系統(tǒng)的故障管理的方法,包括以下步驟提供具有多個精簡指令集(RIS)中央處理單元(CPU)(32)的第一計(jì)算機(jī)(30);同步操作所述多個RIS CPU(32),并行完成所述多個RIS CPU(32)的每一個的每個操作步驟,并且與所述多個RIS CPU(32)的其它每一個基本上同時進(jìn)行;在所述計(jì)算機(jī)(30)內(nèi)提供表決器(34);將所述表決器(34)連接到所述多個RIS CPU(32)的每一個的輸出(33b),將所述多個RIS CPU(32)的每一個連接到所述表決器(34)的輸出(33a);提供存儲器(46);提供系統(tǒng)總線(12);提供具有表決狀態(tài)和控制電路(38)、存儲器接口(40)和總線接口(42)的存儲器控制器(36);將所述存儲器控制器(36)連接到所述表決器(34),通過所述總線接口(42)連接到所述系統(tǒng)總線(22),并且通過所述存儲器接口(40)連接到所述存儲器(46);將來自所述存儲器(46)的存儲器輸出信號(37a)提供給所述存儲器控制器(36),所述存儲器輸出(37a)通過所述存儲器控制器(36)、均等地通過所述表決器(34)的輸出信號(33a)分配給所述RIS CPU(32)的每一個;將來自所述多個RIS CPU(32)的所述CPU輸出(33b)作為輸入提供給所述表決器(34)用于比較;在所述表決器(34)中比較所述CPU輸出(33b);提供給所述表決器(34)的多數(shù)所述CPU輸出信號(33b)的一致,導(dǎo)致產(chǎn)生所述表決輸出信號(35);所述表決輸出信號(35)具有所述多數(shù)所述CPU輸出信號(33b)的值;來自所述表決器(34)的所述表決輸出信號(35)作為輸入信號(37b)提供給所述系統(tǒng)存儲器(46)、作為輸入提供給所述表決狀態(tài)和控制電路(38)以及作為輸入(41)提供給所述系統(tǒng)計(jì)算機(jī)總線(22);用所述表決器(34)檢測所述CPU輸出(33b)與多數(shù)所述CPU輸出(33b)的不一致,并且由此產(chǎn)生差錯信號(39b);將所述差錯信號(39b)施加到所述表決狀態(tài)和控制電路(38),并且通過所述表決狀態(tài)和控制電路(36)的動作再同步所述多個RIS CPU(32)。
34.如權(quán)利要求33所述的方法,還包括步驟當(dāng)所述多個RIS CPU(32)少于三個所述CPU(22)可操作,并且少于所述多個CPU(32)的兩個一致時,通過所述表決狀態(tài)和控制電路(36)的動作,用無差錯第二計(jì)算機(jī)(30)替換有故障的所述第一計(jì)算機(jī)(30)。
35.如權(quán)利要求33所述的方法還包括步驟當(dāng)少于兩個所述RIS CPU(32)可操作時,用無差錯計(jì)算機(jī)(30)替換。
全文摘要
本發(fā)明公開了一種容錯計(jì)算機(jī),它在硬件時鐘級使用冗余表決,以檢測和校正單事件干擾(SEU)和其它隨機(jī)錯誤。在一個優(yōu)選實(shí)施例中,計(jì)算機(jī)(30)包括以嚴(yán)格的“鎖步”操作的四個或更多商用處理單元(CPU)(32),它們的到系統(tǒng)存儲器(46)和系統(tǒng)總線(12)的輸出(33,37)由可以用定制(custom)集成電路(34)實(shí)現(xiàn)的門陣列(50)表決。定制存儲器控制器(18)與系統(tǒng)存儲器(46)和系統(tǒng)總線(12)連接。在每個CPU時鐘周期表決每次寫/讀計(jì)算機(jī)(30)內(nèi)的存儲器(46)的地址和數(shù)據(jù)(35,37)。表決狀態(tài)和控制電路(38)“讀”表決的狀態(tài),并且使用硬件和軟件控制CPU的狀態(tài)。一致CPU(32)使用多數(shù)表決信號(35),以繼續(xù)處理操作,而不中斷。系統(tǒng)邏輯選擇最好時機(jī),通過再同步所有CPU(32)、對故障計(jì)算機(jī)斷電或切換到備用計(jì)算機(jī)(30)、復(fù)位和重新引導(dǎo)替換的CPU(32),來從檢測的故障恢復(fù)。
文檔編號G06F11/18GK1259212SQ98805689
公開日2000年7月5日 申請日期1998年3月31日 優(yōu)先權(quán)日1997年4月2日
發(fā)明者安德魯·J·沃德羅普 申請人:通用動力信息系統(tǒng)公司