梅 勇,袁 強(qiáng),秦友倫
(中國兵器工業(yè)第58研究所 四川 綿陽621000)
自主可控計(jì)算機(jī)雙機(jī)系統(tǒng)切換仲裁策略及實(shí)現(xiàn)
梅 勇,袁 強(qiáng),秦友倫
(中國兵器工業(yè)第58研究所 四川 綿陽621000)
為了實(shí)現(xiàn)自主可控計(jì)算機(jī)高可靠的需求,提出了一種雙機(jī)系統(tǒng)切換的設(shè)計(jì)方案,并完成雙機(jī)系統(tǒng)切換仲裁原理與策略及軟件實(shí)現(xiàn)。采用國產(chǎn)龍芯處理器2I(2J)+VxWorks+雙機(jī)熱備份方案,完成了主備選擇、數(shù)據(jù)及程序同步設(shè)計(jì)、故障檢測、雙機(jī)切換、雙機(jī)仲裁邏輯,實(shí)現(xiàn)了雙機(jī)仲裁、心跳、故障檢測等任務(wù)。實(shí)際應(yīng)用表明,該策略既實(shí)現(xiàn)了系統(tǒng)自主可控的需求,又達(dá)到了高國產(chǎn)化率、高可靠性要求。
自主可控計(jì)算機(jī);雙機(jī)切換;雙機(jī)仲裁邏輯;龍芯2J;VxWorks
自主可控計(jì)算機(jī)是國家重大項(xiàng)目中的關(guān)鍵設(shè)備,是發(fā)射控制的主控單元。主要通過通訊接口控制遠(yuǎn)端設(shè)備執(zhí)行特定功能,并對遠(yuǎn)端被控設(shè)備反饋的信息進(jìn)行分析、處理及結(jié)果顯示。該設(shè)備在整個(gè)系統(tǒng)中作用重大,在實(shí)際應(yīng)用中處于1年時(shí)間的超長加電連續(xù)工作狀態(tài),設(shè)備具有很高的任務(wù)可靠度[1-5]。
國家已經(jīng)提出了建立自主可控計(jì)算機(jī)平臺(tái)的要求,包括采用自主CPU、自主操作系統(tǒng)和自主數(shù)據(jù)庫等。通過多方面的調(diào)研及論證,采用國產(chǎn)龍芯處理器2I(2J)+VxWorks+雙機(jī)熱備份方案,既實(shí)現(xiàn)自主可控又能達(dá)到高國產(chǎn)化率、高可靠性要求。
自主可控計(jì)算機(jī)整機(jī)為一體化加固桌面機(jī),由2套配置完全相同的主板和電源板組成雙機(jī)熱備冗余系統(tǒng),雙機(jī)系統(tǒng)在工作中分別處于主機(jī)狀態(tài)、備機(jī)狀態(tài)。雙機(jī)工作狀態(tài)的仲裁切換由仲裁切換板上的仲裁切換邏輯電路實(shí)現(xiàn),仲裁切換邏輯電路檢測主、備機(jī)的心跳信號(hào)和故障報(bào)警信號(hào),如果主機(jī)的心跳信號(hào)超時(shí)或發(fā)出故障報(bào)警,立即裁決備機(jī)進(jìn)入主機(jī)狀態(tài),并同時(shí)控制相關(guān)接口設(shè)備切換。主備雙機(jī)之間通過兩路TTL電平標(biāo)準(zhǔn)的串行通道完成數(shù)據(jù)同步。雙機(jī)系統(tǒng)和仲裁切換板以及電源通過1塊無源底板實(shí)現(xiàn)系統(tǒng)連接。系統(tǒng)集成一塊液晶顯示屏和一套鍵盤鼠標(biāo)設(shè)備,另外提供一個(gè)VGA視頻接口,支持外接顯示[6-11]。監(jiān)控設(shè)備主控計(jì)算機(jī)系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)組成示意圖
2.1 主備選擇
主備選擇是指在多機(jī)冗余(包括雙機(jī))情況下,當(dāng)系統(tǒng)加電啟動(dòng)或主機(jī)崩潰后從多個(gè)冗余分機(jī)中選出一臺(tái)為系統(tǒng)的主機(jī)。主備選擇應(yīng)當(dāng)考慮到選擇出來的主機(jī)是冗余中當(dāng)前性能最優(yōu)的。由于系統(tǒng)使用的兩臺(tái)分機(jī),型號(hào)和資源配置完全一致,所運(yùn)行的軟件環(huán)境也是相同的,本系統(tǒng)采用競爭機(jī)制進(jìn)行主備選擇。即當(dāng)系統(tǒng)加電啟動(dòng),仲裁邏輯模塊先確定槽位“A”分機(jī)為主機(jī),如檢測到該分機(jī)心跳異常,如果槽位“B”正常,則裁決“B”分機(jī)為主機(jī)。在主機(jī)崩潰或發(fā)生故障后,仲裁邏輯模塊檢測到熱備機(jī)心跳信號(hào)正常,則裁決熱備機(jī)轉(zhuǎn)為主機(jī)。
2.2 數(shù)據(jù)及程序同步設(shè)計(jì)
整機(jī)系統(tǒng)主要通過以太網(wǎng)接口控制被測設(shè)備執(zhí)行特定功能,并對控制設(shè)備反饋的信息進(jìn)行分析、判斷及顯示。在系統(tǒng)中主要由主機(jī)負(fù)責(zé)與被測設(shè)備進(jìn)行數(shù)據(jù)交互,并將交互的數(shù)據(jù)通過主備機(jī)之間的TTL串行總線轉(zhuǎn)發(fā)給備機(jī)。備機(jī)完成數(shù)據(jù)保存以及應(yīng)用軟件同步,一旦主機(jī)出現(xiàn)故障,備機(jī)獲取主機(jī)權(quán)限后,將按照最后一次接收到的正確的控制命令和返回?cái)?shù)據(jù)順序往下執(zhí)行控制操作。系統(tǒng)雙機(jī)之間提供互為備份的兩個(gè)TTL串行通道作為數(shù)據(jù)同步通道。
2.3 故障檢測
故障檢測對于雙機(jī)熱備份系統(tǒng)是非常重要的保障機(jī)制。使用兩種方式來反應(yīng)系統(tǒng)是否存在故障,即心跳信號(hào)與故障信號(hào)。仲裁切換邏輯則一直檢測心跳信號(hào)與故障信號(hào)的狀態(tài),若發(fā)現(xiàn)異常則進(jìn)行相應(yīng)的切換、重啟或報(bào)警。其檢測、切換、重啟或報(bào)警邏輯框圖如圖2所示。
心跳信號(hào)的產(chǎn)生及作用:主、備機(jī)分別通過軟件產(chǎn)生(周期性方波信號(hào))心跳信號(hào),用于表征軟件工作正常,如軟件無異常的長時(shí)間的阻塞等待式操作,或操作系統(tǒng)工作正常(未死機(jī))。
故障信號(hào)的產(chǎn)生及作用:主、備機(jī)通過周期性任務(wù)檢測軟硬件的狀態(tài),用于表征硬件連接狀態(tài)。如網(wǎng)絡(luò)連接或USB連接斷開,則使故障信號(hào)有效。
系統(tǒng)仲裁主要通過“故障報(bào)警”和“心跳”組合判斷分機(jī)故障情況。
2.4 雙機(jī)切換
雙機(jī)切換設(shè)計(jì)主要是指雙工系統(tǒng)變成單工系統(tǒng)或單工系統(tǒng)變成雙工系統(tǒng),
1)切出
當(dāng)一個(gè)分機(jī)自檢出現(xiàn)輕度故障:“故障報(bào)警”信號(hào)輸出或“心跳”信號(hào)異常,仲裁電路檢測到分機(jī)“故障報(bào)警”或“心跳”異常,裁決系統(tǒng)另一分機(jī)成為主機(jī),系統(tǒng)由雙工變成單工狀態(tài),并控制接口切換電路進(jìn)行切換,同時(shí)作出故障恢復(fù)或故障報(bào)警提示。
切出時(shí)機(jī):某一個(gè)分機(jī)出現(xiàn)輕度故障(“故障報(bào)警”信號(hào)輸出或“心跳”信號(hào)異常);或接收到控制程序發(fā)出的切出命令。
圖2 故障檢測、切換、重啟、報(bào)警邏輯框圖
2)切入
當(dāng)一個(gè)分機(jī)修復(fù)完成后,加入到系統(tǒng)中,并且將系統(tǒng)狀態(tài)恢復(fù)到雙工的過程稱為切入,切入過程中最重要的是保證狀態(tài)同步的一致。雙機(jī)系統(tǒng)的切入操作分為兩個(gè)步驟進(jìn)行:狀態(tài)同步和備機(jī)加入。備機(jī)啟動(dòng)完成、自檢合格后,通過備用數(shù)據(jù)同步通道向主機(jī)發(fā)出數(shù)據(jù)同步“請求”,主機(jī)收到“請求”后,將到接收到“請求”時(shí)刻以前的一個(gè)操作周期內(nèi)的數(shù)據(jù)向請求機(jī)發(fā)送,并同步發(fā)送新產(chǎn)生的數(shù)據(jù)。當(dāng)數(shù)據(jù)同步完成,備機(jī)發(fā)出“心跳”脈沖,報(bào)告熱備機(jī)加入完成,系統(tǒng)進(jìn)入雙機(jī)熱備份狀態(tài),分機(jī)切入流程如圖3所示。
圖3 分機(jī)切入流程
2.5 雙機(jī)仲裁邏輯
仲裁邏輯電路為系統(tǒng)分機(jī)提供“心跳”和“故障報(bào)警”兩個(gè)IO輸入接口和一個(gè)“裁決”信號(hào)輸出接口?!靶奶睘橹芷谛盘?hào),是仲裁邏輯判別主備機(jī)存在及是否處于正常工作狀態(tài)的主要依據(jù),但鑒于系統(tǒng)開銷問題,“心跳”周期不可能無限小,因此在系統(tǒng)設(shè)計(jì)上增加“故障報(bào)警”的電平信號(hào),該信號(hào)可在檢測到故障時(shí)立即向仲裁發(fā)出故障報(bào)警,縮短從發(fā)生故障到切換的時(shí)間,增加切換效率。仲裁邏輯如圖4所示。
圖4 仲裁邏輯圖
軟件主要包含兩個(gè)部分:一個(gè)是用于啟動(dòng)的PMON引導(dǎo)程序,另一個(gè)是VxWorks 6.7系統(tǒng)。在系統(tǒng)上電后,首先由PMON初始化處理器,內(nèi)存、南橋控制器等。然后拷貝VxWorks鏡像到內(nèi)存,跳轉(zhuǎn)到相應(yīng)地址后開始進(jìn)入VxWorks系統(tǒng)啟動(dòng)過程,之后VxWorks系統(tǒng)將負(fù)責(zé)初始化所有硬件并加載硬件驅(qū)動(dòng),加載VxWorks的系統(tǒng)內(nèi)核。最后執(zhí)行位于系統(tǒng)內(nèi)核層級(jí)的雙機(jī)仲裁、心跳、故障檢測等任務(wù),完成全部的啟動(dòng)流程[12-15]。
3.1 啟動(dòng)流程
基于龍芯2G+的主控制板的BSP包含兩個(gè)部分:一個(gè)是用于啟動(dòng)的PMON引導(dǎo)程序,另一個(gè)是VxWorks 6.7的BSP支持包。在系統(tǒng)上電后,首先由PMON初始化龍芯2G+處理器,內(nèi)存、南北橋控制器等。然后拷貝VxWorks鏡像到內(nèi)存,跳轉(zhuǎn)到相應(yīng)地址后開始進(jìn)入VxWorks系統(tǒng)啟動(dòng)過程,之后VxWorks系統(tǒng)將負(fù)責(zé)初始化所有硬件并加載硬件驅(qū)動(dòng),加載VxWorks的系統(tǒng)內(nèi)核。最后執(zhí)行系統(tǒng)內(nèi)核任務(wù)及用戶自定義任務(wù)后,完成BSP的全部啟動(dòng)流程。啟動(dòng)流程圖如圖5所示。
圖5 啟動(dòng)流程圖
3.2 心跳產(chǎn)生模塊
心跳模塊采用看門狗定時(shí)機(jī)制,首先將判斷當(dāng)前軟件及硬件狀態(tài)寄存器是否有故障狀態(tài)存在,若存在故障,則此次不會(huì)觸發(fā)心跳,而是觸發(fā)仲裁邏輯,若不存在故障,則向GPIO周期性輸出高或低電平模擬心跳行為,該模塊作為系統(tǒng)底層內(nèi)部模塊運(yùn)行使用。心跳產(chǎn)生邏輯如圖6所示。
圖6 心跳產(chǎn)生邏輯
3.3 仲裁模塊
仲裁模塊主要是為上層應(yīng)用提供仲裁切換接口,通過該接口可實(shí)現(xiàn)切換功能的人工干預(yù)。提供接口SWAI_SwitchDevice。同時(shí)仲裁模塊還對仲裁板發(fā)出的仲裁完成信號(hào)進(jìn)行響應(yīng),讀取仲裁狀態(tài)位,判斷當(dāng)前系統(tǒng)為工作機(jī)或是備機(jī),從而通知上層應(yīng)用應(yīng)該進(jìn)入何種狀態(tài)。仲裁邏輯如圖7所示。
圖7 仲裁邏輯
自主可控計(jì)算機(jī)采用國產(chǎn)龍芯處理器2I(2J)+ VxWorks+雙機(jī)熱備份方案,完成了主備選擇、數(shù)據(jù)及程序同步設(shè)計(jì)、故障檢測、雙機(jī)切換、雙機(jī)仲裁邏輯,實(shí)現(xiàn)了雙機(jī)仲裁、心跳、故障檢測等任務(wù),既實(shí)現(xiàn)自主可控又能達(dá)到高國產(chǎn)化率、高可靠性要求。
[1]吳蓬勃.龍芯3A處理器在某軍用系統(tǒng)上的應(yīng)用研究[J].電子技術(shù),2014(2):32-36.
[2]齊勁松,郭江宇,吳玉生,等.基于龍芯3A+2H的火控計(jì)算機(jī)系統(tǒng)設(shè)計(jì)[J].測控技術(shù),2014,33(7): 85-87.
[3]胡海根.軟硬結(jié)合打造自主可控產(chǎn)業(yè)鏈[J].航空制造技術(shù),2014(18):96-96.
[4]孫大東,楊帆.自主可控信息系統(tǒng)軍民融合式發(fā)展的探索與實(shí)踐[J].中國軍轉(zhuǎn)民,2015(2):32-33.
[5]秦磊華,譚志虎.信息產(chǎn)業(yè)自主可控人才培養(yǎng)問題研究[J].科技管理研究,2016,36(1):37-41.
[6]周群.基于龍芯3A的艦艇用計(jì)算機(jī)主模塊的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:中國科學(xué)院大學(xué)(工程管理與信息技術(shù)學(xué)院),2014.
[7]權(quán)天.基于龍芯3A處理器的嵌入式系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2014.
[8]賈穎,尚慧萍,鄭慧英.測控中心計(jì)算機(jī)系統(tǒng)的自主可控技術(shù)研究 [J].飛行器測控學(xué)報(bào),2015(2): 115-119.
[9]張小可.基于XTX模塊的低輻射加固筆記本的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:中國科學(xué)院大學(xué)(工程管理與信息技術(shù)學(xué)院),2015.
[10]潘巖.加固便攜計(jì)算機(jī)主板設(shè)計(jì)與實(shí)現(xiàn) [D].濟(jì)南:山東大學(xué),2014.
[11]龔俊.基于龍芯3A的Linux系統(tǒng)網(wǎng)絡(luò)設(shè)備性能優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2015.
[12]袁俊卿.基于龍芯3A2H平臺(tái)VxWorks板級(jí)支持包的移植與優(yōu)化[D].北京:中國科學(xué)院大學(xué)(工程管理與信息技術(shù)學(xué)院),2015.
[13]夏豪駿,王海瑞.基于龍芯平臺(tái)的J-Link協(xié)議移植實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2014,40(2):267-270.
[14]史毅龍.基于“龍芯”計(jì)算機(jī)平臺(tái)Vxworks操作系統(tǒng)研究[D].北京:中國科學(xué)院研究生院(空間科學(xué)與應(yīng)用研究中心),2015.
[15]周潔.基于VxWorks車載控制設(shè)備基礎(chǔ)軟件平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:西南交通大學(xué),2014.
Double machine system switching arbitration strategy and implementation of independently controllable computer
MEI Yong,YUAN Qiang,QIN You-lun
(N0.58 Research Institute of China Ordnance Industries,Mianyang 621000,China)
In order to satisfy the requirement of independently controllable computer high reliability,the design of double machine system switching is designed in this paper,which complete double machine system switching of arbitration principle and strategy,the software implementation.The system uses domestic godson processor2I(2J)+VxWorks+double-machine hot backup plan,completed the main machine selection,data and program synchronous design,fault detection,double machine system switching,double machine arbitration logic,has realized the double machine arbitration,heart rate,fault detection etc.Actual application shows that the system to achieve both the requirement of independently controllable,and reached high domestic rate,high reliability requirements.
independently controllable computer;double machine system switching;double machine arbitration logic;godson processor2J;VxWorks
TN702
:A
:1674-6236(2017)08-0183-04
2016-09-16稿件編號(hào):201609151
梅 勇(1979—),男,湖北武漢人,副總工程師。研究方向:嵌入式系統(tǒng)研究。