一種基于時間容錯的同步機制分析
引 言
多通道交叉余度模型雖然通過硬件冗余技術提高了系統(tǒng)的可靠性,但協調工作的基礎性前提是各個單元之間的同步。同步是整個余度管理系統(tǒng)的核心,它保證了各冗余單元間保持步調一致地工作,是表決、故障屏蔽、故障隔離和重構的基礎。當前關于同步的研究在分布計算、傳感器網絡以及媒體控制等領域各自展開。其中任務同步機制內容包括 :共享內存、數據簡單的共享、信號量、基本的互斥和同步、消息隊列和管道,同一 CPU 內多任務間消息傳遞 ;Sockets 和遠程調用,任務間透明的網絡通信等。
1 通道模型
一個實際的余度系統(tǒng)包含多個交叉?zhèn)鬏敂祿倪B接。其構成如圖 1 所示。
圖1中,S為輸入任務序列,M為對應通道上的處理模塊,l為經過多通道表決后的處理輸出。多通道交叉余度模型在串聯通道的基礎上,將處理單元按階段進行并聯,然后再由并聯系統(tǒng)構成串聯結構,最終構成了負載的并/串結構。在每個并聯輸出時,設立表決面,進一步在處理上隔離了因為通道單元的故障而導致的錯誤向串聯系統(tǒng)的下一級傳遞。
在并聯的每個階段,設φ(zi)和zi=(zi,1,zi,2,…,zi,m)分別表示系統(tǒng)和其m個階段單元的狀態(tài),它們是二值變量,當,φ(zi)=1時表示該階段單元正常工作,有正確的輸出,φ(zi)=0時表示階段單元故障。在該階段,多個單元之間構成k/n系統(tǒng),存在φ(zi)=max{zi,1,zi,2,…,zi,m},如有zi,1,zi,2,…,zi,m≥k,則φ(zi)=1,否則,φ(zi)=0。而在串聯的n個階段之間,構成串聯系統(tǒng),則有1/n屬性,其狀態(tài)φ(z)=min{φ(z1),φ(z2),…,φ(zn)}。
2表決結構
具有動態(tài)同步的表決控制邏輯結構如圖2所示。
動態(tài)同步表決控制邏輯中,數據檢測從
開始,周期性地從每個處理單元的數據寄存器 Ri,j 中讀取數據, 與特征碼比較,來判定數據是否準備好。在判定中,表決控制 邏輯不讀取對應模塊中因永久故障而被隔離的單元,對所有 正常工作的單元進行讀取。當數據全部就緒時,就進行表決, 為下一模塊輸入表決數據。表決時間表維護一個本邏輯應當 進行表決的最后時間期限,當時間期限到而數據檢測仍未全 部就緒,則按照當前采集到的數據進行表決。而對未就緒的 單元可能發(fā)生的故障或產生的失步,由檢測系統(tǒng)進行判定處理。表決邏輯執(zhí)行表決策略,為下一級模塊輸入數據。
3表決控制算法
當檢測過程被啟動后,檢測邏輯可采用輪詢端口或中斷 等方式(按照硬件的設計和實現而定),獲取每個非永久故障 單元數據就緒信息。當所有數據就緒,則進入表決,并將結 果輸出到下一個模塊的輸入端口。有兩個因素導致表決的發(fā)生: 一是數據就緒;二是表決時間到。如果表決時間到達最后期限, 而對應模塊中仍有單元數據未就緒,則使用就緒數據進行表 決。其未就緒單元進行檢測判定,按照故障判定規(guī)則處理。表 決的最后期限按照后面可能的冗余時間為D+j/T。
設模塊所包含的m個單元的端口依次為port” port2,…,portm,建立一個長度為m的數組fixed[m],記錄 對應單元是否為永久故障,當對應位為0表示良好,為1表示 持久故障;數組Data_ready[m]存放讀取數據,并作為表決的 參數;Data_readed[m]為已經讀取的標志,用num_ready對 就緒數據個數進行計數;num_right表示當前完好的單元個數。 當前時間用currently_clock表示,D是按照靜態(tài)分配規(guī)劃的 表決時間,deadline為最后表決時間期限,Sign_empty為空 標志特征碼。
Test_and_vote ;//測試、表決算法過程
{ num_right=0
num_ready=0 ;
deadline= D +/T ;
y=i+i
For i=1 to m do {
num_right= num_right+ fixed[i]; num_right=m- num_right ; Data_readed[i]=0 )//當前良好的單元數
For i=1 to m do {
If (fixed[i]=0 and Data_readed [i ]=0) then Data_ ready[i] : =input(portj);
If Data_ready[i]手Sign_empty then { // 數據就緒 num_ready= num_ready+1 ;
Data_readed[i]=1//設置已讀取標志
}
If num_ready= num_right then {
For j=1 to m do {
output(porq): = Sign_empty ;// 設置特征碼
Data_readed[i]=0//恢復讀取標志為未讀取
break ;//數據全部就緒
}
Data_readed[i]=0//恢復讀取標志為未讀取
break;
}
}
Call voting(Data_ready)// 啟動表決
}
4可靠性分析
當m個表決邏輯在時刻t的可靠度依次為虬,(t), i=1,
2,…,m時,并聯表決結構的可靠度為
結合表決可靠度R(t),級聯表決系統(tǒng)的可靠度R(t)為:
當級聯表決邏輯置入mXn多通道交叉余度系統(tǒng)中,系 統(tǒng)變成mX2n的多通道交叉,在不考慮數據鏈路CCDL可 靠性和負載分配的前提下,系統(tǒng)由2n個獨立的子系統(tǒng)串聯而 成,第i個子系統(tǒng)又由mi個獨立分布的邏輯單元并聯而成四。 設R( (t)表示第i個子系統(tǒng)的第j個單元在時刻t的可靠函數, i=1, 2,…,2n,,=1,2,…,m, R (t)表示第i個子系統(tǒng)在時 刻t的可靠函數,則有:
其中,,為正整數,人為任意的實數。
當不采用級聯表決邏輯時,系統(tǒng)構成為mXn多通道交叉 和n個表決邏輯的串聯結構,其可靠度為:
顯然,系統(tǒng)在一定期限內運行(< MTTF)可靠度有明顯提高。
5實驗驗證
基于PowerPC的開發(fā)平臺下構建了實驗環(huán)境,其分為硬件平臺、開發(fā)環(huán)境系統(tǒng)和軟件平臺3部分:
系統(tǒng)硬件平臺,主要包含微處理器PowerPC8247、 SDRAM、BootFlash、Flash、網絡模塊、串口、電源模塊;
開發(fā)環(huán)境系統(tǒng),包含GCC交叉編譯系統(tǒng),連接和 Glibc 庫;
系統(tǒng)軟件平臺,主要包括VxWorks和文件系統(tǒng)的構建。 驅動程序包含CPU的初始化,串口和相關文件系統(tǒng)所需要的 驅動。
在上述開發(fā)環(huán)境下構建了三通道狀態(tài),設置表決面3 個,表決邏輯和處理邏輯具有一致的余度。設余度系統(tǒng)中 所有的處理和表決單元邏輯具有相同的可靠度,故障率為1/ R=17.708 8X10-6/h (某型號飛機對余度器件的要求),仿真中采 用一個符合平均分布的故障散播函數實現故障注入,系統(tǒng)故 障覆蓋率為0.98,余度系統(tǒng)要求的指令周期為20 ms,其中表 決周期為2 ms,每個階段任務周期為6 ms,任務時實際執(zhí)行 時間為4 ms,插入的故障周期為1 ms。表決輸出采用符合一 致性要求的輸入數據的算術平均值,永久故障的臨界值計數 為6,仿真時間為500 h。實驗結果如表1所列。
表1不同時間同步算法故障狀態(tài)比較(/500 h)
時間同步算法 |
三通道故障狀態(tài) |
系統(tǒng)失效狀態(tài) |
靜態(tài)同步算法 |
0.784 5E-12 |
0.696 3E-12 |
時間冗余向后遷移 |
0.554 1E-13 |
0.376 2E-13 |
Tes and vole |
0.981 2E-14 |
0.789 0E-14 |
從上述實驗可以看出,隨著冗余時間的利用,在靜態(tài)同 步算法的基礎上,時間冗余向后遷移和Test_and_vote算法分 別在故障狀態(tài)和系統(tǒng)失效兩個參數上都有明顯提高,即故障 率降低、可靠性提高,變化幅度在10倍以上。由于靜態(tài)同步 算法在時間上沒有任何容錯處理,在一個指令周期中,單個故 障已經降低了系統(tǒng)可靠性,當出現兩個以上連續(xù)故障時,會直 接導致系統(tǒng)的失步。而后兩種算法理論上課提供6個連續(xù)的 瞬時故障,時間冗余向后遷移實際可利用故障周期為3個左右, Test_and_vote算法則進一步將可利用故障周期提高到5個左 右。大大促進了系統(tǒng)對時間周期的可利用率,進而提高了系統(tǒng) 的可靠性。
6結語
文章針對多通道余度模型中同步的可靠性問題,提出了一 種基于表決邏輯控制結構的算法,該邏輯結構用來控制表決 時間并監(jiān)測表決數據。理論分析和實驗表明,在表決算法最 大限度保證表決正確性的前提下,表決控制邏輯結構大幅提 高了多通道系統(tǒng)的可靠性,對瞬時干擾的抵抗能力得到了提高。
20211120_619888c74fd01__一種基于時間容錯的同步機制分析