姚惟琳 胡志良
中國電子科技集團公司第三十二研究所,上海 200233
StarFabic總線技術在冗余計算機系統中的應用
姚惟琳 胡志良
中國電子科技集團公司第三十二研究所,上海 200233
針對冗余計算機系統中,處理器之間進行高速數據傳輸的需求,本文提出利用StarFabric總線技術實現實時高速數據傳輸通道的方案,設計并實現了StarFabric模塊。該設計成功應用于磁浮運行控制冗余計算機系統,其傳輸時延滿足磁浮運行控制系統要求。
StarFabric總線;冗余計算機;高速數據傳輸
對于安全苛求系統等對可靠性要求比較高的應用場所中,經常采用多余度容錯計算機提高計算機系統可靠性,冗余方式主要有二取二冗余、三取二冗余等。對于多處理器組成的冗余系統,每個處理器產生的輸出和采集的輸入數據要與其它處理器的相應數據進行比較,從而可以判斷自身的狀態,這樣就要求處理器之間數據傳輸快速,滿足實時性的要求。現有的構建多處理器間數據交換,大都采用CAN、以太網等技術,但其延時不確定,性能不理想。對于實時性要求較高的應用場合,例如軌道交通、航空航天等領域,基于以上技術的數據傳輸和比較模塊,不能滿足實時性和可靠性的要求。
StarFabric 技術 由StarGen 公司發起推廣,主要用于嵌入式多處理機系統模塊與模塊之間背板級交換互連和底板與底板之間機柜級互連,以每秒“吉比特”(Gb/s)級的速率傳遞數據,且傳輸延遲確定,實時性較好。StarFabric 具有拓撲結構簡單、組網方便、傳輸速率高、可擴展性等優點,技術比較成熟且成本較低。
本文設計并實現了基于StarFabric總線的高速通信模塊。磁浮交通運行控制計算機系統采用三取二冗余架構,利用該模塊實現了處理器之間的高速數據傳輸,該冗余計算機系統已成功應用于上海磁浮嘉定試驗線。
StarFabric是協議開放的開關互連技術中的一種,StarGen公司提出,得到了Dolphin、Agere、SVA、SIEMENS等20多個公司的支持。針對嵌入式計算機,形成了PICMG2.17標準。StarFabric技術的應用主要針對多處理器系統,模塊與模塊之間、背板級交換互連以及底板與底板之間、系統級互連。
StarFabric有如下優點:
速度快:物理層分別使用4對622Mbps低壓差分信號線進行全雙工的接收和發送,每條鏈路的帶寬可達2.5Gbps。其中協議效率89%,采用8B/10B編碼,數據帶寬為1.77Gbps。
可靠性高:硬件支持錯誤監測和上報,實現點到點的CRC效驗和錯誤重傳。當單方向的4對差分信號線中的某些失效時,鏈路層可以檢測和重組,系統自動以碎鏈路方式工作,見圖1。雖然這樣會降低帶寬,但提高了可用性和可靠性。

圖1 StarFabric的鏈路重組
服務質量高:支持輸出緩存、分類服務的虛通道和基于信用的流控機制。支持多種服務類型,同步、異步、多播和專用幀。可以根據數據傳輸性質和帶寬要求,動態的預留和分配通道帶寬,已分配的帶寬在未使用時也可被其他服務類型的數據傳輸使用。
結構簡單:StarFabric互連構架的組成主要包括交換設備和橋節點設備。交換設備和橋節點設備主要由交換芯片和橋節點芯片組成。橋節點芯片實現PCI總線和StarFabric總線之間的橋接。交換芯片是StarFabric網絡中實現交換功能,負責完成StarFabric數據幀在不同端口之間的轉發。
延遲確定:每片PCI-to-StarFabric芯片協議轉換時間<0.5us,StarFabric交換芯片的交換延遲<1us。
兼容性好:100%兼容PCI協議,物理層接口符合IEEE1596.3規范TIA/EIA-644低壓差分信號標準,兼容現有連接器(CPCI、RJ45等)和線纜(CAT5類線)。
磁浮交通運行控制系統計算機采用三取二冗余結構,如圖2所示。三個互為冗余的處理器通道A、B、C采用相同的處理器和IO硬件。每個通道輸入的數據會傳輸給其他2個通道,每個處理器會對3個通道的數據進行比較,3通道數據中2個或2個以上一致的數據為有效數據。同樣,每個通道的輸出數據以及一部分計算處理數據也需要傳給其他2個通道進行比較,并進行3取2仲裁。

