基于VxWorks的全IP開發平臺進程通信處理機制
摘要:給出了基于AMCC的NP7250、NPX5700和NPX5800交換套片的全IP交換平臺的構建方案,重點介紹了在基于Vxworks的全IP交換平臺上的進程通信模塊的設計和實現方案。模塊主要實現相同處理器內和不同處理器之間進程間通信功能,進程間的通信主要依靠調度任務從郵箱中接收消息,并把消息派發到各個進程的消息隊列來實現,底層協議類型包括可靠通信協議(TCP)和不可靠通信協議(UDP)。
關鍵詞:嵌入式操作系統;網絡處理器單元;消息隊列;Vxworks
引言
隨著IP技術的迅速發展,“Everything over IP”的觀念已深入人心。眾多移動通信設備制造商都致力于基于全IP交換平臺之上的3G、4G產品開發,基于全IP構建開放通信體系架構,真正作到核心網和無線網絡各個產品的模塊化、積木化。將核心網、無線接入網統一考慮,做到技術上的重用、接口上的統一,避免獨立開發各模塊特別是底層開發可能存在的重復勞動,實現全業務融合,打造一體化的可增值、可擴展的多業務集成通信平臺,已成為業界共識。在整個系統設計的過程中,主要的目標在于軟件支撐的統一性,這要求相關的硬件系統也需要統一考慮成一個硬件平臺的概念。這樣將來就可以在統一的軟件支撐上開發各種不同的應用業務。
1 全IP開發平臺架構
全IP交換平臺基于Crossbar的三層交換,可根據系統容量需求和實際應用要求配置。當容量較大時,采用CrossBar+線卡方式實現三層交換方式,具體線卡配置的數目根據實際數據流量以及資源在各個應用實體的利用情況確定。當容量較小時,采用線卡互連提供三層交換。位于全IP交換平臺之上的移動通信設備單板需要實現的移動通信功能靠Host(主)CPU完成。本文中的全IP開發平臺選用AMCC的NP7250、PX5700和NPX5800交換套片作為硬件基礎,主CPU是MPC8260,主CPU上的操作系統是VxWorks。其中,NP7250主要實現級連線卡的作用,完成基本信元/包的轉發功能;NPX5700是流量控制芯片,實現對數據流的輸入接納和輸出調度功能,是IP開發平臺QoS保證的核心,兩套NPX5700構成雙向10Gbps的處理能力;NPX5800是一種交換網芯片,用于連接NPX5700,實現交換功能。
全IP交換平臺系統架構如圖1所示,在嵌入式操作系統VxWorks之上還有一個操作系統子系統,該層是VxWorks封裝層。嵌入式操作系統封裝層的目的之一是對上層應用屏蔽底層硬件、OS、網絡的差別,給上層應用軟件提供統一規范的調用接口,大大降低了應用軟件開發人員的開發難度,也使開發出的應用軟件有較好的跨平臺性、可移植性、可維護性和代碼繼承性。封裝層一般會對進程管理、內存管理、進程通信等核心功能進行重新定義和優化,以適應特定應用領域的開發需求。
下面以通信類嵌入式設備應用領域為背景來討論操作系統子系統中的進程通信管理模塊設計和實現方案。
2 進程通信模塊設計
通信模塊為進程之間的通信提供統一的接口。各個處理器都處于一個以太網上,前臺單板之間互相可以直達,沒有中間路由,前后臺之間通過OMP轉發。根據通信區域的不同可分為:①相同處理器內同一任務下的進程間通信;②相同處理器內不同任務下的進程間通信;③相同處理器內的任務之間的通信;④相同處理器內的進程到任務的通信;⑤相同處理器內的任務到進程的通信;⑥不同處理器間的進程間通信。
底層協議類型包括可靠通信協議(TCP)和不可靠通信協議(UDP)。對話方式主要采用以下5種:①處理器內廣播(內部消息機制);②分布式系統內組播(UDP);③分布式系統內廣播(UDP);④多對多通信(UDP),也就是無連接的點對點通信;⑤點對點通信(TCP和內部消息機制)。
2.1 通信處理流程
同一處理器內任務之間通信流程:每個調度任務建立一個郵箱,其他任務也建立自己的郵箱,進程發送到另一個任務的進程的消息首先發送到目的進程所在任務的郵箱中進行緩存,然后由調度任務派發到目的進程的消息隊列中;進程到其他類型任務的消息發送到相應任務的郵箱,其他類型的任務之間消息發送到對方郵箱。根據為應用提供的消息類型將任務間消息發送分類。發送異步緊迫消息,將消息發送到任務消息隊列的頭部;發送異步普通消息,將消息發送到任務消息隊列的尾部。
同一任務內的進程通信流程如圖2所示,每一個進程擁有一個消息隊列,進程向同一任務內進程發送,通過內部接口直接將消息掛到另一個進程的消息隊列中。進程向同一任務內進程發送同步應答消息,不通過任務郵箱,目的進程的狀態直接改變即可。任務內的進程間通信不能通過任務的郵箱進行轉發,這是為了避免在郵箱滿的時候任務向自己的郵箱發送消息,導致任務死鎖。
評論