隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)系統(tǒng)的可靠性越來(lái)越受到人們的重視,而容錯(cuò)技術(shù)是提高可靠性的一種有效方法。本文研究了計(jì)算機(jī)容錯(cuò)技術(shù)的各種方法,如硬件容錯(cuò)、信息容錯(cuò)、軟件容錯(cuò)等,介紹了TMR(三模冗余)的原理及其缺點(diǎn),詳細(xì)研究了兩種最基本的軟件容錯(cuò)技術(shù)NVP和RB。這些容錯(cuò)技術(shù)可有效提高計(jì)算機(jī)系統(tǒng)的可靠性。
計(jì)算機(jī)的應(yīng)用十分廣泛,航空航天、軍事、銀行監(jiān)管系統(tǒng)、交通運(yùn)輸系統(tǒng)以及其他重要的工業(yè)領(lǐng)域?qū)τ?jì)算機(jī)的可靠性要求非常高。計(jì)算機(jī)系統(tǒng)出現(xiàn)故障不僅會(huì)導(dǎo)致國(guó)家財(cái)產(chǎn)的嚴(yán)重?fù)p失,還會(huì)危及人身安全。因此,在這些領(lǐng)域中計(jì)算機(jī)的可靠性越來(lái)越受到人們的重視,國(guó)家非常重視可靠性的研究工作,投入了大量的資源。
1 基本容錯(cuò)技術(shù)
一般而言,提高計(jì)算機(jī)的可靠性有兩種比較有效的方法。一種是避錯(cuò),就是避免出現(xiàn)故障,這就需要嚴(yán)格篩選計(jì)算機(jī)元器件,完善設(shè)計(jì),提高制造工藝,以及加強(qiáng)質(zhì)量管理等。但即使是這樣一個(gè)計(jì)算機(jī)系統(tǒng),由于其所在的工作環(huán)境有各種環(huán)境應(yīng)力,如濕度、溫度、電磁干擾、強(qiáng)震動(dòng)等,因此總避免不了出現(xiàn)故障。這就要求在計(jì)算機(jī)出現(xiàn)故障的情況下容忍故障的存在,即第二種方法--容錯(cuò)技術(shù)。容錯(cuò)技術(shù)最早由約翰·馮·諾依曼(John VON Neumann)提出,所謂容錯(cuò)是指在出現(xiàn)一個(gè)或者幾個(gè)硬件或軟件方面的故障或錯(cuò)誤的情況下,計(jì)算機(jī)系統(tǒng)能夠檢測(cè)出故障的存在并采取措施容忍故障,不影響正常工作,或者在能夠完成規(guī)定的任務(wù)的情況下降級(jí)運(yùn)行[1]。
故障是指由于部件的物理失效、環(huán)境應(yīng)力的作用、操作錯(cuò)誤或不正確的設(shè)計(jì),引起系統(tǒng)的硬件或軟件的錯(cuò)誤狀態(tài)[2]。下面介紹幾種相關(guān)技術(shù)的基本概念。
故障檢錯(cuò)技術(shù):對(duì)于計(jì)算機(jī)系統(tǒng)的容錯(cuò)首先要用到故障檢錯(cuò)技術(shù),即在計(jì)算機(jī)系統(tǒng)發(fā)生故障的情況下能夠檢測(cè)出故障的存在。
故障診斷技術(shù): 檢測(cè)出系統(tǒng)存在故障后要進(jìn)行故障的定位,找出故障所在的位置。
故障恢復(fù)技術(shù): 在檢測(cè)出故障和定位故障的所在位置之后,就要運(yùn)用故障恢復(fù)技術(shù)把系統(tǒng)從故障的狀態(tài)恢復(fù)到無(wú)故障的狀態(tài)繼續(xù)運(yùn)行。
容錯(cuò)最基本的的方法是冗余技術(shù),所謂冗余就是超過(guò)系統(tǒng)實(shí)現(xiàn)正常功能的額外資源。冗余包括硬件冗余、軟件冗余、時(shí)間冗余和信息冗余。
1.1 硬件容錯(cuò)技術(shù)
硬件冗余又包括靜態(tài)硬件冗余(也叫被動(dòng)硬件冗余)、動(dòng)態(tài)硬件冗余(也叫主動(dòng)硬件冗余)和混合冗余(靜態(tài)冗余和動(dòng)態(tài)冗余的結(jié)合)。靜態(tài)硬件冗余常見(jiàn)的形式有三模冗余(TMR),其基本原理是:系統(tǒng)輸入通過(guò)3個(gè)功能相同的模塊,產(chǎn)生的3個(gè)結(jié)果送到多數(shù)表決器進(jìn)行表決,即三中取二的原則,如果模塊中有一個(gè)出錯(cuò),而另外兩個(gè)模塊正常,則表決器的輸出正確,從而可以屏蔽一個(gè)故障,TMR的缺點(diǎn)是,如果3個(gè)模塊的輸出各不相同,則無(wú)法進(jìn)行多數(shù)表決;若有兩個(gè)模塊出現(xiàn)一致的故障,則表決的結(jié)果會(huì)出現(xiàn)錯(cuò)誤。TMR結(jié)構(gòu)如圖1所示。
圖1 TMR結(jié)構(gòu)圖
三模冗余可推廣到N模冗余(NMR),其基本原理與TMR的原理相同,其中N≥3,且N為奇數(shù),以便進(jìn)行多數(shù)表決。動(dòng)態(tài)冗余是指當(dāng)檢測(cè)到工作的模塊出現(xiàn)錯(cuò)誤時(shí),就切換到一個(gè)備用的模塊,當(dāng)換上的備用模塊又發(fā)生故障時(shí),再切換到另一個(gè)備用模塊,依次類推,直到備用的模塊用完。
1.2 時(shí)間容錯(cuò)技術(shù)
時(shí)間容錯(cuò)的基本思想是:重復(fù)執(zhí)行指令或者一段程序來(lái)消除故障的影響,以達(dá)到容錯(cuò)的效果,它是用消耗時(shí)間來(lái)?yè)Q取容錯(cuò)的目的。根據(jù)執(zhí)行的是一條指令還是一段程序,分成兩種方法:
一種是指令復(fù)執(zhí)。當(dāng)檢測(cè)出故障的時(shí)候,重復(fù)執(zhí)行故障指令,若故障是瞬時(shí)的,則在指令復(fù)執(zhí)期間可能不會(huì)出現(xiàn),程序就可以繼續(xù)向前運(yùn)行。指令復(fù)執(zhí)必須保留上一指令結(jié)束的“現(xiàn)場(chǎng)”,包括累加器、PC及其他狀態(tài)寄存器的狀態(tài)。
另一種是程序卷回。它不是重復(fù)執(zhí)行一條指令,而是重復(fù)執(zhí)行一小段程序。在整段程序中可以設(shè)置多個(gè)恢復(fù)點(diǎn),程序有錯(cuò)誤的情況下可以從一個(gè)個(gè)恢復(fù)點(diǎn)處開(kāi)始重復(fù)執(zhí)行程序。首先檢驗(yàn)一小段程序的計(jì)算結(jié)果,若結(jié)果出現(xiàn)錯(cuò)誤則卷回再重復(fù)執(zhí)行那個(gè)部分,若一次卷回不能解決,可以多次卷回,直到故障消除。
1.3 信息容錯(cuò)技術(shù)
信息容錯(cuò)技術(shù)是通過(guò)在數(shù)據(jù)中附加冗余的信息位來(lái)達(dá)到故障檢測(cè)和容錯(cuò)的目的。通常情況下,附加的信息位越多,其檢錯(cuò)糾錯(cuò)的能力就越強(qiáng),但是這同時(shí)也增加了復(fù)雜度和難度。信息冗余最常見(jiàn)的有檢錯(cuò)碼和糾錯(cuò)碼。檢錯(cuò)碼只能檢查出錯(cuò)誤的存在,不能改正錯(cuò)誤,而糾錯(cuò)碼能檢查出錯(cuò)誤并能糾正錯(cuò)誤。常用的檢錯(cuò)糾錯(cuò)碼有奇偶校驗(yàn)碼、海明碼、循環(huán)碼等。
評(píng)論
查看更多