圖2 磁浮交通運行控制系統計算機冗余結構
每個通道配置一個StarFabric模塊,每個通道的處理器與StarFabric模塊通過PCI背板連接,三個通道間通過StarFabric模塊相互連接。連接采用點對點方式,即每個模塊均擁有獨立的通道連接到其他兩個模塊,在任何一個組件出故障時,不會影響另兩個組件的通信。
StarFabric模塊主要由一片PCI-to-Fabric協議芯片(SG2010)和一片StarFabric交換芯片(SG1010)構成,如圖3所示。PCI-to-Fabric協議芯片內部包含PCI接口控制單元和兩路冗余的高速串行收發控制器。交換芯片負責協議芯片與外部StarFabric節點的通信。

圖3 StarFabric模塊組成框圖
PCI接口及總線轉換電路主要將復雜的PCI總線協議轉化為StarFabric總線,該功能電路STARGEN公司生產的SG2010芯片實現。該芯片支持33MHz/32bits的CPCI協議V2.3。該芯片可將復雜的CPCI總線協議轉化為高速串行的總線協議。
在本設計中,可以實現兩種編址模式,一種是采取傳統的PCI系統中的地址路由來實現,另一種是采用解析幀頭的路徑路由方式。這兩種編址方式通過PCI-Fabric網關功能和PCI-PCI透明橋功能的使用模式來確定,共分成有橋功能的根模式、有橋功能的葉模式以及網關模式三種基本模式,本設計中在模塊上設置撥動開關來控制根/葉及有/無橋功能。
有橋功能的根模式下,SG2010的PCI接口必須連接到第一方總線上,如圖4所示。兩個鏈路接口可傳輸地址路由的幀或路徑路由/多播幀。這里的橋和網關成為PCI總線上的兩個功能設備。這兩種功能的配置空間可通過PCI總線,用Type0配置事務處理來訪問。被配置為根的SG2010負責初始化時交換網絡的枚舉,并建立PCI等級樹結構。

圖4 有橋功能的根模式
有橋功能的葉模式下,其中的一個鏈路接口必須連接到第一方總線上,兩個鏈路可傳輸地址路由的幀或路徑路由/多播幀,但另一個鏈路接口不屬于根的PCI等級樹結構中,如圖5所示。這里的網關在邏輯上就像是橋的第二方總線上的一個PCI設備。缺省情況下,橋是完全透明的,連在橋的第二方總線上的所有設備包括網關對主機完全可見,它們的資源空間被映射在全局PCI存儲空間中,但SG2010也能配置成對主機隱藏第二方總線的設備資源。

圖5 有橋功能的葉子模式

