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