邏輯電路中使用的糾錯技術---航空、航天任務安全執行的保障
2020-02-09 10:53:39 EETOP一般來說復雜邏輯功能的邏輯電路的糾錯是不容易實現的。
原則上最簡單的是圖1中所示的多數表決規則。先前已經描述了使用兩個功能完全相同的單元來比較輸出以進行錯誤檢測的配置,但是在多數表決中使用三個功能相同的單元。每個輸出信號由三個單元的對應輸出位的多數表決決定。
圖1
如果故障只影響一個單元的輸出,則兩個單元的輸出總是正確的,并且是相等的,因此即使一個單元輸出錯誤,它也會被執行多數表決的Voter(投票機制)糾正。
但是,在這種結構中,單元中的單一故障由多數表決來糾正,,但是如果發生Voter故障或輸出線卡死故障,則會發生錯誤。所以這些部分也采用了三重選擇電路,如下圖2所示的Triple Voter的結構。
圖2 (注:本文來自日文網站,有些圖片日文沒有翻譯)
在圖2的配置中,三個選擇單元用于在下一階段中生成單元1至3的輸入。在這種配置中,即使發生選擇的故障或輸出線的故障,也只有到一個下一級單元的輸入是錯誤的,其余兩個下一級單元的輸入才是正確的。這些單元給出正確的結果,并且錯誤將由下一個單元的輸出處提供的Voter糾正。因此,使用三重選擇結構,可以糾正所有單個故障。
由于圖1和2中的結構是使用三個單元的冗余配置,因此它們被稱為TMR(三重冗余設計)。
如果是單個故障,TMR不會出錯,但是固定故障發生在一個單元中,并且當該單元被分離時,僅剩下兩個單元,并且其中一個發生間歇性故障,并且輸出錯誤存在無法糾正的問題。在要求極高可靠性的系統中,存在這樣的配置,其中提供了備用的第四單元,并且通過用備用部件替換具有固定故障的單元來維護TMR。
這有點令人困惑,但是即使進行了這種多路復用,也無法糾正設計中的錯誤,因為所有單元的輸出都會出現類似的錯誤。因此,空中客車A300線控飛行系統旨在通過使用由兩個設計團隊獨立開發的不同處理器以及硬件和軟件來檢測設計錯誤。。這樣的設計和實現是昂貴的,但是可以有效的避免由于電子電路故障而導致大型客機墜毀的風險和成本。A300的電傳飛行系統不使用三重錯誤校正功能,但是當不同團隊開發的具有相同功能的單元的輸出有所不同時,將判斷權交給了飛行員。從這個意義上講,飛行員可以被視為三合一中的一個,對設備的決定擁有最終的權力。
波音777的主要飛行控制系統更加完善,使用計算機來實現TMR,該計算機使用三種不同的微處理器:AMD 29050,Motorola 68040和Intel 80486。它具有兩層TMR架構,其中多數由這三個TMR單元決定。
還使用了多路復用系統,因為如果NASA的載人火箭發射等由于電子電路故障而失敗,則會造成巨大損失。
這樣的表決系統非常可靠,但是由于使用三個相同的單元并需要額外的表決電路,因此其成本是單個單元的三倍。
Checkpoint-Restart方法是考慮是否可以以較低的價格實現邏輯電路的糾錯的方法。在該方法中,周期性地存儲硬件的狀態(觸發器,存儲器等的狀態)。然而,當全部清除高速緩沖存儲器等并且重新開始執行時,再次讀取存儲器以節省架構狀態的存儲量。
此存儲的硬件狀態稱為檢查點。如果通過雙重比較或其他方法檢測到錯誤,則讀取檢測到錯誤之前的檢查點的值,恢復硬件狀態,并且取消后續指令執行的所有影響,并從檢查點之后的指令重新開始執行。
這樣,就像Word等軟件的撤消功能一樣,您可以撤消錯誤執行的影響,并從錯誤發生之前的位置重新開始。Checkpoint-Restart是其硬件版本。但是,要實現此功能并不容易,并且處理器Checkpoint-Restart的實現僅限于POWER6之后的IBM Z系列大型機和高端服務器處理器,以及富士通大型機和SPARC64處理器。
在處理普通數據的處理器中,三重化由于硬件的增加較大,所以使用Checkpoint-Restart,但是Checkpoint-Restart從錯誤檢測到恢復正常操作需要一定的時間。在進行常規數據處理的服務器中,這種延遲時間不是問題,但在諸如自動駕駛的實時系統中,如果響應延遲,飛機可能在此期間墜毀。因此,實時系統使用的不是Checkpoint-Restart,而是3重化等處理不中斷的錯誤糾正方式。