複製鏈接
請複製以下鏈接發送給好友

容錯計算

鎖定
容錯計算,就是在系統存在故障的情況下,仍能正確地執行給定的算法。為了實現這一點,必須使系統具有故障檢測與診斷、功能切換與系統重組(reconfiguration)、系統恢復與重新運行、系統的重構(reintegration)與可擴展等功能,而且這些功能不能影響系統的正常運行或至少不能使系統的性能下降到不能容忍的程度。
中文名
容錯計算
外文名
fault-tolerant computing
學    科
計算機科學與技術
基本技術
冗餘、故障檢測與診斷等
相關技術
VLSI
類    別
計算機系統

容錯計算定義

容錯計算,就是在系統存在故障的情況下,仍能正確地執行給定的算法。容錯計算技術隨計算技術發展而發展,特別是與VLSI的發展密切相關。早期50~60年代,計算機硬件由分立元件組成,與之相應,容錯計算技術集中在器件級和基本功能部件級(運算器、控制器、寄存器等)進行研究,提出了大量的方法來提高邏輯電路的可靠性,大部分檢錯、糾錯碼也在這期間廣泛應用。

容錯計算基本技術

計算機系統的RAM技術主要就是容錯計算(Fault-Tolerant Computing)技術。所謂容錯計算,就是在系統存在故障的情況下,仍能正確地執行給定的算法。為了實現這一點,必須使系統具有故障檢測與診斷、功能切換與系統重組(reconfiguration)、系統恢復與重新運行、系統的重構(reintegration)與可擴展等功能,而且這些功能不能影響系統的正常運行或至少不能使系統的性能下降到不能容忍的程度。對非容錯系統,當故障導致系統發生算法執行錯誤並被發現後,系統要停止運行,由專門的維修人員進行檢測、診斷,找到故障發生的原因。維修人員根據系統的構成將故障部件拆除,將剩下的正常部件構成一個功能有所降低的系統繼續運行或將備用的正常部件裝入,重新起動系統運行。但此時,發生故障時執行的算法(程序)已被破壞,系統重起後必須重新運行算法(程序)甚至重新裝入算法(程序)。而容錯系統中上述人的工作絕大部分由系統自行完成。
容錯的基本技術是冗餘(redundancy)及其管理、故障檢測與診斷和系統狀態的維護與恢復。冗餘概念中,從方式上可分為靜態、動態冗餘;從種類上可分為時間、空間冗餘,從對象上可分為器件、部件、模塊、系統、數據冗餘。圖1出容錯計算技術的基本分類:
圖1 圖1
故障檢測與診斷
故障檢測與診斷就是當系統部件的故障引起算法執行發生錯誤時,能發現並確定其具體位置的技術,它是容錯系統首先要解決的問題。故障檢測與診斷技術的主要內容有三個:故障檢測、故障隔離(在故障導致系統不可恢復的損壞之前,將故障的影響封閉起來)和故障診斷。其技術評估的主要標準有:故障的覆蓋率、診斷率和對故障的反應時間(平均值)。它們分別代表故障檢測能力、故障的定位能力和檢測與診斷的實時性。這項技術分為聯機或脱機方式,可以用硬件、軟件或固件實現。
靜態冗餘
靜態冗餘又稱故障屏蔽,其基本思想是利用多個部件或系統以固定的結構和運行方式同時執行相同的功能,利用多個一致的結果來屏蔽掉某些故障部件或系統的錯誤結果。其基本的模型如圖2:
圖2 圖2
從系統容錯運行和可靠性的角度來説,靜態冗餘不需要其它容錯功能(如檢測與診斷、恢復等等)就可滿足要求。靜態冗餘技術的難點在它的表決機構可靠性與同步問題。而它的最大缺點就是當系統運行一定的時間後由於故障子系統多於正常子系統使系統的可靠性小於單個子系統的可靠性,因此靜態冗餘一般要與其它容錯技術結合使用。靜態冗餘的主要優點是系統在故障條件下對外界的快速響應性,對於某些極快速響應要求的實時應用要採用靜態冗餘技術。
靜態冗餘技術的實現方式主要有雙重冗餘和TMR(三重冗餘)。均可以在系統的任何層次上用任何方法實現。
動態冗餘
由於靜態冗餘的固有缺陷,大部分應用領域都採用動態冗餘技術。動態冗餘的基本思想是:系統不僅能保證故障的屏蔽,而且還要定位並自動切換故障子系統或改變系統的結構,不讓故障部分的積累造成一系統的錯誤動作。動態冗餘以高覆蓋率、快響應時間的故障檢測與診斷技術為基礎。其關鍵技術是重組、恢復和重構。動態冗餘為聯機修復(系統運行中修復)提供了必要條件。
動態冗餘不僅使系統的可靠性大大提高,而且極大地縮短了故障部件的修復時間,使系統的可用性也大大提高。所以動態冗餘是容錯計算技術中最主要最常用的技術,也是最複雜的技術。對於新型系統結構和分佈式處理動態冗餘又具有新的內容 [1] 

容錯計算容錯方法

容錯計算軟件容錯方法

