包 沖
中國科學院大學(北京國科環宇空間技術有限公司),北京100049
在航天領域,隨著各類數據載荷(如光學相機、雷達等)性能的不斷提升,可能會要求后端數據處理設備有非常高的數據傳輸、交換和處理能力[1]。SRIO(即Serial RapidIO,它是面向嵌入式系統開發提出的新一代高速互聯技術,已于2004年被國際標準化組織(ISO)和國際電工協會(IEC)批準為ISO/IECDIS 18372標準)總線具有傳輸帶寬高、協議精簡,操作靈活等特點[2],當前主流的高性能數據處理器件,如DSP、FPGA、PowerPC等,很多都集成了SRIO總線控制器[3],因此SRIO成為載荷數據處理設備的首選總線。
在航天設備中應用SRIO總線,可靠性是必須考慮的因素,而冗余備份是提高可靠性的最有效手段之一[4]。作為一種基于交換的高速數據串行傳輸總線,SRIO協議本身并沒有針對其交換系統的冗余備份機制提出建議。本文基于實際應用情況,對SRIO交換系統的冗余備份機制進行了研究,提出了幾種方案,并進行了可靠性的計算、分析和比較。
交換系統的冗余備份機制的設計都要圍繞交換芯片來完成。因此,SRIO交換芯片是SRIO交換系統中的關鍵部件。
目前市場上使用的SRIO交換芯片以IDT公司的產品為主,國內相關研究很少[5]。IDT公司的CPS1848是常用的交換芯片之一,它支持 SRIO 2.1標準,具有48個通道,支持18個端口,可以靈活配置端口模式和速率。
在應用中,當單個交換芯片不能滿足系統對端口數量的要求時,一般會使用多個交換芯片進行級聯,組成一個交換單元來擴充交換端口。
在高可靠應用系統中,常見的備份機制,按規模可以分為整機備份、模塊(單板)備份和電路組合(芯片)備份;按冗余度又可以分為雙(機/板/電路)備份或多(機/板/電路)備份;按工作狀態(上電與否),又可以分為冷備和熱備。
本文主要聚焦于冗余備份機制的拓撲結構研究,關于具體實現時,與電路相關的細節問題不再詳細討論。
SRIO交換系統一般包括通信節點、主控節點、通信通道和交換單元等4類部件。部件的形態可能是一塊板卡或者一個芯片及其外圍電路。
2.1.1 通信節點
每個通信節點在SRIO系統中具有唯一的ID,通過通信通道與交換單元連接。每個通信節點都集成有SRIO控制器,掛接在DSP、PowerPC等處理器上或者在FPGA中用IP核[6]實現。通信節點一般都是高集成度、高主頻的電路,同時軟件復雜度也非常高,其可靠性設計的壓力較大。
2.1.2 主控節點
在可擴展的SRIO總線系統中,需要有一個通信節點在整個系統啟動之初,對整個系統進行掃描,發現系統中存在的所有通信節點和交換芯片,然后為通信節點分配ID,并對交換芯片進行路由配置,這個通信節點稱為主控節點。
在可靠性要求較高,且具有確定性的SRIO系統中,系統內所有通信節點的ID和交換芯片的路由配置在設計過程中固定下來。系統上電后,交換芯片主動或被動地加載路由信息,不需要掃描的過程。在這種情況下,系統中可以不存在主控節點。
2.1.3 交換單元
交換單元可以是單個交換芯片或者是由多個交換芯片組成的交換網絡,本文將交換單元作為一個整體來研究。

圖1 CPS1848結構圖
參見圖1中CPS1848的結構[7],由于共用資源太多,交換芯片僅僅出現某個端口故障的概率非常小,可以認為交換芯片的故障就是整個芯片的故障。
2.1.4 通信通道
每個通信節點到交換單元之間的物理傳輸通道稱為通信通道。
通信通道的組成一般為PCB走線和連接器等。當SRIO總線在設備間連接時,還可能是連接器+線纜或者光模塊+光纖。除光纖傳輸外,由于通信通道的大部分構成都是無源的,出現故障的概率很小。
為了簡化分析,對SRIO交換系統中的部件進行進一步的歸類。首先,設定系統使用靜態路由方式,不存在主控節點;其次,通信通道出現故障的概率很小,不再單獨作為研究要素。
設定一個系統模型如下:
1)組成:包含6類通信節點,每類通信節點都包括1個主份和1個備份。1個交換單元具有12個端口;
2)判定模型系統正常工作的條件,設定為組成系統的部件均正常工作;
3)設定每類通信節點的可靠性概率均為P(e),并設定P(e)=0.95,其主份和備份的可靠性概率分別表示為P(eA)和P(eB),且有P(eA)=P(eB)=P(e);
4)同理,每個交換單元的可靠性概率均為P(s),其主份和備份的可靠性概率分別表示為P(sA)和P(sB),且有P(sA)=P(sB)=P(s)。
本文的研究重點是不同冗余備份機制的拓撲結構,以及交換單元的可靠性與系統可靠性之間的函數關系,即P(system)=f(P(s)),并進而進行分析和對比。
3.1.1 拓撲結構
雙機備份是最常見的備份方式,所有主份部件構成主機(A機),所有備份部件構成備機(B機),如圖2所示。主機和備機之間相互獨立。

