秦 娟 姬葉華
中國電子科技集團公司第三十二研究所
近年來,隨著信息系統(tǒng)在軍用惡劣環(huán)境下應(yīng)用的復(fù)雜性和質(zhì)量要求的不斷提高,計算機技術(shù)已向小型化、高集成度、高可用、低功耗高環(huán)保的設(shè)計方向發(fā)展,這樣就給了像CPLD 和FPGA 這樣的可編程邏輯器件極大的用武之地,PLD 的設(shè)計靈活性和資源豐富性,不僅使得整個系統(tǒng)物理空間精簡緊湊,而且提高了整個系統(tǒng)的可靠性,實現(xiàn)了系統(tǒng)的軟硬件一體化。本文結(jié)合一個計算機系統(tǒng),簡單介紹CPLD 在該熱備份系統(tǒng)中的切換設(shè)計和實現(xiàn)。
隨著計算機信息系統(tǒng)的深入發(fā)展和廣泛應(yīng)用,需要的功能越來越多,用途也越來越多樣化,帶來的設(shè)計實現(xiàn)上的復(fù)雜性也不斷提高。為適應(yīng)當(dāng)今信息系統(tǒng)軍用惡劣環(huán)境,實現(xiàn)用戶對高性能、高可靠、高可用、抗惡劣環(huán)境的計算機信息系統(tǒng)需求,保證系統(tǒng)任務(wù)工作的連續(xù)性和實時性,盡可能地把因硬件、軟件、人為造成的故障對工作的影響降低到最低程度,因此,在復(fù)雜系統(tǒng)中常常采用備份方式進行工作。在計算機信息系統(tǒng)中,常用的備份方式有熱備份和冷備份兩種。熱備份工作方式可以理解成在線備份,即當(dāng)前主系統(tǒng)對外提供支持服務(wù)而備份系統(tǒng)空轉(zhuǎn)待命,一旦主系統(tǒng)出現(xiàn)故障,備份系統(tǒng)快速接管,以保證任務(wù)遷移的連續(xù)性和實行性。冷備份工作方式可以理解為離線備份,即當(dāng)前主系統(tǒng)正常工作對外提供支持服務(wù)而備份系統(tǒng)不工作,對任務(wù)實時性要求不高的系統(tǒng)來說,冷備份具有簡單易操作的特點。
本文基于一個通用計算機雙系統(tǒng),結(jié)合可編程邏輯器件CPLD,介紹熱備份切換功能的硬件設(shè)計和實現(xiàn)。
雙機熱備份系統(tǒng)就是在一個計算機信息系統(tǒng)中提供主備雙機,在系統(tǒng)正常情況下,主機作為工作機為信息系統(tǒng)提供支持,備份機則監(jiān)視工作機的運行情況(工作機也同時監(jiān)視備份機是否正常,有時備份機因某種原因出現(xiàn)異常,工作機可盡早通知操作人員解決,確保下次切換的可靠性)。當(dāng)工作機出現(xiàn)異常,無法支持信息系統(tǒng)運行時,備份機則主動接管工作機的工作,繼續(xù)支持信息系統(tǒng)的運行,使得信息系統(tǒng)能夠不間斷地運行,確保了系統(tǒng)的穩(wěn)定性、高可靠性和可用性。
通用計算機熱備份系統(tǒng)由主系統(tǒng)、備系統(tǒng)構(gòu)成。主系統(tǒng)由1 個處理器模塊和1 個電源模塊組成,備系統(tǒng)由1 個處理器模塊和1 個電源模塊組成,主備系統(tǒng)對外提供一致的硬件接口,包括網(wǎng)絡(luò)、USB、串口等。系統(tǒng)模塊安裝在一塊主、備物理隔離的背板上,主備系統(tǒng)的健康狀態(tài)信號、切換控制信號等通過背板互連,并引入各自處理器模塊的可編程邏輯器件CPLD 中進行控制設(shè)計。系統(tǒng)框圖如圖1所示。
該雙機熱備份系統(tǒng)中的切換是通過軟件自動切換和按鈕手動切換兩種方式來操作實現(xiàn)的,軟件自動切換實現(xiàn)從主系統(tǒng)到備系統(tǒng)的切換,按鈕手動切換實現(xiàn)從備系統(tǒng)到主系統(tǒng)的切換,如圖2 所示。
圖1 雙機熱備份系統(tǒng)框圖
圖2 系統(tǒng)切換方式
圖3 軟件切換流程
對于軟件實現(xiàn)的由主系統(tǒng)到備系統(tǒng)的切換,是當(dāng)檢測軟件檢測到主系統(tǒng)發(fā)生故障時,通過設(shè)置主備系統(tǒng)之間互連的控制信號,啟動切換流程,實現(xiàn)主備之間的切換。切換流程圖見圖3,說明如下:
主系統(tǒng)發(fā)生故障;
主系統(tǒng)硬件平臺設(shè)置健康狀態(tài)信號異常;
備系統(tǒng)獲知主系統(tǒng)健康狀態(tài)信號異常時通知備系統(tǒng)軟件;
備系統(tǒng)軟件設(shè)置切換使能信號有效;
主系統(tǒng)硬件平臺收到切換使能信號后完成對外接口的關(guān)閉,備系統(tǒng)則完成硬件資源的啟用和主系統(tǒng)相應(yīng)任務(wù)的加載運行;
切換完成。
對于按鈕實現(xiàn)的備系統(tǒng)到主系統(tǒng)的切換,是整個系統(tǒng)檢測到按鈕輸入信號后,主備系統(tǒng)對各自的軟硬件資源進行切換的操作實現(xiàn)。為優(yōu)化系統(tǒng)的工作狀態(tài),簡化操作,設(shè)定按鈕切換優(yōu)先級最高,即啟動按鈕切換后,在系統(tǒng)重啟或復(fù)位前不可再進行軟件自動切換操作。按鈕切換的流程圖見圖4,說明如下:
主、備系統(tǒng)收到按鈕切換信號有效,進入切換流程;
軟件設(shè)置主系統(tǒng)加載當(dāng)前任務(wù),硬件平臺完成對外接口的切換;
切換完成。
根據(jù)系統(tǒng)切換方案,軟件檢測故障,采用CPLD 判斷并設(shè)置硬件平臺之間的切換互連控制信號,系統(tǒng)之間正確有效獲取當(dāng)前狀態(tài),從而指揮系統(tǒng)完成軟硬件資源的切換工作,保證系統(tǒng)的連續(xù)性和高可用性。
本系統(tǒng)中CPLD 可編程邏輯器件選用ALTERA 公司的EPM2210F324 芯 片。EPM2210F324 是MAX II 系 列中的高端產(chǎn)品,封裝是324-pin 的FBGA 芯片,它的資源情況如下表1 所示。
圖4 按鈕切換流程圖
表1 CPLD 資源參數(shù)表
EPM2210F324 高性能可編程邏輯器件主要特性如下:
提供快速傳播延遲和時鐘到輸出時間;
每邏輯陣列模塊(LAB)提供4 個全局時鐘;
多達8 個UFM Kbits 非易失性存儲;
IO 引腳支持多種電平;
支持IEEE 1149.1 標(biāo)準(zhǔn)JTAG 接口;
接口兼容32 位/66MHz PCI 總線;
Pin-pin 的最小延時可達7ns。
在本系統(tǒng)中,充分利用可編程邏輯器件的豐富資源和編程設(shè)計的靈活性,實現(xiàn)健康狀態(tài)信號的采集、判斷以及切換使能信號的控制。
下面結(jié)合當(dāng)出現(xiàn)總線故障時,如何對寄存器狀態(tài)進行讀寫操作,完成狀態(tài)和信息的上報互傳功能。
設(shè)計時為標(biāo)識切換方式、健康狀態(tài)信號組以及切換使能信號組,在CPLD 中定義一個8 位的寄存器,寄存器的每一位即可對應(yīng)相應(yīng)信號狀態(tài)。例如下面的定義語句。
寄存器需要在系統(tǒng)復(fù)位時賦初始值,該初始值按照正常系統(tǒng)設(shè)定為0x2C,約定寄存器地址偏移為0x10000。設(shè)定有主、備電源提供給處理器模塊的健康狀態(tài)信號M_Power_sta、B_Power_sta,備系統(tǒng)輸出到主系統(tǒng)的切換使能信號Sys_wk 和主系統(tǒng)輸出到備系統(tǒng)的狀態(tài)信號sys_status,提供一組8 位的數(shù)據(jù)總線data 對寄存器進行讀寫操作,通過Master_back 輸入信號對處理器模塊的位置進行主備系統(tǒng)識別,定義一個But_Switch 表示按鈕輸入信號。CPLD 切換功能程序如下:
從上面的代碼可以看出,當(dāng)軟件檢測工作系統(tǒng)出現(xiàn)故障時,就設(shè)置健康狀態(tài)寄存器中的相應(yīng)位,CPLD 通過查看健康狀態(tài)寄存器的狀態(tài)位查看系統(tǒng)是否異常,發(fā)現(xiàn)異常時則通過硬件平臺設(shè)置系統(tǒng)狀態(tài)信號,通知備份系統(tǒng),備份系統(tǒng)由軟件判斷是否需要切換,通過軟件設(shè)置切換使能信號即系統(tǒng)有效信號后,該信號傳遞到主系統(tǒng)中,完成切換信息的交互,控制實現(xiàn)主備系統(tǒng)軟硬件資源的備份切換。
通過對系統(tǒng)中切換流程的分析和CPLD 內(nèi)系統(tǒng)狀態(tài)和信息上報互傳的切換設(shè)計,實現(xiàn)了一個基本的系統(tǒng)雙機熱備份切換功能,其中CPLD 的運用,就像畫龍點睛之筆,讓系統(tǒng)的輕量化、高可靠、高可用硬件設(shè)計變得更加輕便靈活。