雙主機(jī)冗余顯示系統(tǒng)的分析和設(shè)計(jì)
摘要:根據(jù)大屏幕行業(yè)應(yīng)用的高可靠性要求,設(shè)計(jì)了雙主機(jī)冗余視頻顯示方案。利用目前最新的PCI Exrpess總線技術(shù),在橋芯片PEX8696的基礎(chǔ)上搭建雙主機(jī)通信通道,通過非透明橋的心跳寄存器傳送主機(jī)的信息,從而實(shí)現(xiàn)了從機(jī)對(duì)主機(jī)工作監(jiān)控的功能,達(dá)到高可靠性的要求。在系統(tǒng)啟動(dòng)初期,針對(duì)可能出現(xiàn)的情況,設(shè)計(jì)了系統(tǒng)狀態(tài)轉(zhuǎn)換機(jī)制,保證冗余系統(tǒng)的正常啟動(dòng)和運(yùn)行。分析結(jié)果表明,該視頻冗余的設(shè)計(jì)機(jī)制合理,系統(tǒng)中各狀態(tài)轉(zhuǎn)換安全,大大提高了系統(tǒng)運(yùn)行的可靠性。
關(guān)鍵詞:冗余;非透明橋;視頻顯示;PCI Express;PEX8696
冗余系統(tǒng)的重要性
近年來,隨著國(guó)內(nèi)經(jīng)濟(jì)的穩(wěn)步發(fā)展,國(guó)內(nèi)各領(lǐng)域各行業(yè)都非常重視信息化建設(shè),對(duì)信息的可視化需求也急劇擴(kuò)大,特別是一些監(jiān)控中心、指揮中心、調(diào)度中心等重要場(chǎng)所的需要,人們對(duì)于觀看的顯示圖像尺寸的要求越來越大,對(duì)顯示圖像提供的信息量要求越來越多,人們要求可以在一個(gè)超大尺寸的屏幕上同時(shí)顯示多個(gè)不同信息的圖像和文字信息,要求大屏幕的各個(gè)單元顯示的圖像能夠?qū)崿F(xiàn)無縫連接。隨著大屏幕拼墻應(yīng)用領(lǐng)域的不斷推廣,在醫(yī)療影像、指揮調(diào)度中心等領(lǐng)域的應(yīng)用產(chǎn)生了高可靠性的需求,而且這種需求非常迫切。如在臨床手術(shù)中,醫(yī)療影像的中斷可能會(huì)威脅到一個(gè)病人的生命,這些需求促使人們開發(fā)高可靠性視頻顯示系統(tǒng)。
系統(tǒng)的可靠性體現(xiàn)在很多方面,包括了元器件的選擇、降額設(shè)計(jì)、冗余設(shè)計(jì)等。冗余系統(tǒng)設(shè)計(jì)即為了保險(xiǎn)起見,采取兩套同樣配置的硬件、軟件,目的是在其中一套系統(tǒng)出現(xiàn)故障時(shí),另一套系統(tǒng)能立即啟動(dòng),并代替工作,這好比演員的替身,兩套完整好用的系統(tǒng)也許單獨(dú)運(yùn)行的故障率很高,但采取冗余措施后,在不改變內(nèi)部設(shè)計(jì)的情況下,這套系統(tǒng)的穩(wěn)定性立即可以大幅度提高!假如單獨(dú)系統(tǒng)的故障率為50%,而冗余系統(tǒng)馬上可以將故障率降低到25%。本文主要從主機(jī)冗余的角度考慮,目的是實(shí)現(xiàn)一個(gè)具有備份功能的視頻顯示系統(tǒng)。系統(tǒng)將采用PCI Express協(xié)議和透明橋技術(shù)實(shí)現(xiàn)雙主機(jī)冗余設(shè)計(jì);利用PLX公司的橋接芯片PEX 8696將雙主機(jī)連接起來實(shí)現(xiàn)主機(jī)備份功能。
PCI Express總線
PCI Express是新一代的總線接口。早在2001年的春季,英特爾公司就提出了要用新一代的技術(shù)取代PCI總線和多種芯片的內(nèi)部連接,并稱之為第三代I/O總線技術(shù)。它徹底變革原來的PCI總線的并行技術(shù),克服PCI總線在系統(tǒng)帶寬、傳輸速度等方面的缺陷。它的優(yōu)越性能滿足了計(jì)算機(jī)和通信領(lǐng)域時(shí)于I/O數(shù)據(jù)傳輸高速度和高可靠性的要求。
與原有的PCI總線相比較,PCI Express總線具有以下特點(diǎn)。
(1)在數(shù)據(jù)傳輸模式上,PCIe總線采用雙通道串行傳輸模式。一條PCIe通道包含2對(duì)LVDS差分線對(duì),一對(duì)負(fù)責(zé)發(fā)送,一對(duì)負(fù)責(zé)接收,目前PCIe 2.0單向的數(shù)據(jù)率為5Gbit/s。
(2)與PCI總線上所有沒備共享一條總線不同,PCIe總線采用點(diǎn)對(duì)點(diǎn)技術(shù),能夠?yàn)橄到y(tǒng)內(nèi)的所有設(shè)備分配獨(dú)立的通道資源,充分保障設(shè)備的帶寬,提高數(shù)據(jù)傳輸率,同時(shí)可以實(shí)現(xiàn)多個(gè)設(shè)備并行工作。
(3)具有很好的靈活性,一個(gè)PCIe物理連接可以根據(jù)實(shí)際需求配置成×l、×2、×4,×8、×16、×32個(gè)并行的數(shù)據(jù)通道,以滿足不同設(shè)備之間通信帶寬的要求。
(4)在軟件層與PCI總線完全兼容。原有的總線的驅(qū)動(dòng)程序可以完全移植到PCIe總線架構(gòu)的系統(tǒng)中。
(5)串行連接采用自時(shí)鐘技術(shù),時(shí)鐘內(nèi)嵌于串行數(shù)據(jù)的8bit/10bit編碼中,可實(shí)現(xiàn)數(shù)據(jù)傳輸率的自適應(yīng)調(diào)整。
(6)串行數(shù)據(jù)以數(shù)據(jù)包的形式進(jìn)行傳輸,保障了數(shù)據(jù)傳輸?shù)耐暾院涂煽啃浴?/p>
在大屏幕拼接顯示領(lǐng)域,由于顯示單元數(shù)目比較多,需要同時(shí)接入多個(gè)數(shù)據(jù)卡,PCIe總線擴(kuò)展技術(shù)顯得非常關(guān)鍵。利用透明橋芯片,可以非常方便地實(shí)現(xiàn)PCIe總線的擴(kuò)展。我們的系統(tǒng)需要一個(gè)能支持較多PCIe通道,同時(shí)支持多主機(jī)連接和容錯(cuò)機(jī)制的橋芯片。經(jīng)過對(duì)多個(gè)芯片手冊(cè)的研究,我們發(fā)現(xiàn)PLX公司的一款芯片PEX8696非常適合這套冗余系統(tǒng)的設(shè)計(jì)需求。該芯片符合PCIe2.0規(guī)范[2],并且兼容PCIe1.1規(guī)范,包含了PCIe電源管理特性;支持Base Mode(基本模式)和Visual Switch Mode(虛擬開關(guān)模式)的PCIe擴(kuò)展;具有96個(gè)PCIe通道,每個(gè)通道功率最大僅僅為900mW;具有24個(gè)端口,端口通道可以靈活配置,同時(shí)支持均衡和非均衡端口配置功能;支持多主機(jī)功能和容錯(cuò)功能,包括了1+1容錯(cuò)和N+1容錯(cuò)功能;無阻塞的芯片架構(gòu),PICe的數(shù)據(jù)包交換時(shí)間小于150ns;支持非透明橋功能;配置靈活,支持硬連接配置、EEPROM配置、SMBUS(系統(tǒng)管理總線)配置和主機(jī)軟件配置四種方式。圖1為PEX8696芯片內(nèi)部模塊圖[2],從圖中我們可以看到該芯片96個(gè)PCIe通道分別在6個(gè)Station內(nèi),各個(gè)Station是分別獨(dú)立的,通過內(nèi)在的Fabric連接起來;邏輯模塊承擔(dān)了大部分芯片功能的實(shí)現(xiàn),如PCIe協(xié)議實(shí)現(xiàn)、通道的管理和仲裁功能、芯片配置功能等;Packet Ram模塊主要是提供數(shù)據(jù)的緩沖功能。
冗余系統(tǒng)結(jié)構(gòu)
冗余顯示系統(tǒng)采用了雙主機(jī)備份系統(tǒng),一個(gè)主機(jī)在工作時(shí)候出現(xiàn)致命問題不能恢復(fù)時(shí)候,則由另外一臺(tái)主機(jī)接管其所有的業(yè)務(wù)。系統(tǒng)的結(jié)構(gòu)采用目前通用的工業(yè)計(jì)算機(jī)平臺(tái)PICMG1.3規(guī)范,將一塊PEX8696置于系統(tǒng)底板中,同時(shí)在底板設(shè)計(jì)2個(gè)符合PICMG1.3規(guī)范的插槽和16個(gè)PCIe×4的插槽。視頻輸入卡可以兼容多種視頻信號(hào)的輸入,包括了RGB、Video等信號(hào);視頻輸出采用GPU卡進(jìn)行硬件加速等各種圖象處理,支持多通道輸出。系統(tǒng)的架構(gòu)框圖如圖2,采用了目前常用的PCIe擴(kuò)展技術(shù),將PCIe總線擴(kuò)展出16個(gè)×4的PCIe通道,其中8個(gè)×4通道供視頻數(shù)據(jù)輸入用,8個(gè)×4通道供GPU(圖像處理單元)處理顯示用。上行端口采用了兩個(gè)×16的PCIe通道連接了HOST1和HOST2,兩個(gè)主機(jī)通過橋芯片PEX8696的門鈴寄存器互通信息。當(dāng)HOST1出現(xiàn)致命錯(cuò)誤不能正常工作時(shí)候,可以在程序中預(yù)先設(shè)置流程,通過門鈴寄存器將此信息傳遞到HOST2;HOST2接收到此信息后,啟動(dòng)復(fù)位操作,對(duì)橋芯片進(jìn)行重新配置,屆時(shí)原來由HOST1控制的所有視頻輸入和GPU卡等將通過通道的重新配置進(jìn)入HOST2的監(jiān)管,同時(shí)也就實(shí)現(xiàn)了系統(tǒng)的高可靠性。
主機(jī)的狀態(tài)轉(zhuǎn)移圖見圖3[3]。任一主機(jī)上電時(shí),進(jìn)人競(jìng)爭(zhēng)及檢測(cè)狀態(tài),競(jìng)爭(zhēng)原則是先啟動(dòng)者為主機(jī);后啟動(dòng)者為備機(jī)。狀態(tài)轉(zhuǎn)換方法包括:
(1)通過自檢,若主機(jī)發(fā)現(xiàn)自身有故障,在心跳寄存器和備機(jī)正常的條件下,經(jīng)過門鈴寄存器通知備機(jī)升為主機(jī),本身轉(zhuǎn)人故障狀態(tài);
(2)若主機(jī)發(fā)生故障,不能在規(guī)定時(shí)間內(nèi)向備機(jī)發(fā)心跳信息及有關(guān)信息,備機(jī)經(jīng)核實(shí)主機(jī)已放棄主用狀態(tài)條件下,自動(dòng)轉(zhuǎn)入主機(jī)狀態(tài);
(3)備機(jī)自檢發(fā)現(xiàn)故障page--]轉(zhuǎn)入故障狀態(tài);
(4)進(jìn)入故障狀態(tài)的設(shè)備給出報(bào)警信息,經(jīng)修復(fù)后進(jìn)入再次競(jìng)爭(zhēng)狀態(tài)。
PEX8696中有一些比較特殊的寄存器功能,包括了門鈴寄存器和心跳消息。門鈴寄存器被用來從非透明橋的一邊向另一邊發(fā)送中斷。非透明橋的兩邊一般都有軟件可以控制的中斷請(qǐng)求寄存器和相應(yīng)的中斷屏蔽寄存器。這些寄存器在非透明橋的兩邊都是可以被訪問的。心跳消息一般來自主設(shè)備端往從設(shè)備端的主機(jī),可用來指示它還活著。從設(shè)備主機(jī)可監(jiān)控主設(shè)備主機(jī)的狀態(tài),如果發(fā)現(xiàn)出錯(cuò),它就可以采取一些必要的措施。通過門鈴寄存器可以傳送心跳消息。當(dāng)從設(shè)備主機(jī)沒有收到一定數(shù)量預(yù)先規(guī)定好的心跳消息時(shí),就可以認(rèn)為主設(shè)備的主機(jī)出錯(cuò)了。本系統(tǒng)中就是采用了上述寄存器的特殊功能來實(shí)現(xiàn)對(duì)主機(jī)的監(jiān)控和工作狀態(tài)的轉(zhuǎn)換的,下面將對(duì)系統(tǒng)出現(xiàn)故障后,主機(jī)2接管主機(jī)1的過程進(jìn)行詳細(xì)描述。
當(dāng)主機(jī)1工作時(shí)候,主機(jī)2處于待機(jī)模式。兩個(gè)主機(jī)之間通過心跳消息通信。正常工作過程中,主機(jī)處理器完成所有的正常職責(zé),因?yàn)樗鲃?dòng)管理系統(tǒng)。此外,它還需要定時(shí)發(fā)送心跳消息給備份處理器。心跳消息是發(fā)起消息的處理器健康與否的標(biāo)志。心跳消息在該系統(tǒng)設(shè)計(jì)中同時(shí)也保護(hù)了一些特定的數(shù)據(jù),以減少誤報(bào)警的可能性。心跳消息承擔(dān)了為備份處理器驗(yàn)證主機(jī)處理器功能是否正常的工作,同時(shí),這一數(shù)據(jù)也提供所有外圍設(shè)備的最新活動(dòng)和狀態(tài)。如果備份主機(jī)不能及時(shí)地接收到心跳消息[4],它將開始承擔(dān)控制。首先,它將主機(jī)1中的端口降為下行端口,以防止已經(jīng)發(fā)送故障的處理器與系統(tǒng)的其他部分交互。該變換是通過使用非透明橋端口中的BAR(基地址寄存器 )提供的寄存器CSR(空間配置寄存器)存儲(chǔ)器進(jìn)行地址映射[5],以重新編程交換器的CSR來完成;接著,需要將主機(jī)2的端口配置成上行端口,把主機(jī)1的端口配置成非透明橋端口,同時(shí)拆除主機(jī)1的鏈路;然后,主機(jī)2通過操作橋控制寄存器,對(duì)原理主機(jī)1中的設(shè)備進(jìn)行重啟操作;最后,在清除了隊(duì)列中遺留的所有事務(wù)或者由于主機(jī)1發(fā)生故障而遺留的非完成狀態(tài)之后,主機(jī)2重新對(duì)所有設(shè)備進(jìn)行枚舉,經(jīng)過枚舉后,系統(tǒng)開始正常運(yùn)行。
結(jié)語(yǔ)
本文主要針對(duì)目前在醫(yī)療、監(jiān)控等領(lǐng)域的高可靠性高清大屏的應(yīng)用,專門設(shè)計(jì)了一套雙主機(jī)冗余系統(tǒng)。該系統(tǒng)采用了目前最新的PCIe總線技術(shù),結(jié)合PLX公司提供高靈活性的透明橋芯片以及非透明橋技術(shù),在不改變常規(guī)視頻顯示系統(tǒng)內(nèi)部設(shè)計(jì)的情況下,使得系統(tǒng)的穩(wěn)定性大幅度提高,系統(tǒng)故障率降低到原來的50%;同時(shí)該系統(tǒng)采用了具有96個(gè)PCIe通道的橋芯片,大大減少了橋芯片的使用,降低了系統(tǒng)的成本。