圖2 雙機備份的拓撲結構
當主機出現故障時,可以由更高一級的控制機制將工作任務整體遷移到另外備機上運行。
3.1.2 可靠性計算
在這種拓撲結構中,每臺單機的所有部件為串聯方式。從而得到主機的可靠性概率為:
P(systemA)=(P(sA)×(P(eA))6
(1)
且有P(systemB)=P(systemA)。
主機和備機在整個系統中為并聯方式,所以系統的可靠性概率為:
P(system1)=1-(1-(P(systemA))×
(1-P(systemB))
(2)
當P(e)=0.95時,由式(1)和式(2)可得到P(system1)關于P(s)的函數為:
P(system1)=1.4702P(s)-0.5404(P(s))2
(3)
3.2.1 拓撲結構
當系統中的部件數量不多時,可以將所有主/備份部件都分配在同一臺單機中。同時,將圖2中的主/備份交換單元的各自6個沒有使用的端口進行互聯,得到如圖3所示的拓撲結構。

圖3 交叉備份的拓撲結構
這個交換系統中,在交換單元正常的情況下,當某個通信節點發生故障時,僅需要切換該節點的備份節點來代替故障節點,就可以使系統恢復正常工作,從而形成交叉備份,提高了系統的可靠性。
3.2.2 可靠性計算
在圖3所示的拓撲結構中,以交換單元故障與否的條件概率為基礎,分3種情況計算系統的可靠性概率,詳見表1。

表1 交換單元的故障情況分類
可知:
P(sA∩sB)=P(sA)×P(sB)
(4)

(5)

(6)

(7)
a)情況下,每類通信節點的主份和備份都可以互為備份,為并聯關系,因此,每類通信節點的可靠性概率為:
P(eA∩eB)=1-(1-P(eA))×(1-P(eB))
(8)
在a)情況下,系統可靠性的條件概率為:
P(system|sA∩sB)=(P(eA∪eB))6
(9)
b)情況下,交換單元的主份和備份之一發生故障,則與故障交換單元相聯的所有通信節點都將無法正常工作,這時,系統可靠性的條件概率分別為:

(10)

(11)
c)情況下,2個交換單元均發生故障,系統無法正常工作,這時系統可靠性的概率為0。
根據貝葉斯公式[8],可得到交叉備份情況下,系統的可靠性為:

(12)
由式(4)~(12)可知,當P(e)=0.95時,得到P(system2)關于P(s)的函數為:
P(system2)=1.4702P(s)-0.4851(P(s))2
(13)
可見,與雙機備份機制相比,交叉備份機制由于充分利用了系統中的每個部件,其可靠性有了一定程度的提高。下面將以此為基礎,嘗試增強交換網絡,來觀察系統可靠性的變化情況。
3.3.1 拓撲結構
呂鵬[9]提出了一種SRIO總線的全交換路由設計方案。在這個方案中,交換單元分布在每個通信節點上。具體實現的拓撲結構參見圖4。

