專利名稱:嵌入式操作系統(tǒng)中實現(xiàn)多核處理器通信的裝置及方法
技術領域:
本發(fā)明涉及多核處理器在嵌入式揭:作系統(tǒng)中的通信領域,更具體的涉及 一種嵌入式操作系統(tǒng)中實現(xiàn)多核處理器通信的裝置及方法。
背景技術:
隨著電信業(yè)務的不斷擴大,系統(tǒng)對處理器的要求越來越高,傳統(tǒng)的單核 處理器已經(jīng)逐漸不能適應大規(guī)4莫應用的需要,在這種背景下,多核處理器開 始在電信這個大舞臺上展露鋒芒。相比于傳統(tǒng)的單核處理器,對應的多核處 理器的性能更高,而價格更低,因此深受電信廠商的追捧。
嵌入式才喿作系統(tǒng)都有一套協(xié)議棧,通過將網(wǎng)口和協(xié)議棧綁定,上層應用 就可以通過協(xié)議棧與外界自由通信,而無需關注報文格式的問題。嵌入式操 作系統(tǒng)的網(wǎng)絡系統(tǒng)如圖l所示。
嵌入式搡作系統(tǒng)大多支持SENS (增強型網(wǎng)絡堆棧,Scalable Enhanced Networks Stack)協(xié)議棧,SENS協(xié)議棧提供了可替換的網(wǎng)絡設備驅(qū)動程序, 而專為這個網(wǎng)絡堆棧而編寫的網(wǎng)絡接口設備驅(qū)動程序被稱作END (增強的 網(wǎng)絡驅(qū)動程序,Enhanced Network Driver)。如圖2所示,SENS模型包含三 個部分協(xié)議驅(qū)動程序、MUX(多元接口, multiplexer)和END。 SENS模 型獨立于硬件設備接口,它將網(wǎng)絡設備驅(qū)動程序細化,使開發(fā)者可以專注于 END本身的開發(fā)。在驅(qū)動程序和上層協(xié)議(如TCP/IP)之間,SENS模型 提供了協(xié)議驅(qū)動層。在協(xié)議層和驅(qū)動程序之間,SENS模型提供了 MUX層。 MUX層直接和END驅(qū)動程序交互,其應用程序接口提供了獨立于網(wǎng)絡協(xié)議 的驅(qū)動程序接口,可以與多個獨立的END單元同時交互。
對于單核處理器來說, 一般一個核只配有一個網(wǎng)口,該網(wǎng)口只負責與外 界通信。而對于多核處理器來說,會遇到下面的問題
(1) 多個核如何與外界通信?
(2) 核與核之間如果想傳輸協(xié)議報文,又該如何通信? 當前的技術中沒有很好的解決上述問題,有如下的缺陷
(1) 核間通信獨立于核與外界通信方式,對于上層應用來說需要兩套 機制完成通信工作,不夠靈活。
(2) 核間通訊沒有掛接協(xié)議棧,因此只能收發(fā)報文,無法使用協(xié)議棧 提供的功能,導致功能很單一。
綜上所述,當前需要一種嵌入式操作系統(tǒng)中多核處理器通信的技術方案。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術問題是提供一種嵌入式搡作系統(tǒng)中實現(xiàn)多核處 理器通信的裝置及方法,可以進行核間通信,也可以與外界進行通信。
為了解決上述問題,本發(fā)明提供了
4寺權(quán)利要求核定后補充
與現(xiàn)有技術相比,應用本發(fā)明,克服了現(xiàn)有技術的不足,首先無論是對
外通信還是核間通信都掛接協(xié)議棧,功能更強大,上層應用開發(fā)更加方便; 其次將對外通信和核間通信對于上層透明化,使得應用層無須關注底層的傳 輸細節(jié)。
圖1是嵌入式搡作系統(tǒng)的網(wǎng)絡系統(tǒng)層結(jié)構(gòu)圖; 圖2是SENS結(jié)構(gòu)圖3是本發(fā)明具體實施方式
的嵌入式操作系統(tǒng)中實現(xiàn)多核處理器通信 的裝置結(jié)構(gòu)圖4是本發(fā)明具體實施方式
的嵌入式操作系統(tǒng)中實現(xiàn)多核處理器通信 的方法流^_圖5是本發(fā)明具體實例中報文發(fā)送流程圖; 圖6是本發(fā)明具體實例中報文接收流程圖。
具體實施例方式
下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步說明。
如圖3所示, 一種嵌入式操作系統(tǒng)中多核處理器通信裝置,包括CPU ^t塊、中斷模塊、內(nèi)存模塊、網(wǎng)絡模塊,其中
(1) CPU模塊
CPU模塊,是多核處理器所擁有的各個CPU核,每個CPU核包含兩套 裝置 一是IP識別單元,用于識別需要發(fā)送報文的IP地址,從而選擇不同 的發(fā)送裝置進行發(fā)送;二是END單元,用于負責綁定IP地址,以及與協(xié)議 棧進行通信,END單元包括對外通信END單元和核間通信END單元,其 中,對外通信END單元用于對外通信;核間通信END單元用于CPU核間 通信;
(2) 中斷模塊
中斷模塊包括兩部分 一是核間中斷單元,用于控制CPU核之間的中 斷,即CPU核與CPU核之間可以發(fā)送中斷請求,每個CPU核可以向指定 目標CPU核發(fā)送中斷請求,同時目標CPU核也能夠通過該核間中斷單元識 別中斷請求派發(fā)地的源CPU核;二是網(wǎng)口中斷單元,用于使CPU核能夠識 別對應網(wǎng)絡才莫塊是否收到中斷請求;
(3) 內(nèi)存模塊
內(nèi)存模塊包括兩部分 一是多CPU核所共享的共享內(nèi)存單元,用于使 CPU核之間可以互相通信,共享內(nèi)存單元包括共享內(nèi)存鎖,其中共享內(nèi)存 鎖用于使共享內(nèi)存的操作不會沖突,保證了安全性和可靠性;二是各個CPU 核所獨有的私有內(nèi)存單元,用于網(wǎng)絡模塊對外的通信,存儲向網(wǎng)絡模塊發(fā)送 或者從網(wǎng)絡才莫塊接收到的報文;
(4) 網(wǎng)絡模塊,用于使CPU核可以與外界進行通信。
網(wǎng)絡模塊指的是CPU核對應的網(wǎng)口 ,每個CPU核都有一個對應的網(wǎng)口 , 通過網(wǎng)口, CPU核可以與外界進行通信。
一種嵌入式操作系統(tǒng)中實現(xiàn)多核處理器通信的裝置,包括網(wǎng)絡模塊、內(nèi)
存模塊、CPU模塊、中斷模塊,其中,
所述內(nèi)存模塊包括多CPU核所共享的共享內(nèi)存單元和各個CPU核所獨
有的私有內(nèi)存單元,其中,
多CPU4亥所共享的共享內(nèi)存單元,在核間通信中,用于使CPU核之間 互相通信,存儲CPU核間發(fā)送的報文;
所述共享內(nèi)存單元包括共享內(nèi)存鎖,其中共享內(nèi)存鎖用于共享內(nèi)存的操
作,使共享內(nèi)存的操作不會沖突,保證了安全性和可靠性。
各個CPU核的私有內(nèi)存單元,用于所述網(wǎng)絡^^莫塊對外的通信,存儲向 網(wǎng)絡模塊發(fā)送或者從網(wǎng)絡模塊接收到的報文;
所述私有內(nèi)存單元,在對外通信中,用于存儲向網(wǎng)絡模塊發(fā)送的報文, 通知網(wǎng)絡模塊將該報文發(fā)送。
所述網(wǎng)絡模塊,用于接收所述私有內(nèi)存單元發(fā)送的報文,同時發(fā)送中斷 請求,完成CPU核的通信;
所述網(wǎng)絡模塊是CPU核對應的網(wǎng)口 ,每個CPU核都有一個對應的網(wǎng)口 , 通過網(wǎng)口, CPU核與外界進行通信。
CPU模塊是多核處理器所擁有的各個CPU核,每個CPU核包含IP識 別單元、增強的網(wǎng)絡驅(qū)動程序END單元,其中
所述IP識別單元,用于識別需要發(fā)送報文的IP地址,從而選擇相應的 END單元進行發(fā)送;
所述END單元,用于接收所述IP識別單元的發(fā)送信息,綁定IP地址, 以及與協(xié)議棧進行通信。
所述END單元包括對外通信END單元和核間通信END單元,其中,
.所述對外通信END單元用于對外通信,接收協(xié)議棧發(fā)送的報文,并發(fā) 送到對應內(nèi)存模塊的私有內(nèi)存單元;
所述核間通信END單元用于CPU核間通信,對內(nèi)存模塊的共享內(nèi)存單 元設置共享內(nèi)存鎖,接收協(xié)議棧發(fā)送的^L文并發(fā)送到共享內(nèi)存單元。
所述中斷模塊包括核間中斷單元、網(wǎng)口中斷單元,其中,
所述核間中斷單元用于控制CPU核之間的中斷,*接收源CPU核的中斷 請求,選擇當前CPU核中核間通信的END單元,從內(nèi)存;f莫塊的共享內(nèi)存單 元中取出數(shù)據(jù),送交協(xié)議棧,并向目標CPU核設置中斷,完成CPU核的通 信;即CPU核與CPU核之間可以發(fā)送中斷請求,每個CPU核可以向指定 目標CPU核發(fā)送中斷請求,同時目標CPU核也通過該核間中斷單元識別中 斷請求派發(fā)地的源CPU核;
所述網(wǎng)口中斷單元,用于接收所述網(wǎng)絡模塊的中斷請求并發(fā)送到CPU 核,CPU核從對應內(nèi)存模塊的私有內(nèi)存單元中取出所述報文,送交協(xié)議棧, 并向目標地址設置中斷,完成CPU核的通信。
如圖4所示, 一種嵌入式操作系統(tǒng)中實現(xiàn)多核處理器通信的方法,包括 以下步驟,
步驟iio、初始化cpu模塊,配置內(nèi)存模塊中的私有內(nèi)存單元;
對每個CPU核配置內(nèi)存模塊中的私有內(nèi)存單元,包括以下步驟,
步驟IIOI、初始化CPU模塊的對外通信END單元,包括指定設備號、 分配MAC (介質(zhì)訪問控制)地址等;
步驟1102、初始化內(nèi)存模塊中的私有內(nèi)存單元;
步驟1103、對IP地址進行綁定,包括將對外通信END單元綁定到MUX 中,以及將協(xié)議棧與對外通信END單元進行綁定,此時選擇的IP地址為IPO;
步驟1104、設置中斷模塊的網(wǎng)口中斷單元。
步驟120、配置內(nèi)存模塊的共享內(nèi)存單元;
配置共享內(nèi)存單元,包括以下步驟,
步驟1201、初始化CPU模塊的核間通信END單元,包括指定設備號、 分配MAC地址等;
步驟1202、初始化共享內(nèi)存單元,同時設置共享內(nèi)存鎖;
步驟1203、對IP地址進行綁定,包括將核間通信END單元綁定到MUX 中,以及將協(xié)議棧與核間通信END單元進行綁定,此時選擇的IP地址為IP1;
步驟1204、設置中斷模塊的核間中斷單元。
步驟130、 CPU模塊的IP識別單元識別目標的IP地址,根據(jù)IP地址選 擇對應的END單元;
步驟140、若是對外通信,則將報文放入內(nèi)存模塊的私有內(nèi)存單元中, 并通過中斷模塊的網(wǎng)口中斷單元向目標地址設置中斷,同時發(fā)送中斷請求, 完成CPU核的才艮文發(fā)送;
若是CPU核間通信,則將報文放入內(nèi)存模塊的共享內(nèi)存單元中,并通 過中斷模塊的核間中斷單元向目標地址設置中斷,同時發(fā)送中斷請求,完成
CPU核的報文發(fā)送。
步驟150、若中斷模塊的網(wǎng)口中斷單元收到中斷請求,則M應內(nèi)存模 塊的私有內(nèi)存單元中取出數(shù)據(jù),送交協(xié)議棧,完成CPU核的報文接收。
若中斷模塊的核間中斷單元收到中斷請求,則從內(nèi)存模塊的共享內(nèi)存單 元中取出數(shù)據(jù),送交協(xié)議棧,完成CPU核的報文接收。
下面結(jié)合具體實例對本發(fā)明作進一步說明。
CPU核的報文發(fā)送步驟如圖5所示。
.步驟210、 CPU模塊的IP識別單元根據(jù)需要發(fā)送報文的目標IP地址選 擇對應的END單元;
步驟220、判斷是否是核間通訊地址,如果是,則執(zhí)行步驟250;否則 目標IP地址為非核間通訊地址,執(zhí)行步驟230;
步驟230、選擇對外通信END單元,協(xié)議棧將發(fā)送的報文放入對應內(nèi) 存模塊的私有內(nèi)存單元中;
步驟240、通知對應網(wǎng)絡模塊開始發(fā)送私有內(nèi)存單元中的數(shù)據(jù),完成對 外通信中CPU核的報文發(fā)送,結(jié)束;
步驟250、選擇核間通信END單元,對內(nèi)存模塊的共享內(nèi)存單元設置 共享內(nèi)存鎖;
此時目標IP地址為核間通ifl地址。
步驟260、協(xié)議棧將發(fā)送的報文》文入共享內(nèi)存單元中;
步驟270、對內(nèi)存模塊的共享內(nèi)存單元解除共享內(nèi)存鎖;
步驟280、通過IP識別單元識別出需要通信的目標CPU核;
步驟290、通過中斷模塊的核間中斷單元向目標CPU核設置核間中斷, 完成核間通信中CPU核的報文發(fā)送,結(jié)束。
CPU核的報文接收步驟如圖6所示。
.步驟310、檢測中斷模塊,判斷是否是網(wǎng)口中斷,如果是,則執(zhí)行步驟 320,否則執(zhí)行步驟340;
如果網(wǎng)口中斷單元收到中斷,則說明對應網(wǎng)絡模塊有報文發(fā)送進來。
步驟320、選擇當前CPU核中對外通信的END單元;
步驟330、 M應內(nèi)存模塊的私有內(nèi)存單元中取出數(shù)據(jù),并送交協(xié)議棧, 完成CPU核的報文接收,結(jié)束;
步驟340、檢測中斷模塊,判斷是否是核間中斷,如果是,則執(zhí)行步驟 350,否則,結(jié)束;
如果核間中斷單元收到中斷,則說明核間有報文發(fā)送進來。
步驟350、選擇當前CPU核中核間通信的END單元;
步驟360、對內(nèi)存模塊的共享內(nèi)存單元設置共享內(nèi)存鎖;
步驟370、從對應內(nèi)存模塊的共享內(nèi)存單元中取出數(shù)據(jù),并送交協(xié)議棧, 完成CPU核的報文接收。
步驟380、對內(nèi)存模塊的共享內(nèi)存單元解除共享內(nèi)存鎖,結(jié)束。
本發(fā)明提供了多核處理器在嵌入式操作系統(tǒng)中對外通信以及核間通信 的方法,采用了該方法的系統(tǒng)不僅可以與外部的網(wǎng)絡i殳備進行通信,還可以 讓內(nèi)部的核間進行通信,且兩種通信的區(qū)別對于系統(tǒng)的應用層來說完全透 明,無論是核間通信還是對外通信都可以靈活采用嵌入式操作系統(tǒng)協(xié)議棧所 提供的支持,4吏得系統(tǒng)的通信功能更加完善和強大,此外因為核間通信采用 的共享內(nèi)存方式,其效率和可靠性也很高。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不 局限于此,任何熟悉該技術的人在本發(fā)明所揭露的技術范圍內(nèi),可輕易想到 的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范 圍應該以權(quán)利要求的保護范圍為準。
權(quán)利要求
1、一種嵌入式操作系統(tǒng)中實現(xiàn)多核處理器通信的裝置,其特征在于,包括內(nèi)存模塊、網(wǎng)絡模塊,其中,所述內(nèi)存模塊,在對外通信中,用于存儲向網(wǎng)絡模塊發(fā)送的報文,通知網(wǎng)絡模塊將該報文發(fā)送;所述網(wǎng)絡模塊,用于接收所述內(nèi)存模塊發(fā)送的報文,同時發(fā)送中斷請求,完成CPU核的通信。
2、 如權(quán)利要求l所述的裝置,其特征在于,所述內(nèi)存模塊包括多CPU核所共享的共享內(nèi)存單元和各個CPU核所獨 有的私有內(nèi)存單元,其中,多CPU核所共享的共享內(nèi)存單元,在核間通信中,用于使CPU核之間 互相通信,存儲CPU核間發(fā)送的報文;各個CPU核的私有內(nèi)存單元,用于所述網(wǎng)絡模塊對外的通信,存儲向 網(wǎng)絡模塊發(fā)送或者從網(wǎng)絡模塊接收到的報文。
3、 如權(quán)利要求2所述的裝置,其特征在于,所述共享內(nèi)存單元包括共享內(nèi)存鎖,其中共享內(nèi)存鎖用于共享內(nèi)存的操作。
4、 如權(quán)利要求3所述的裝置,其特征在于,所述網(wǎng)絡模塊是CPU核對應的網(wǎng)口 ,每個CPU核都有一個對應的網(wǎng)口 , 通過網(wǎng)口, CPU核與外界進4亍通信。
5、 如權(quán)利要求4所述的裝置,其特征在于,還包括CPU模塊,CPU模塊是多核處理器所擁有的各個CPU核,每個 CPU核包含IP識別單元、增強的網(wǎng)絡驅(qū)動程序END單元,其中所述IP識別單元,用于識別需要發(fā)送報文的IP地址,從而選擇相應的 END單元進4于發(fā)送;所述END單元,用于接收所述IP識別單元的發(fā)送信息,綁定IP地址, 以及與協(xié)議棧進行通信。
6、 如權(quán)利要求5所述的裝置,其特征在于,所述END單元包括對外通信END單元和核間通信END單元,其中,所述對外通信END單元用于對外通信,接收協(xié)議棧發(fā)送的報文,并發(fā) 送到對應內(nèi)存模塊的私有內(nèi)存單元;所述核間通信END單元用于CPU核間通信,對內(nèi)存模塊的共享內(nèi)存單 元設置共享內(nèi)存鎖,接收協(xié)議棧發(fā)送的報文并發(fā)送到共享內(nèi)存單元。
7、 如權(quán)利要求6所述的裝置,其特征在于,.還包括中斷模塊,所述中斷模塊包括核間中斷單元、網(wǎng)口中斷單元,其中,所述核間中斷單元用于控制CPU核之間的中斷,接收源CPU核的中斷 請求,選擇當前CPU核中核間通信END單元,從內(nèi)存模塊的共享內(nèi)存單元 中取出數(shù)據(jù),送交協(xié)議棧,并向目標CPU核設置中斷,完成CPU核的通信;所述網(wǎng)口中斷單元,用于接收所述網(wǎng)絡模塊的中斷請求并發(fā)送到CPU 核,CPU核從對應內(nèi)存模塊的私有內(nèi)存單元中取出報文,送交協(xié)議棧,并 向目標地址設置中斷,完成CPU核的通信。
8、 一種嵌入式才喿作系統(tǒng)中實現(xiàn)多核處理器通信的方法,所述系統(tǒng)包 括內(nèi)存模塊,包括以下步驟,a、 初始化CPU模塊,配置所述內(nèi)存模塊,內(nèi)存模塊用于網(wǎng)絡模塊對外 的通信,存儲向網(wǎng)絡模塊發(fā)送的報文;b、 內(nèi)存模塊接收到所述報文后,若是CPU核的對外通信,則將所述報文放入內(nèi)存模塊的私有內(nèi)存單元 中,并通過中斷模塊的網(wǎng)口中斷單元向目標地址設置中斷,同時發(fā)送中斷請 求,完成CPU核的報文發(fā)送;若是CPU核間通信,則將所述報文放入內(nèi)存模塊的共享內(nèi)存單元中,并通過中斷模塊的核間中斷單元向目標地址設置中斷,同時發(fā)送中斷請求,完成CPU核的報文發(fā)送。
9、如權(quán)利要求8所述的方法,其特征在于, 所述步驟a中包括,步驟IIOI、初始化CPU模塊的END單元,包括指定設備號、分配介 質(zhì)訪問控制地址;步驟1102、初始化內(nèi)存模塊;步驟1103、對IP地址進行綁定,包括將END單元綁定到多元接口中, 以及將協(xié)議棧與END單元進行綁定;步驟1104、設置中斷模塊;所述中斷模塊包括核間中斷單元、網(wǎng)口中 斷單元,所述核間中斷單元用于控制CPU核之間的中斷;所述網(wǎng)口中斷單 元,用于使CPU核識別對應網(wǎng)絡模塊是否收到中斷請求;步驟1105、 CPU模塊識別目標的IP地址,根據(jù)IP地址選擇對應的END 單元。
10、 如權(quán)利要求8所述的方法,其特征在于, 還包括,若所述中斷才莫塊的網(wǎng)口中斷單元收到中斷請求,則從對應內(nèi)存模塊的私 有內(nèi)存單元中取出數(shù)據(jù),送交協(xié)議棧,完成CPU核的報文接收;若所述中斷模塊的核間中斷單元收到中斷請求,則從內(nèi)存模塊的共享內(nèi) 存單元中取出數(shù)據(jù),送交協(xié)議棧,完成CPU核的報文接收。
全文摘要
本發(fā)明公開了一種嵌入式操作系統(tǒng)中實現(xiàn)多核處理器通信的裝置及方法,包括內(nèi)存模塊、網(wǎng)絡模塊,其中,所述內(nèi)存模塊,在對外通信中,用于存儲向網(wǎng)絡模塊發(fā)送的報文,通知網(wǎng)絡模塊將該報文發(fā)送;所述網(wǎng)絡模塊,用于接收所述內(nèi)存模塊發(fā)送的報文,同時發(fā)送中斷請求,完成CPU核的通信。應用本發(fā)明,克服了現(xiàn)有技術的不足,首先無論是對外通信還是核間通信都掛接協(xié)議棧,功能更強大,上層應用開發(fā)更加方便;其次將對外通信和核間通信對于上層透明化,使得應用層無須關注底層的傳輸細節(jié)。
文檔編號H04L12/56GK101170511SQ200710187350
公開日2008年4月30日 申請日期2007年11月20日 優(yōu)先權(quán)日2007年11月20日
發(fā)明者趙昊翔, 郭樹波 申請人:中興通訊股份有限公司