秦 娟 姬葉華
中國電子科技集團公司第三十二研究所
近年來,隨著信息系統在軍用惡劣環境下應用的復雜性和質量要求的不斷提高,計算機技術已向小型化、高集成度、高可用、低功耗高環保的設計方向發展,這樣就給了像CPLD 和FPGA 這樣的可編程邏輯器件極大的用武之地,PLD 的設計靈活性和資源豐富性,不僅使得整個系統物理空間精簡緊湊,而且提高了整個系統的可靠性,實現了系統的軟硬件一體化。本文結合一個計算機系統,簡單介紹CPLD 在該熱備份系統中的切換設計和實現。
隨著計算機信息系統的深入發展和廣泛應用,需要的功能越來越多,用途也越來越多樣化,帶來的設計實現上的復雜性也不斷提高。為適應當今信息系統軍用惡劣環境,實現用戶對高性能、高可靠、高可用、抗惡劣環境的計算機信息系統需求,保證系統任務工作的連續性和實時性,盡可能地把因硬件、軟件、人為造成的故障對工作的影響降低到最低程度,因此,在復雜系統中常常采用備份方式進行工作。在計算機信息系統中,常用的備份方式有熱備份和冷備份兩種。熱備份工作方式可以理解成在線備份,即當前主系統對外提供支持服務而備份系統空轉待命,一旦主系統出現故障,備份系統快速接管,以保證任務遷移的連續性和實行性。冷備份工作方式可以理解為離線備份,即當前主系統正常工作對外提供支持服務而備份系統不工作,對任務實時性要求不高的系統來說,冷備份具有簡單易操作的特點。
本文基于一個通用計算機雙系統,結合可編程邏輯器件CPLD,介紹熱備份切換功能的硬件設計和實現。
雙機熱備份系統就是在一個計算機信息系統中提供主備雙機,在系統正常情況下,主機作為工作機為信息系統提供支持,備份機則監視工作機的運行情況(工作機也同時監視備份機是否正常,有時備份機因某種原因出現異常,工作機可盡早通知操作人員解決,確保下次切換的可靠性)。當工作機出現異常,無法支持信息系統運行時,備份機則主動接管工作機的工作,繼續支持信息系統的運行,使得信息系統能夠不間斷地運行,確保了系統的穩定性、高可靠性和可用性。
通用計算機熱備份系統由主系統、備系統構成。主系統由1 個處理器模塊和1 個電源模塊組成,備系統由1 個處理器模塊和1 個電源模塊組成,主備系統對外提供一致的硬件接口,包括網絡、USB、串口等。系統模塊安裝在一塊主、備物理隔離的背板上,主備系統的健康狀態信號、切換控制信號等通過背板互連,并引入各自處理器模塊的可編程邏輯器件CPLD 中進行控制設計。系統框圖如圖1所示。
該雙機熱備份系統中的切換是通過軟件自動切換和按鈕手動切換兩種方式來操作實現的,軟件自動切換實現從主系統到備系統的切換,按鈕手動切換實現從備系統到主系統的切換,如圖2 所示。

圖1 雙機熱備份系統框圖

圖2 系統切換方式

圖3 軟件切換流程
對于軟件實現的由主系統到備系統的切換,是當檢測軟件檢測到主系統發生故障時,通過設置主備系統之間互連的控制信號,啟動切換流程,實現主備之間的切換。切換流程圖見圖3,說明如下:
主系統發生故障;
主系統硬件平臺設置健康狀態信號異常;
備系統獲知主系統健康狀態信號異常時通知備系統軟件;
備系統軟件設置切換使能信號有效;
主系統硬件平臺收到切換使能信號后完成對外接口的關閉,備系統則完成硬件資源的啟用和主系統相應任務的加載運行;
切換完成。
對于按鈕實現的備系統到主系統的切換,是整個系統檢測到按鈕輸入信號后,主備系統對各自的軟硬件資源進行切換的操作實現。為優化系統的工作狀態,簡化操作,設定按鈕切換優先級最高,即啟動按鈕切換后,在系統重啟或復位前不可再進行軟件自動切換操作。按鈕切換的流程圖見圖4,說明如下:
主、備系統收到按鈕切換信號有效,進入切換流程;
軟件設置主系統加載當前任務,硬件平臺完成對外接口的切換;
切換完成。
根據系統切換方案,軟件檢測故障,采用CPLD 判斷并設置硬件平臺之間的切換互連控制信號,系統之間正確有效獲取當前狀態,從而指揮系統完成軟硬件資源的切換工作,保證系統的連續性和高可用性。
本系統中CPLD 可編程邏輯器件選用ALTERA 公司的EPM2210F324 芯 片。EPM2210F324 是MAX II 系 列中的高端產品,封裝是324-pin 的FBGA 芯片,它的資源情況如下表1 所示。

圖4 按鈕切換流程圖

表1 CPLD 資源參數表
EPM2210F324 高性能可編程邏輯器件主要特性如下:
提供快速傳播延遲和時鐘到輸出時間;
每邏輯陣列模塊(LAB)提供4 個全局時鐘;
多達8 個UFM Kbits 非易失性存儲;
IO 引腳支持多種電平;
支持IEEE 1149.1 標準JTAG 接口;
接口兼容32 位/66MHz PCI 總線;
Pin-pin 的最小延時可達7ns。
在本系統中,充分利用可編程邏輯器件的豐富資源和編程設計的靈活性,實現健康狀態信號的采集、判斷以及切換使能信號的控制。
下面結合當出現總線故障時,如何對寄存器狀態進行讀寫操作,完成狀態和信息的上報互傳功能。
設計時為標識切換方式、健康狀態信號組以及切換使能信號組,在CPLD 中定義一個8 位的寄存器,寄存器的每一位即可對應相應信號狀態。例如下面的定義語句。


寄存器需要在系統復位時賦初始值,該初始值按照正常系統設定為0x2C,約定寄存器地址偏移為0x10000。設定有主、備電源提供給處理器模塊的健康狀態信號M_Power_sta、B_Power_sta,備系統輸出到主系統的切換使能信號Sys_wk 和主系統輸出到備系統的狀態信號sys_status,提供一組8 位的數據總線data 對寄存器進行讀寫操作,通過Master_back 輸入信號對處理器模塊的位置進行主備系統識別,定義一個But_Switch 表示按鈕輸入信號。CPLD 切換功能程序如下:


從上面的代碼可以看出,當軟件檢測工作系統出現故障時,就設置健康狀態寄存器中的相應位,CPLD 通過查看健康狀態寄存器的狀態位查看系統是否異常,發現異常時則通過硬件平臺設置系統狀態信號,通知備份系統,備份系統由軟件判斷是否需要切換,通過軟件設置切換使能信號即系統有效信號后,該信號傳遞到主系統中,完成切換信息的交互,控制實現主備系統軟硬件資源的備份切換。
通過對系統中切換流程的分析和CPLD 內系統狀態和信息上報互傳的切換設計,實現了一個基本的系統雙機熱備份切換功能,其中CPLD 的運用,就像畫龍點睛之筆,讓系統的輕量化、高可靠、高可用硬件設計變得更加輕便靈活。