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