圖6 只有網關功能的模式
只有網關功能模式下,網關的PCI配置只能從PCI接口訪問,如圖6所示。在該模式中,傳輸PCI事務處理的唯一辦法是將PCI事務轉換成路徑路由或多播的幀,轉換是通過查詢段表和路徑表來實現的,這些查詢表可以是靜態的也可以是動態的。當SG2010的鏈路接口在網關模式中收到地址路由幀,它會將該幀丟棄,并且發出地址路由錯誤事件的信號。
在根節點和葉子節點的設計中,需使每個組件可以根據用戶的需要配成根模式或葉子模式工作,但整個系統中必須有一個模塊以根模式工作。設定為根的SG2010負責系統中StarFabric交換網絡的初始化,初始化過程包括交換網絡的枚舉和交換網絡的發現。網絡枚舉即完成網絡中所有設備網絡標號(FID)的分配,FID實際上是各設備到根結點的一條路徑。網絡發現就是通過軟件檢測網絡中的設備及設備間連接關系的過程,最終建立交換網絡設備間的關系圖,并找出本地結點到其它設備的最短路徑。
設備本身需要設置這些配置寄存器值。這些配置寄存器值由設備向串行SROM預讀得到,串行SROM預讀在設備上電初始化的時候完成。該SROM存儲SG2010的上電配置信息。這里按照STARGEN公司的推薦,選用了AMTE公司的AMTE25640。其中,SG2010的網關功能地址設置寄存器是關鍵設置參數,因為絕大部分的應用中都需要通過網關功能得到系統分配的存儲器空間和IO空間資源。
在硬件連接上,對SG2010進行如下配置:
(1)總線為地址/數據復用;
(2)SG2010始終控制局部總線,不釋放總線控制權;
(3)StarFabric總線所需要的時鐘是由CPCI時鐘得到的;
(4)SG2010的時鐘由66.208MHz和77.768MHz表貼晶振提供。
考慮到磁浮交通運行控制系統冗余計算機為對可靠性的要求。這里使用擁有6個鏈路的SG1010來實現StarFabric總線的交換,支持錯誤監測和上報,實現點到點的CRC效驗和錯誤重傳。
SG1010為了完成向系統配置軟件的資源分配請求,需要設置配置寄存器值。配置寄存器值由設備向串行SROM預讀得到。按照STARGEN公司的推薦,選用了AMTE公司的AMTE25640。
考慮磁浮交通運行控制系統冗余計算機的可維修性要求,采用的前出線。StarFabric總線前出端口,串行了濾波電容和耦合電感,來防止信號的干擾。可靠性的考慮,前出的四個端口,采用了冗余,雙路輸入雙路輸出,即使一個端口斷掉,另外一個端口會保證通信的正常進行。

圖7 測試方法示意圖
針對磁浮交通運行控制系統對實時性有較高要求,本文特針對StarFabric的傳輸時延進行了測試。測試方法如圖7所示,作為根節點的A通道處理器通過StarFabric總線向B通道處理器發送一系列數字信號,同時A通道處理器通過本通道數字輸出模塊將該信號輸出到示波器。B通道處理器通過StarFabric總線接收到數字信號后立即通過本通道數字輸出模塊將該信號輸出到示波器。A、B通道的數字信號在示波器上顯示,便可觀察出兩個信號之間的時間差,該時間差反映了A通道至B通道StarFabric的傳輸時延。本測試中,處理器采用PowerPC MPC8245,操作系統為Vxworks。
測試結果如表1所示,可以看出StarFabric的傳輸時延小于1ms,滿足磁浮交通運行控制系統對實時性的要求。

表1 時延測試結果
本文設計并實現了一種StarFabric高速數據傳輸模塊,利用該模塊實現了三取二冗余計算機系統處理器之間的高速數據傳輸,具備可靠性高,傳輸延時小的優點。該計算機系統已成功應用于上海嘉定磁浮試驗線。實驗測試表明StarFabric數據傳輸延時小于1ms,滿足磁浮運行控制系統對實時性的要求。
[1] StarGen, Inc..StarGen Fabric Programmer Manual [EB/OL].(2003-09-10).http//www.stargen.com.
[2] StarGen, Inc..SG2010 PCI to Starfabrie Bridge Data Sheet [EB/OL].(2003-08-12).http://www.stargen.com.
[3] StarGen, Inc..SG1010 Starfabrie Switch Data Sheet[EB/ OL].(2003-08-22).http//www.stargen.com.
10.3969/j.issn.1001-8972.2012.13.057