圖4 全交換備份的拓撲結構
圖中每個通信節點與1個交換單元構成一個組合(后文均簡稱組合),交換單元的1個端口用于組合內互聯,其它的11個端口用于組合之間的互聯。所有組合之間均實現了點對點互聯。這樣,同類通信節點組合的主、備組合之間構成交叉備份。
理論上,這種拓撲結構可以保證任意2個通信節點之間通信是“無阻塞”的。其代價是大量交換芯片的使用以及功耗和系統復雜度的提升。
3.3.2 可靠性計算
圖4中每個通信節點和與其相聯的交換單元是串聯關系,串聯后的組合的可靠性概率為:
P(eA∩s)=P(eB∩s)=P(e)×P(s)
(14)
每類組合的主份和備份之間是并聯關系,其可靠性概率為:
P[(eA∩s)∪(eB∩s)]=
1-(1-P(eA∩s))×(1-P(eB∩s))
(15)
每類通信節點組合之間都是串聯關系,因此整個系統的可靠性概率為:
P(system3)=(P[(eA∩s)∪(eB∩s)])6
(16)
根據式(14)~(16),當P(e)=0.95時,得到P(system3)關于P(s)的函數為:
P(system3)=[1.9P(s)-0.9025(P(s))2]6
(17)
圖5中描繪了對應3種冗余備份拓撲結構的系統可靠性概率P(system)關于交換單元可靠性概率P(s)的函數。
可以觀察到,在本文設定的系統模型的前提下,方案2效果最佳。其它2種方案在P(s)為0.9左右時,其系統可靠性概率的曲線出現交叉。
相比于方案2,從P(s)>0.5開始,方案1的系統可靠性開始變差,這是因為,在保證交換單元有較高可靠性的前提下,方案2比方案1更好地利用了通信節點的主、備份資源,實現了交叉備份。
當P(s)<0.9時,方案3的可靠性隨著P(s)的減小開始劇烈變差。這是由于方案3中使用了大量的交換芯片,交換單元可靠性的下降,必然拖累系統的可靠性以指數規律下降。而當P(s)>0.9時,方案3的系統可靠性開始提升,明顯高于方案1,這也是因為方案3實現了通信節點的交叉備份。

圖5 三種冗余備份拓撲結構的可靠性概率比較
由此,關于SRIO交換系統的冗余備份機制的設計,可以得出以下規律:
1)交換單元的可靠性是設計中重要的考慮依據,它的高低會直接影響到對冗余備份拓撲結構的選擇;
2)應該盡量利用SRIO總線的交換特點,實現通信節點間的交叉備份,有助于提高系統的可靠性。
這里需要說明的是:SRIO冗余備份機制的設計是一個系統性問題,除了本文的研究內容外,還要綜合考慮成本、功耗、面積和實現難度等多方面因素。
關于SRIO冗余備份機制的研究已經應用于1臺信號處理設備的設計中。這臺設備將用在運行于中低軌道的航天器中,實現對光學相機輸出的圖像數據進行壓縮編碼、存儲管理和數據下行等功能。原始圖像數據有效速率高達14Gbps。設備采用6U VPX架構,以4x的SRIO總線作為數據平面總線。設備包括主控板、電源板、SRIO交換板、存儲板(2塊)、數據處理板、接口板(2塊)等板卡,每類板卡都有主、備份兩塊板卡。該設備為二級設備,有航天器平臺計算機作為上位機,對其進行管理控制。
根據對這臺設備的技術要求,分別使用文中提出的3種冗余備份機制進行設計,并預計可靠性,計算結果如表2所示。其中,通過對交換芯片CPS1848進行篩選和加固,預計其可靠性為0.96。

表2 系統可靠性預計
注1:所統計的SRIO節點數量,包含主份和備份;注2:除每個SRIO節點對應1塊板卡外,另有電源板1塊,背板1塊,交換板1塊(方案3不需要獨立的交換板)
根據表2的計算結果,選定了系統可靠性預計值更高的交叉備份方案應用于當前設備。除冗余備份的拓撲結構外,系統的故障檢測和切換機制對系統可靠性也有非常大的影響,因此,有必要在下文進行簡要的描述。
設備采用VPX標準的IPMB總線[10]以實現更高級別的狀態監控和管理(器件等級更高)。每個板卡上的IPMC會監控該板卡的電壓、電流、溫度和心跳等狀態,同時控制該板卡的加斷電,實現交叉備份的切換。SRIO交換系統使用靜態路由,由IPMC通過IIC接口對交換芯片進行路由配置[11]。
主控板和電源板的主備切換由平臺計算機控制。系統啟動后,主控板通過2種方式監控其它板卡的狀態:1)除正常的SRIO通信外,主控板定期發送消息給其它所有的在線板卡,監控SRIO總線上各個板卡的狀態;2)通過IPMB總線收集其它板卡的狀態。主控板將這些遙測信息上報平臺控制計算機。地面人員可以根據這些遙測信息判斷板卡狀態,并通過主控板以及IPMB總線系統對出現故障的板卡進行主備切換,同時由交換板上的IPMC重新配置交換芯片的路由路徑。
目前設備已經完成原理樣機的研制,進入鑒定件設計階段。在聯調過程中,通過故障注入和模擬,對所選用的交叉備份方案進行了充分測試,證明了該方案的合理性和有效性。
提出了關于SRIO交換系統的3種冗余備份機制,進行了可靠性計算和對比分析,得出了冗余備份設計的一些原則。并以一臺數據處理設備的研制過程為例,證明了交叉備份機制的合理性和有效性,從而說明其對提高系統可靠性具有較大的幫助作用。