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