王國(guó)輝,張曉宇,關(guān) 永,劉永梅
(1.首都師范大學(xué)電子系統(tǒng)可靠性技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100048;2.中國(guó)電子科技集團(tuán)公司第五十四研究所衛(wèi)星通信與廣播電視專(zhuān)業(yè)部,石家莊 067000)
在現(xiàn)代產(chǎn)品質(zhì)量要求中,可靠性占有突出的重要地位。而備份方案的設(shè)計(jì)與優(yōu)化是可靠性工程中一項(xiàng)基礎(chǔ)工作。SpaceWire[1]是為了現(xiàn)代高速設(shè)備之間通信而設(shè)計(jì)的全雙工的、點(diǎn)到點(diǎn)的、串行數(shù)據(jù)通信鏈路。一般主要用于衛(wèi)星、宇宙飛船、航天飛機(jī)上設(shè)備之間的通信,而這些設(shè)備都是工作在苛刻通信環(huán)境中。因此,最大限度地提高SpaceWire的可靠性是一項(xiàng)重要的研究課題。該項(xiàng)目要求 SpaceWire具有在750 km的太陽(yáng)同步軌道上工作3年后可靠度為0.95的能力,而在FPGA上實(shí)現(xiàn)該系統(tǒng)的初始可靠度為0.8674,遠(yuǎn)不能滿(mǎn)足需求。為了既達(dá)到設(shè)備高可靠度的要求,又能充分利用有限的FPGA片上資源,文獻(xiàn)[2-3]分別用TMR方法和形式化驗(yàn)證的方法提高Spacewire節(jié)點(diǎn)可靠性。
本文提出一種基于FPGA的SpaceWire總線冗余備份優(yōu)化方法。該方法通過(guò)調(diào)整內(nèi)部功能子模塊的可靠度,進(jìn)行整個(gè)系統(tǒng)的備份優(yōu)化,提高系統(tǒng)的可靠度。
SpaceWire節(jié)點(diǎn)[4]內(nèi)部主要包括控制、發(fā)送、接收、恢復(fù)、錯(cuò)誤、時(shí)間、信譽(yù)及波特率選擇八大功能模塊。其工作流程如圖1所示。
圖1 SpaceWire功能模塊工作流程
8個(gè)模塊的功能分別如下[5]:
(1)控制模塊:該模塊的主要功能是控制鏈路的多個(gè)狀態(tài)之間的轉(zhuǎn)換,包括接收到意外錯(cuò)誤的處理,如超時(shí)、斷開(kāi)或發(fā)生奇偶錯(cuò)誤等。
(2)發(fā)送模塊:該模塊的主要功能是對(duì)數(shù)據(jù)進(jìn)行 DS(Din和Sin)編碼并將其按串行發(fā)送出去。
(3)接收模塊:該模塊的主要功能是對(duì) DS信號(hào)進(jìn)行編碼,以產(chǎn)生一個(gè)被傳送到主機(jī)系統(tǒng)的序列。
(4)恢復(fù)模塊:該模塊的主要功能是將接收到的Data和Strobe信號(hào)進(jìn)行異或操作,以此得到接收模塊需要使用的時(shí)鐘信號(hào)。
(5)錯(cuò)誤模塊:該模塊的主要功能是對(duì)鏈路發(fā)生的各種錯(cuò)誤進(jìn)行相應(yīng)的處理,遇到錯(cuò)誤就把錯(cuò)誤讀出去。
(6)時(shí)間模塊:該模塊的主要功能是提供用于鏈路初始化的超時(shí)設(shè)定。時(shí)間計(jì)數(shù)模塊為控制模塊提供計(jì)時(shí)的服務(wù)。
(7)信譽(yù)模塊:該模塊的主要功能是控制接收器接收到的常字符的個(gè)數(shù)。
(8)波特率選擇模塊:該模塊的主要功能是控制發(fā)送模塊發(fā)送信號(hào)的頻率。
2.2.1 串聯(lián)系統(tǒng)與并聯(lián)系統(tǒng)
串聯(lián)系統(tǒng)由 n個(gè)部分串聯(lián)而成,即任一部分失效就引起系統(tǒng)失效。并聯(lián)系統(tǒng)由 n個(gè)部件并聯(lián)而成,即只有當(dāng)這n個(gè)部件全都失效時(shí)系統(tǒng)才失效[6]。串聯(lián)系統(tǒng)和并聯(lián)系統(tǒng)的可靠性框圖分別如圖2、圖3所示。
圖2 串聯(lián)系統(tǒng)可靠性框圖
圖3 并聯(lián)系統(tǒng)可靠性框圖
令第 i個(gè)部件的壽命為 Xi,可靠度為 Ri(t)={Xi>t},i=1,2,…,n。假定 X1,X2,…,Xn相互獨(dú)立,則串聯(lián)系統(tǒng)和并聯(lián)系統(tǒng)可靠度計(jì)算公式[7-8]分別如式(1)、式(2)所示:
2.2.2 串并混聯(lián)系統(tǒng)
圖4表示串并混聯(lián)系統(tǒng)。若各部分的可靠度分別為Rij(t),i=1,2,…,n;j=1,2,…,m,且各個(gè)部分的壽命相當(dāng)獨(dú)立。則根據(jù)串聯(lián)系統(tǒng)和并聯(lián)系統(tǒng)可靠度計(jì)算公式式(1)、式(2),得到串并混聯(lián)系統(tǒng)可靠度計(jì)算公式如下:
圖4 串并混聯(lián)系統(tǒng)可靠性框圖
隨著EDA技術(shù)的發(fā)展,使用硬件描述語(yǔ)言[9]設(shè)計(jì)已經(jīng)成為一種趨勢(shì)。因此,在一片F(xiàn)PGA上實(shí)現(xiàn)SpaceWire節(jié)點(diǎn)設(shè)計(jì)并完成系統(tǒng)模塊級(jí)的優(yōu)化備份方案。
為了得到系統(tǒng)各模塊備份前的可靠度,假設(shè):(1)空白FPGA可靠度為1。(2)3年時(shí)間中SEU、電磁干擾等事件等概率出現(xiàn)。(3)FPGA中每個(gè)工作中的CLB損害概率相同。(4)不在工作中的CLB不會(huì)受到損壞。
令Ri,i=1,2,…,8為模塊可靠度,APi,i=1,2,…,8是每個(gè)模塊的面積占用比,即該模塊占用整片PFGA中CLB的比值。面積占用比小,受到影響較小,正常工作時(shí)間長(zhǎng);面積占用比大,受到影響較大,正常工作時(shí)間短。選用 Xilinx公司 Spartan-3E(XC3S250E)FPGA的 CLB總數(shù)為 612個(gè)。SpaceWire節(jié)點(diǎn)中每個(gè)模塊占用 CLB具體數(shù)量情況如表1所示。
表1 各個(gè)模塊的可靠度
面積影響因子為 Ai,i=1,2,…,8,有 Ai=1/APi。t0表示能正常工作的時(shí)間,平均失效前時(shí)間(Mean Time To Failure,MTTF),MTTFi= Ai×t0。
系統(tǒng)中每個(gè)模塊的失效率為:
從而得到每個(gè)模塊的可靠度計(jì)算公式為:
根據(jù)串聯(lián)系統(tǒng)可靠度計(jì)算式(1)得到整個(gè)系統(tǒng)的可靠度R=0.8674。
評(píng)分分配法[10]是由同行專(zhuān)家從復(fù)雜程度、重要程度、技術(shù)實(shí)現(xiàn)的難易程度等多個(gè)因素給出評(píng)價(jià),不僅能反映出系統(tǒng)的整體特征,也能從專(zhuān)家長(zhǎng)期技術(shù)經(jīng)驗(yàn)積累方面給出建議,以得出有效的備份方案。
評(píng)分分配法應(yīng)用廣泛[11]。同行專(zhuān)家將根據(jù)影響系統(tǒng)的任務(wù)可靠性或者基本可靠性[12]的幾種主要因素給各個(gè)子模塊進(jìn)行評(píng)分,得出每個(gè)子模塊的加權(quán)因子K,然后進(jìn)行可靠性分配。
加權(quán)因子K的種類(lèi)和大小,根據(jù)不同的產(chǎn)品,可以由各種因子組成。考慮SpaceWire節(jié)點(diǎn)的特點(diǎn),主要考慮復(fù)雜因子、重要度因子、工作時(shí)間因子、技術(shù)因子等。各種因子的評(píng)分可以分成若干等級(jí),一般常分為5級(jí),以非常好、很好、好、較好、一般來(lái)表示。各個(gè)模塊加權(quán)因子的評(píng)分方法如下:
(1)復(fù)雜因子:元件數(shù)目及難易程度,最簡(jiǎn)單的系統(tǒng)為1分,最復(fù)雜為5分。
(2)重要度因子:子模塊發(fā)生故障,將對(duì)整個(gè)系統(tǒng)構(gòu)成影響,最關(guān)鍵評(píng)1分,非關(guān)鍵為5分。
(3)工作時(shí)間因子:工作時(shí)間長(zhǎng)短,最短為1分,最長(zhǎng)為5分。
(4)技術(shù)因子:成熟技術(shù)評(píng)1分,新技術(shù)評(píng)5分。
根據(jù) SpaceWire 節(jié)點(diǎn)的特點(diǎn),發(fā)送模塊、接收模塊最為復(fù)雜重要,同時(shí)工作時(shí)間也最長(zhǎng)。而信譽(yù)模塊和波特率選擇模塊結(jié)構(gòu)最為簡(jiǎn)單并且工作時(shí)間較短。其他模塊介于上述4個(gè)模塊之間。
專(zhuān)家給出的具體評(píng)分結(jié)果如表2所示。
表2 功能模塊評(píng)分結(jié)果與可靠度
各個(gè)模塊可靠性指標(biāo)的計(jì)算如下:
(1)子模塊加權(quán)因子Ki:
其中,Cs表示整個(gè)系統(tǒng)的總評(píng)分?jǐn)?shù);Ci表示第i個(gè)子模塊的評(píng)分?jǐn)?shù)。
(2)子模塊評(píng)分?jǐn)?shù):
其中,mij表示第i個(gè)子模塊第j個(gè)因子的評(píng)分?jǐn)?shù)。
(3)系統(tǒng)總的評(píng)分系數(shù):
(4)子模塊可靠性指標(biāo),即子模塊失效率的計(jì)算:
其中,λs為系統(tǒng)總的失效率;λi為第i個(gè)子模塊的失效率。
如果可靠性指標(biāo)給出的是可靠度為 0.95,則根據(jù)公式首先求出5.4217e–10,再根據(jù)子模塊的可靠度計(jì)算公式進(jìn)行分配。
根據(jù)相關(guān)領(lǐng)域幾位專(zhuān)家打分求取平均值得到的評(píng)分?jǐn)?shù)據(jù)以及由式(6)~式(9)得到各個(gè)模塊具體評(píng)分結(jié)果和可靠度分配如表2所示。
從3.2節(jié)可知,評(píng)分分配法是由同行專(zhuān)家從長(zhǎng)期技術(shù)經(jīng)驗(yàn)積累方面給出建議,以得出有效的備份方案。但是這種方法存在著專(zhuān)家的主觀因素、模糊加權(quán)分配等不足之處。因此,利用線性規(guī)劃法,從數(shù)學(xué)理論上,以復(fù)雜度為主要因子尋找最優(yōu)結(jié)果,也能找出相對(duì)較優(yōu)的備份方案,這就從復(fù)雜度因子上證明了評(píng)分分配法在備件分配上的科學(xué)性與有效性[13]。
假設(shè)系統(tǒng)由 n個(gè)相互獨(dú)立的子模塊串聯(lián)組成,在每個(gè)子模塊中只使用同一種部件(CLB)實(shí)現(xiàn)。對(duì)于 j=1,2,…,n,令Cj為一個(gè)第j個(gè)子模塊面積;Kj是使用第j個(gè)子模塊的個(gè)數(shù);Rj(Kj)表示當(dāng)?shù)趈個(gè)子模塊使用Kj個(gè)時(shí),第j個(gè)子系統(tǒng)的可靠度。顯然,系統(tǒng)的可靠度為:
系統(tǒng)由n個(gè)相互獨(dú)立的子模塊串聯(lián)而成。若第j個(gè)子模塊由Kj個(gè)相互獨(dú)立的第j種模塊并聯(lián)而成,第j種子模塊的可靠度為Pj,則并聯(lián)j個(gè)該模塊后,該系統(tǒng)可靠度為:
同時(shí),求K1,K2,…,Kn滿(mǎn)足:
從 n個(gè)部件的串聯(lián)系統(tǒng)出發(fā),此時(shí) R(1,1,…,1)=P1,P2,…,Pn。每次在某一個(gè)子模塊上增加一個(gè)相同的模塊,使系統(tǒng)可靠度上升得最快,直到系統(tǒng)可靠度達(dá)到或者超過(guò) Rs為止。顯然,要使系統(tǒng)可靠度增加最快,只要在模塊中可靠度 P1,P2,…,Pn最小的位置上并聯(lián)一個(gè)與該模塊相同的模塊。根據(jù)式(12)~式(15)設(shè)計(jì)搜索算法,實(shí)現(xiàn)優(yōu)化的子模塊備份方案。
本項(xiàng)目通過(guò)Matlab設(shè)計(jì)搜索算法,完成優(yōu)化冗余備份方案設(shè)計(jì)。表3~表5分別給出了評(píng)分分配法和線性規(guī)劃法所得到的優(yōu)化備份方案。
表3 評(píng)分分配法優(yōu)化備份方案
表4 線性規(guī)劃法優(yōu)化備份方案1
表5 線性規(guī)劃法優(yōu)化備份方案2
從表3~表5中可以看出,評(píng)分分配法能夠給出有效的備份SpaceWire子模塊冗余備份方案,即備份控制模塊、發(fā)送模塊、接收模塊以及恢復(fù)模塊。而從綜合線性規(guī)劃法給出的 2套方案來(lái)看,也能得出相同結(jié)論。該種備份方案可使得整個(gè)系統(tǒng)的可靠度達(dá)到0.9778,占用CLB數(shù)為163個(gè)。可見(jiàn),在可靠度滿(mǎn)足要求的前提下,比備份整個(gè)Space Wire節(jié)點(diǎn)節(jié)約了有限的FPGA片上資源。
本文提出了一種SpaceWire冗余備份優(yōu)化方法?;谠u(píng)分分配法,對(duì)SpaceWire內(nèi)部各功能模塊進(jìn)行可靠度分配備份。同時(shí),用線性規(guī)劃方法得到最優(yōu)解,從而得出優(yōu)化備份方案。用數(shù)學(xué)方法對(duì)評(píng)分分配法在復(fù)雜度因子選取時(shí)的科學(xué)性給以證明和補(bǔ)充。仿真實(shí)驗(yàn)結(jié)果表明,將 2種方法結(jié)合,可以設(shè)計(jì)得到滿(mǎn)足可靠度要求的優(yōu)化備份方案。下一步工作將尋求更優(yōu)的備份方案,提高系統(tǒng)的可靠性,以及SpaceWire總線冗余備份技術(shù)的實(shí)用性。
[1]田 園, 張 杰.基于SpaceWire的鏈路狀態(tài)算法研究與設(shè)計(jì)[J].計(jì)算機(jī)工程, 2011, 37(23): 113-115.
[2]劉 濤, 賀強(qiáng)民, 黃 偉.TMR加固的SpaceWire節(jié)點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn)[J].航天返回與遙感, 2012, 33(4): 64-69.
[3]董玲玲, 關(guān) 永.李曉娟, 等.用 LTL模型檢驗(yàn)的方法驗(yàn)證SpaceWire檢錯(cuò)機(jī)制[J].計(jì)算機(jī)工程與應(yīng)用, 2012, 48(22): 88-94.
[4]陳大羽, 王 琨, 李 濤, 等.空間高速總線 SpaceWire節(jié)點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn)[J].航天返回與遙感, 2010, 31(4): 58-64.
[5]關(guān) 永.一種具有在苛刻環(huán)境中抗輻照干擾的高速通信芯片: 中國(guó), 200810106375[P].2008-10-01.
[6]曹晉華, 程 侃.可靠性數(shù)學(xué)引論[M].北京: 高等教育出版社, 2006.
[7]袁子厚.串聯(lián)系統(tǒng)可靠度的計(jì)算表達(dá)式及其估計(jì)[J].武漢科技學(xué)院學(xué)報(bào), 2005, 18(10): 45-47.
[8]賈 諾, 王 濤, 金鴻章.兩不同部件并聯(lián)可修系統(tǒng)穩(wěn)態(tài)可靠度的最優(yōu)控制[J].工程數(shù)學(xué)學(xué)報(bào), 2009, 26(5): 855-860.
[9]彭 保, 范婷婷, 馬建國(guó).基于Verilog HDL語(yǔ)言的FPGA設(shè)計(jì)[J].微計(jì)算機(jī)信息, 2004, 20(10): 80-82.
[10]劉 強(qiáng), 毛社平.可靠性評(píng)分分配法研究[J].水雷戰(zhàn)與艦船防護(hù), 2004, (2): 33-37.
[11]張 琳, 黃 敏, 劉 婷.航空發(fā)動(dòng)機(jī)可靠性評(píng)分分配法[J].質(zhì)量與可靠性, 2009, (2): 49-52.
[12]曾聲奎, 趙廷弟.系統(tǒng)可靠性設(shè)計(jì)分析教程[M].北京:北京航空航天大學(xué)出版社, 2001.
[13]薛聲家, 左小德.確定線性規(guī)劃全部最優(yōu)解的方法[J].數(shù)學(xué)的實(shí)踐與認(rèn)識(shí), 2005, 35(1): 101-105.