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