雙主機(jī)冗余顯示系統(tǒng)的分析和設(shè)計
冗余系統(tǒng)結(jié)構(gòu)
冗余顯示系統(tǒng)采用了雙主機(jī)備份系統(tǒng),一個主機(jī)在工作時候出現(xiàn)致命問題不能恢復(fù)時候,則由另外一臺主機(jī)接管其所有的業(yè)務(wù)。系統(tǒng)的結(jié)構(gòu)采用目前通用的工業(yè)計算機(jī)平臺PICMG1.3規(guī)范,將一塊PEX8696置于系統(tǒng)底板中,同時在底板設(shè)計2個符合PICMG1.3規(guī)范的插槽和16個PCIe×4的插槽。視頻輸入卡可以兼容多種視頻信號的輸入,包括了RGB、Video等信號;視頻輸出采用GPU卡進(jìn)行硬件加速等各種圖象處理,支持多通道輸出。系統(tǒng)的架構(gòu)框圖如圖2,采用了目前常用的PCIe擴(kuò)展技術(shù),將PCIe總線擴(kuò)展出16個×4的PCIe通道,其中8個×4通道供視頻數(shù)據(jù)輸入用,8個×4通道供GPU(圖像處理單元)處理顯示用。上行端口采用了兩個×16的PCIe通道連接了HOST1和HOST2,兩個主機(jī)通過橋芯片PEX8696的門鈴寄存器互通信息。當(dāng)HOST1出現(xiàn)致命錯誤不能正常工作時候,可以在程序中預(yù)先設(shè)置流程,通過門鈴寄存器將此信息傳遞到HOST2;HOST2接收到此信息后,啟動復(fù)位操作,對橋芯片進(jìn)行重新配置,屆時原來由HOST1控制的所有視頻輸入和GPU卡等將通過通道的重新配置進(jìn)入HOST2的監(jiān)管,同時也就實(shí)現(xiàn)了系統(tǒng)的高可靠性。
主機(jī)的狀態(tài)轉(zhuǎn)移圖見圖3[3]。任一主機(jī)上電時,進(jìn)人競爭及檢測狀態(tài),競爭原則是先啟動者為主機(jī);后啟動者為備機(jī)。狀態(tài)轉(zhuǎn)換方法包括:
(1)通過自檢,若主機(jī)發(fā)現(xiàn)自身有故障,在心跳寄存器和備機(jī)正常的條件下,經(jīng)過門鈴寄存器通知備機(jī)升為主機(jī),本身轉(zhuǎn)人故障狀態(tài);
(2)若主機(jī)發(fā)生故障,不能在規(guī)定時間內(nèi)向備機(jī)發(fā)心跳信息及有關(guān)信息,備機(jī)經(jīng)核實(shí)主機(jī)已放棄主用狀態(tài)條件下,自動轉(zhuǎn)入主機(jī)狀態(tài);
(3)備機(jī)自檢發(fā)現(xiàn)故障,轉(zhuǎn)入故障狀態(tài);
(4)進(jìn)入故障狀態(tài)的設(shè)備給出報警信息,經(jīng)修復(fù)后進(jìn)入再次競爭狀態(tài)。
PEX8696中有一些比較特殊的寄存器功能,包括了門鈴寄存器和心跳消息。門鈴寄存器被用來從非透明橋的一邊向另一邊發(fā)送中斷。非透明橋的兩邊一般都有軟件可以控制的中斷請求寄存器和相應(yīng)的中斷屏蔽寄存器。這些寄存器在非透明橋的兩邊都是可以被訪問的。心跳消息一般來自主設(shè)備端往從設(shè)備端的主機(jī),可用來指示它還活著。從設(shè)備主機(jī)可監(jiān)控主設(shè)備主機(jī)的狀態(tài),如果發(fā)現(xiàn)出錯,它就可以采取一些必要的措施。通過門鈴寄存器可以傳送心跳消息。當(dāng)從設(shè)備主機(jī)沒有收到一定數(shù)量預(yù)先規(guī)定好的心跳消息時,就可以認(rèn)為主設(shè)備的主機(jī)出錯了。本系統(tǒng)中就是采用了上述寄存器的特殊功能來實(shí)現(xiàn)對主機(jī)的監(jiān)控和工作狀態(tài)的轉(zhuǎn)換的,下面將對系統(tǒng)出現(xiàn)故障后,主機(jī)2接管主機(jī)1的過程進(jìn)行詳細(xì)描述。
當(dāng)主機(jī)1工作時候,主機(jī)2處于待機(jī)模式。兩個主機(jī)之間通過心跳消息通信。正常工作過程中,主機(jī)處理器完成所有的正常職責(zé),因?yàn)樗鲃庸芾硐到y(tǒng)。此外,它還需要定時發(fā)送心跳消息給備份處理器。心跳消息是發(fā)起消息的處理器健康與否的標(biāo)志。心跳消息在該系統(tǒng)設(shè)計中同時也保護(hù)了一些特定的數(shù)據(jù),以減少誤報警的可能性。心跳消息承擔(dān)了為備份處理器驗(yàn)證主機(jī)處理器功能是否正常的工作,同時,這一數(shù)據(jù)也提供所有外圍設(shè)備的最新活動和狀態(tài)。如果備份主機(jī)不能及時地接收到心跳消息[4],它將開始承擔(dān)控制。首先,它將主機(jī)1中的端口降為下行端口,以防止已經(jīng)發(fā)送故障的處理器與系統(tǒng)的其他部分交互。該變換是通過使用非透明橋端口中的BAR(基地址寄存器 )提供的寄存器CSR(空間配置寄存器)存儲器進(jìn)行地址映射[5],以重新編程交換器的CSR來完成;接著,需要將主機(jī)2的端口配置成上行端口,把主機(jī)1的端口配置成非透明橋端口,同時拆除主機(jī)1的鏈路;然后,主機(jī)2通過操作橋控制寄存器,對原理主機(jī)1中的設(shè)備進(jìn)行重啟操作;最后,在清除了隊(duì)列中遺留的所有事務(wù)或者由于主機(jī)1發(fā)生故障而遺留的非完成狀態(tài)之后,主機(jī)2重新對所有設(shè)備進(jìn)行枚舉,經(jīng)過枚舉后,系統(tǒng)開始正常運(yùn)行。
結(jié)語
本文主要針對目前在醫(yī)療、監(jiān)控等領(lǐng)域的高可靠性高清大屏的應(yīng)用,專門設(shè)計了一套雙主機(jī)冗余系統(tǒng)。該系統(tǒng)采用了目前最新的PCIe總線技術(shù),結(jié)合PLX公司提供高靈活性的透明橋芯片以及非透明橋技術(shù),在不改變常規(guī)視頻顯示系統(tǒng)內(nèi)部設(shè)計的情況下,使得系統(tǒng)的穩(wěn)定性大幅度提高,系統(tǒng)故障率降低到原來的50%;同時該系統(tǒng)采用了具有96個PCIe通道的橋芯片,大大減少了橋芯片的使用,降低了系統(tǒng)的成本。
評論