70年代中期出現了新的容錯方法。它採用多處理器和特別設計的操作系統來達到容錯。避免了上一代容錯系統處理器的主從關係及連接至所有子系統的雙路徑。更重要的是.新方法在商業應用中第一次提供聯機修理功能,即故障部分的移出和更換都不影響正在運行的應用程序。具有這種性能的系統的主要結構特點包括處理器重複、雙存取輸入輸出控制器、冗餘電源系統和一個以信息為基礎的操作系統。
這種以軟件為基礎的容錯系統以檢查點為最基本的恢復機能。每一個運行中的進程都在另一處理器上備有完全相同但並不活動的後備進程。如原進程內發現不能恢復的故障,則後備進程可用來替換它。原進程定時將關鍵計算點通過消息方式送到後備進程。若操作系統發現原進程失效。則“喚醒”後備進程,後備進程可從最後一個檢查點開始恢復計算。
檢查點是一個簡單概念,但其有效地在應用系統中使用則需有高度的編程技巧和對系統的詳細瞭解,而且對計算機系統的資源消耗比正常大25%。

容錯計算硬件容錯方法

由於軟件的費用越來越高,停機時間造成的損失越來越大,維修投資越來越多,而硬件的成本越來越低,故以Stratus為代表的硬件容錯技術在80年代初開始出現。
某些計算機廠商為了提高產品可靠性,採用瞭如“磁盤鏡象”、“數據重讀”等一些容錯技術,但這些產品都還不能稱作是容錯系統。真正意義上的硬件容錯系統應該具有以下5個特性:
(1)雙總線體系結構;
(2)雙重冗餘部件:CPU、內存、通訊子系統、磁盤、電源……;
(3)自檢邏輯排除故障;
(4)自動隔離故障部件;
(5)聯機更換故障部件。
具體地説就是,雙總線及雙重冗餘部件確保了系統在某一部分發生故障時仍能“生存”下去並不會降低或失去其處理性能;每個模塊在運行時都不斷檢查自身的狀態,如果發現任何部件發生故障,系統會將該部件自動隔離。並立即將故障信息自動通過遠程服務網,轉達到用户服務中心,此時其餘部件仍將會繼續運行;能在線更換或擴充部件,而不影響系統的正常運行。
當系統發生故障時,硬件容錯結構不需要從故障中恢復。任何故障元件都自動退出操作,而系統則利用冗餘部分繼續運行,用户不需要設計恢復程序。對用户來説,硬件容錯計算機和傳統計算機一樣,並不必為容錯而特別編程 [2] 

容錯計算技術發展

計算機系統的可靠性一直為人們所關注。早期由繼電器和真空管構成的計算機經常不能正常工作。隨着人們對計算機依賴程度的不斷提高,系統的可靠性就顯得更為重要。提高計算機的可靠性有避錯和容錯兩種方法。避錯實際上是不容錯的,乃是保守設計方法的產物,它以採用高可靠性零件、優化路線等質量控制管理的方法,來減低出錯的可能性,但即使是最仔細的避錯設計,故障也總有一天會出現,從而導致系統失效。容錯是指在硬件或軟件故障產生的情況下,仍能將指定的算法準確地完成,同時不使性能降低,即用冗餘的資源使計算機具有容忍故障的能力。冗餘一般可分為暫存性和物理性兩種,前者通過重複執行來實現,後者則使用重複的硬件和軟件。
1965年美法合作的公共電話網絡開始使用計算機控制的電子交換系統。由於服務的特性,系統要求在每40年內中斷運行時問不能超過2小時。為了達到這樣高的技術指標,生產商討所有的關鍵性元件,如處理器和存儲體等,進行重複配置。系統運行時使用一組子系統,而重複的一組則處於“熱備份”狀態或和聯機的一組子系統同步運行。系統檢測出故障的方式有兩種:比較子系統產生的結果;或每一組都由自檢模塊組成(自檢模塊是自重複和能夠互相比較結果的)。
計算機系統發展到今天,已走出條件優越的機房,進入各種複雜的環境之中。航天、航空、過程控制、銀行商業事務處理、軍事工程等領域的應用,使計算機系統的可靠性問題成為整個大系統能否生存的關鍵問題。因此,人們對計算機系統的可靠性(reliability)、可用性(availability)和可維護性(maintainability)(簡稱RAM)進行了深入、細緻的研究,提出種類繁多的RAM技術和理論,開發出多種高RAM的計算機系統。
容錯計算技術隨計算技術發展而發展,特別是與VLSI的發展密切相關。早期50~60年代,計算機硬件由分立元件組成,與之相應,容錯計算技術集中在器件級和基本功能部件級(運算器、控制器、寄存器等)進行研究,提出了大量的方法來提高邏輯電路的可靠性,大部分檢錯、糾錯碼也在這期間廣泛應用。用冗餘的思想解決容錯問題在這期間也提了出來。70年代VLSI技術的出現及迅猛發展,推動了整個計算機工業的發展,改變了人們對計算機的許多基本觀念,也使容錯技術發生了大轉變。計算機器件功能愈加複雜,其內部的冗餘邏輯和功能的容錯設計使它的可靠性和可測試性有所提高。容錯的重點轉向處理機、子系統甚至系統級。同時,硬件價格的下降使得人們有能力更多地應用冗餘技術來獲得高RAM的系統。此外,並行處理、多機系統、分佈式系統等的發展給容錯計算提供了新的研究領域和課題 [3] 
參考資料
  • 1.    趙巍,劉恩德. 容錯計算的基本技術[J]. 計算機工程與設計,1989,(02):25-32.
  • 2.    易國祥. 容錯計算技術[J]. 電腦技術, 1995(8):2-3+36.
  • 3.    陸陽, 王強, 張本宏,等. 計算機系統容錯技術研究[J]. 計算機工程, 2010, 36(13):230-235.