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