計算機容錯技術及應用淺析
計算機故障指的是因為計算機部件的物理實現、環境影響、操作錯誤或者是設計缺陷等原因,引起計算機系統的硬件或者軟件的錯誤的狀態,下面是小編搜集整理的一篇探究計算機容錯技術及應用的論文服務,歡迎閱讀查看。
摘要:從計算機誕生開始道現在,對于計算機容錯技術的研究就沒有中斷過。現在因為計算機系統的廣泛應用,使得其對于可靠性的要求越來越高,這就使得容錯技術的研究更加受到重視。文中主要從硬件和軟件兩個方面對計算機容錯技術進行了分析。
關鍵詞:計算機;容錯技術;可靠性
隨著科學技術的發展,計算機的應用變得越來越廣泛,在很多領域中對計算機的可靠性要求相當高,例如科學研究、金融系統、交通運輸管理、軍事等領域對于計算機的可靠性的要求都相當高。如果計算機出現故障,會導致很多嚴重的后果,不僅僅是會帶來各種經濟損失,嚴重的還有可能會危及到人們的生命安全。所以,于計算機的可靠性,國家和社會都給予了高度的關注,并且投入了大量的人力與經濟資源對計算機的可靠性進行研究。
一、概述
一般情況下,為了能夠提高計算機的可靠性,主要是采用避錯和容錯這兩種方法。避錯的方法主要盡可能的讓計算機遠離各種故障。然而要避錯就有著相當嚴格的要求,例如對于計算機的各個元器件都要盡可能的好,在設計上盡可能的不出現瑕疵,制造工藝要盡可能的先進,同時在質量管理方面也有著較高的要求。但是即使這些方面都做到了最好,這樣的計算機還必須要經受各種工作環境中的因素的考驗,而有很多環境因素都不是計算機本身所能夠抗衡的(如電磁干擾、強震動等等),仍然不可避免的會出現各種故障。那么這就要求,必須要能夠在計算機出現故障的情況下能夠容忍故障的存在,也就是容錯技術。最早提出容錯技術的是計算機之父馮·諾依曼。容錯技術指的是當計算機發生硬件或者軟件上的故障時,計算機能夠通過一定的方法檢測出故障,然后通過一定的方法來對故障進行容忍,使得故障不會影響到計算機的正常運行,或者是在能夠完成指定任務的前提下進行降級運行。
計算機故障指的是因為計算機部件的物理實現、環境影響、操作錯誤或者是設計缺陷等原因,引起計算機系統的硬件或者軟件的錯誤的狀態。容錯技術主要包括了故障檢錯技術、故障診斷技術、故障恢復技術者幾個方面。計算機系統要容錯,首先就必須要能夠檢測到故障的存在,也就必須要用到故障檢錯技術。但是在能夠檢測出故障的同時還必須要能夠判斷和定位故障所在的位置,此時就需要故障診斷技術來對故障所在位置進行定位。在前面的基礎上就需要對故障進行恢復,通過故障恢復技術將系統從故障狀態恢復到無故障時的狀態下繼續正常運行。
計算機容錯技術最基本的方法就是冗余技術,冗余技術主要包括了硬件硬件冗余、軟件冗余、時間冗余以及信息冗余這幾種。
二、硬件錯誤容錯方法分析
計算機硬件錯誤主要有永久性錯誤、瞬態錯誤和間歇性錯誤這三種。其中永久性錯誤主要是因為計算機的硬件出現老化以及電路短路的原因所引起的。當永久性錯誤發生時,一些原定的功能就會失效,如果不對損壞的部分進行替換,那么故障是不能夠恢復的`。瞬態錯誤是計算機所發生的硬件錯誤中最多的一種錯誤,而且這種錯誤還呈現出一種幾何級數的增長,這種錯誤對于計算機系統的可靠性的影響相當嚴重。間歇性錯處于永久性錯誤和瞬態錯誤之間,這種錯誤的主要表現時,瞬態錯誤發生的頻率過高,超過了計算機系統所能夠容忍的范圍。
(一)硬件冗余方法
硬件冗余主要分為部分冗余和完全系統冗余這兩種。而完全系統冗余中又可以分為冷備、溫備、熱備以及雙工這4種。例如完全系統冗余中的雙系統主要就有雙系統冷備、雙系統溫備、雙系統熱備以及雙系統雙工這四種工作方式。其中雙系統雙工的方式主要應用于對于計算機系統的安全性以及實時性的要求較高的系統中。如果要求不高,那么則可以根據具體的情況選用其他的幾種工作方式。如今所使用的硬件冗余之中還有三模、四模冗余技術應用的較為廣泛。
在當前硬件冗余技術中研究的較多的是FPGAs。在這種方法中將整個硬件系統根據抽象的層次分為兩層:硬件層(PL)以及配置層(CL)。就當前而言,硬件冗余的方法是研究體系較為完善,提升可靠性效果最好,但是也是成本最高的方法。
(二)信息冗余方法
信息冗余的方法是在原始的數據中附加上具有故障檢測或者故障恢復的冗余數據信息。這些冗余信息具備有錯誤檢測或者錯誤糾正的能力。這種方法主要用于信息傳輸、存儲以及處理的過程之中。目前比較新的信息冗余編碼方式主要有RED-FECMechanism、ABFT、check-sum EDAC。
(三)時間冗余
如果沒有采用硬件冗余的方法,并且對于實時性的要求不高的系統中,可以使用時間冗余的發放來實現容錯。在具體的系統中時間冗余的主要工作方式有兩種:(1)RSHW,這種方式指的是在同一硬件上對于同一組數據在不同的時間段上執行同一指令集;(2)采用數據延遲設備和表決電路,將這兩者進行結合,間數據的處理結果按照延遲時間的不同而復制出多個不同的版本,然后將這些所復制出來的信息遞交給表決器進行對比,從中選出合適的結果,如圖1:
三、軟件錯誤容錯方法
對于任何一個計算機系統,光考慮它的硬件系統的可靠性是不夠的,因為計算機系統是硬件以及軟件的結合體,硬件可靠性高,而軟件的可靠性不足,那么這樣的系統也是不可靠的。但是在軟件的可靠性研究方面現在要遠遠落后與硬件可靠性的研究。現在軟件錯誤容錯方法主要有以下幾種:
(一)N-version programming 方法
這種方法中,認為對于同一個軟件的不同版本應該讓不同的團隊進行獨立設計,在設計的過程中說采用的方法、開發語言和開發環境以及開發工具等都應該不同。這樣做的目的就是為了能夠減少這個軟件的不同版本在表決點上出現相關性錯誤的概率。但是每一個版本的軟件在設計的過程中都需要遵循這樣的幾個原則:(1)總體設計上要相同;(2)多樣化的模塊之間必須使用統一接口;(3)實現多樣性封裝;(4)必須要保證各個版本軟件在設計上的獨立性。
(二)采用恢復塊
這是一種向后恢復的方法。這種方法要求軟件系統能夠提供多個具有相同功能的模塊,其中一個作為主塊,其余的作為后備塊。進行測試時,先讓主塊投入運行,如果主塊不能夠通過驗收測試,那么通過相關的功能讓后備塊投入運行。這個過程中,會一直重復直到后備塊耗盡或者是有一個后備塊能夠通過測試為止,或者是當某一個程序的故障超出了當初軟件設計時的預期,產生了不可恢復的后果。這種方法要求在進行設計時要能夠保證各塊之間的獨立性,防止出現相關性錯誤。同時還必須要注意的是驗收測試程序,必須要能夠保證它的正確性才能夠獲得正確的結果。
(三)防衛式程序設計方法
在這種方法之中并沒有使用傳統的容錯技術。當程序中出現錯誤或者不一致性時,這種方法都是程序中說包含的各種錯誤檢查代碼與恢復代碼對這些錯誤進行處理。當錯誤發生時,程序通過相關的錯誤處理的代碼,將對程序所出現的錯誤狀態進行撤銷,并將程序恢復到一個正確的狀態中去,該種方法主要包括了錯誤檢測、破壞估計和錯誤恢復這三個方面。
總之,隨著計算機系統規模的改變以及使用的廣泛,對系統的可靠性的要求越來越高,因此對于容錯技術的要求也越來越高。但是因為各種原因,當前在硬件容錯方面的研究要遠遠超過軟件容錯的研究。因此,在今后應該在軟件容錯技術方面多下功夫。
參考文獻:
[1]陸陽,張本宏,魏臻,等.“二乘二取二”和“雙模冗余-比較”結構對比研究[J].電子測量與儀器學報,2009,23,(3)
[2]徐仁佐.軟件可靠性工程[M].北京:清華大學出版社,2007
【計算機容錯技術及應用淺析】相關文章: