專利名稱:分布式系統(tǒng)中實(shí)現(xiàn)多核處理器對(duì)外通信的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及處理器領(lǐng)域,更具體地說(shuō),涉及一種分布式移動(dòng)通信 系統(tǒng)中多核處理器對(duì)外通信的方法。
背景技術(shù):
隨著移動(dòng)通信技術(shù)的迅猛發(fā)展,使用移動(dòng)通信的終端用戶越來(lái)越 多。為了保證終端用戶使用語(yǔ)音業(yè)務(wù)時(shí)通話質(zhì)量和使用數(shù)據(jù)業(yè)務(wù)時(shí)的 帶寬,移動(dòng)運(yùn)營(yíng)商對(duì)移動(dòng)系統(tǒng)設(shè)備的可擴(kuò)容性需求也越來(lái)越高。為了 滿足可擴(kuò)容需求,目前移動(dòng)通信設(shè)備多采用分布式系統(tǒng)架構(gòu)。對(duì)于釆用分布式系統(tǒng)架構(gòu)的移動(dòng)通信系統(tǒng),系統(tǒng)設(shè)備多數(shù)由接 口板、媒體面處理板和控制面處理板構(gòu)成。接口板負(fù)責(zé)對(duì)外收發(fā)消息 和分離媒體面消息和控制面信令消息。對(duì)于媒體面消息通過(guò)媒體面交換網(wǎng)送給媒體面處理板處理??刂泼嫘帕钕⑼ㄟ^(guò)接口板控制面CPU通過(guò)控制面交換網(wǎng)發(fā)送給控制面板處理。為了提供設(shè)備的接入能力, 很多移動(dòng)通信設(shè)備接口板開(kāi)始采用具有高處理性能且一 片芯片上集 中多個(gè)核的多核處理器實(shí)現(xiàn),其中多核處理器一部分核運(yùn)行商用操作系統(tǒng),作為控制面CPU和系統(tǒng)中其他控制面處理板進(jìn)行通信以轉(zhuǎn)發(fā)信令消息轉(zhuǎn)發(fā)和交互會(huì)話,另外一部分核進(jìn)行媒體面處理。由于移動(dòng)通信系統(tǒng)中信令消息占i某體面消息的10%-20%, J某體面處理能力強(qiáng) 而并發(fā)^^舌也比較多,因此需要使用多個(gè)核作為控制面核。多核處理器中多控制面核運(yùn)行操作系統(tǒng)時(shí)可以有SMP (Symmetric Multiprocessing,對(duì)稱多處理)才莫式、AMP ( Asymmetric Multiprocessing,非對(duì)稱多處理)模式和BMP (Bound multiprocessing, 綁定多處理)模式。目前多數(shù)嵌入式操作系統(tǒng)還不支持SMP模式,
因此多控制面核還多數(shù)采用AMP模式,即每個(gè)核運(yùn)行一套操作系統(tǒng), 作為一個(gè)獨(dú)立CPU對(duì)外通信。在正常情況下,控制面核中以太網(wǎng)驅(qū) 動(dòng)程序需要有一個(gè)獨(dú)立的網(wǎng)口才能與其它單板通信,但在分布式系統(tǒng) 中一些單板由于背板限制或交換網(wǎng)端口個(gè)數(shù)限制,以及設(shè)備成本考 慮,要求多核處理器單板只能有一個(gè)控制面網(wǎng)口,因此就存在多個(gè)控 制面核通過(guò)一個(gè)網(wǎng)口與其它單板通信的問(wèn)題。專利申請(qǐng)?zhí)枮?00510087321.0的中國(guó)專利申請(qǐng)公開(kāi)了 "嵌入式 實(shí)時(shí)操作系統(tǒng)中多核處理器的核間通信方法及裝置"。該專利不足之 處在于主要描述一個(gè)裝置中核間通信方法,而沒(méi)有對(duì)多核處理器中作 為控制面核與其他單板的通信方法,擴(kuò)展性不好,不適合在采用分布 式架構(gòu)的系統(tǒng)設(shè)備中4吏用。發(fā)明內(nèi)容本發(fā)明解決的技術(shù)問(wèn)題是提供了 一種分布式系統(tǒng)中實(shí)現(xiàn)多核處 理器對(duì)外通信的方法,以解決在分布式系統(tǒng)中,多核處理器單板在只 有一個(gè)控制網(wǎng)口而有多個(gè)控制面核、且多控制面核操作系統(tǒng)工作在 AMP模式時(shí)無(wú)法與其他單板通信的問(wèn)題。為解決上述問(wèn)題,本發(fā)明提供的方法包括方法多核處理器接收消息包括步驟A多核處理器單々反控制面網(wǎng)口 ( 101)接收其他單板發(fā)送的消息, 根據(jù)共享內(nèi)存指針將接收消息移至共享內(nèi)存(103)中;同時(shí)多核處 理器中分發(fā)器(102)提取接收消息的識(shí)別信息;B分發(fā)器102根據(jù)接收消息的識(shí)別信息判斷出與其匹配的控制 面核,向匹配的控制面核發(fā)送通知消息,通知消息中攜帶接收消息的 共享內(nèi)存指針;C匹配的控制面核收到通知消息后,根據(jù)通知消息中的指針將接 收消息從共享內(nèi)存103中移到其接收隊(duì)列中,取出接收消息進(jìn)行處 理; 方法中多核處理器發(fā)送消息包括步驟D控制面核直接將發(fā)送消息放入共享內(nèi)存(103)中,發(fā)送命令 給控制面網(wǎng)口 ( 101)的MAC器件,MAC器件接到命令后將發(fā)送消 息發(fā)送出去。上述的方法,其中,步驟A之前,分布式系統(tǒng)進(jìn)行初始化,包括多核處理器分配存放接收消息的共享內(nèi)存,將共享內(nèi)存指針?lè)湃?控制面網(wǎng)口 ( 101) MAC器件的描述符中;為控制面核分配用于對(duì)外通信的IP地址;上述的方法,其中,步驟A中,若多核處理器中分發(fā)器(103) 為硬件單元,則MAC器件自動(dòng)通知分發(fā)器有接收消息到達(dá);否則, 采用多核處理器中一個(gè)控制面核作為分發(fā)器。上述的方法,其中,接收消息的識(shí)別信息是目的IP地址。上述的方法,其中,步驟B具體為Bl分發(fā)器判斷目的IP地址與接收消息匹配的控制面核IP地址 是否相同,若不相同,則直接丟棄接收消息;B2若相同,分發(fā)器向匹配的控制面核發(fā)送通知消息,通知消息 中攜帶接收消息的共享內(nèi)存指針。上述的方法,其中,步驟C中,匹配的控制面核取出接收消息進(jìn) 行處理具體為匹配控制面核中以太網(wǎng)驅(qū)動(dòng)程序輪詢接收隊(duì)列,取出接收消息派 發(fā)給相應(yīng)的進(jìn)程或任務(wù)處理。上述的方法,其中,接收隊(duì)列由控制面核從其堆里分配內(nèi)存建立。與現(xiàn)有技術(shù)相比較,本發(fā)明實(shí)現(xiàn)的是多核處理器中多控制面核在 有一個(gè)控制面網(wǎng)口時(shí)對(duì)外通信方法,該方法使用的是虛擬驅(qū)動(dòng)技
術(shù),可以讓每個(gè)控制面核都i人為自己有一個(gè)獨(dú)立的控制面網(wǎng)口 ,而不 需要修改操作系統(tǒng)中的以太網(wǎng)驅(qū)動(dòng)程序,避免多控制面核必須使用多 控制面網(wǎng)口的缺陷,這樣不但可以降低設(shè)備成本,而且方便操作系統(tǒng) 從AMP模式過(guò)渡到SMP模式,有很好的擴(kuò)展性。該方法同時(shí)適用控 制面有多個(gè)網(wǎng)口 ,而不需要修改任何代碼。
圖l是本發(fā)明實(shí)施例應(yīng)用的方案示意圖;圖2是本發(fā)明的方法實(shí)施例中控制面核對(duì)外通信接收流程圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行詳細(xì)說(shuō)明。 圖1是本發(fā)明實(shí)施例應(yīng)用的方案示意圖。多核處理器單板上包括 控制面網(wǎng)口 101核和多核處理器,多核處理器包括分發(fā)器102、共享 內(nèi)存103、接收隊(duì)列104和控制面核105。其中多核處理器單板控制 面網(wǎng)口用于接收其他單板發(fā)送的消息,并將多核處理器對(duì)外發(fā)送的消 息發(fā)送出去。多核處理器分發(fā)器可以為硬件單元,硬件分發(fā)器需要配 置消息提取、分類和分發(fā)規(guī)則;如果沒(méi)有硬件分發(fā)器,多核處理器中 一個(gè)控制面核作為分發(fā)器,同時(shí)配置消息提取、分類和分發(fā)規(guī)則。分 發(fā)器102用于根據(jù)接收消息的識(shí)別信息判斷出與其匹配的控制面核, 向與其匹配的控制.面核發(fā)送通知消息,通知消息中攜帶消息的共享內(nèi) 存指針。共享內(nèi)存103是由多核處理器分配用于存》丈接收消息。接收隊(duì)列由控制面核105從其堆里分配內(nèi)存建立,與控制面核--對(duì)應(yīng)??刂泼婧?05用于接收通知消息,根據(jù)通知消息中的指針將接收消息 從共享內(nèi)存103中移到其接收隊(duì)列中,取出接收消息進(jìn)行處理;而且, 用于直接將發(fā)送消息放入共享內(nèi)存103中,并發(fā)送命令給控制面網(wǎng)口 101的MAC器件,MAC器件接到命令后將消息發(fā)送出去。圖2是本發(fā)明的方法實(shí)施例中控制面核對(duì)外通信接收流程圖。從 本發(fā)明具體實(shí)施方式
可知,由于兩個(gè)控制面核獨(dú)立工作,因此在發(fā)送 消息時(shí)每個(gè)控制面核都相當(dāng)有一個(gè)獨(dú)立的控制面網(wǎng)口 ,仍然可以利用 操作系統(tǒng)中現(xiàn)有的以太網(wǎng)驅(qū)動(dòng)程序,不需要特殊處理。因此下面具體 描述本發(fā)明中控制面核對(duì)外通信接收流程。步驟201,系統(tǒng)啟動(dòng),多核處理器單板開(kāi)始上電,進(jìn)行系統(tǒng)初始 化工作,系統(tǒng)初始化主要包括多核處理器分配存放消息的共享內(nèi)存103,將共享內(nèi)存指針?lè)湃?控制面網(wǎng)口 101 MAC器件的描述符中;為控制面核105分配用于對(duì)外通信的IP地址;控制面核105從其堆里分配內(nèi)存建立接收隊(duì)列104;如果分發(fā)器為硬件單元,則配置消息提取、分類和分發(fā)規(guī)則。步驟202,控制網(wǎng)口 IOI有接收消息到達(dá),根據(jù)預(yù)先存放的指針 通過(guò)DMA引擎將接收消息移入共享內(nèi)存103中;步驟203,如果多核處理器板分發(fā)器是硬件分發(fā)器102,則根據(jù) 配置的規(guī)則從接收消息的頭中提取目的IP地址。如果為軟件分發(fā)器 102,則設(shè)置軟件規(guī)則從接收消息的頭中提取目的IP地址。步驟204,分發(fā)器判斷目的IP地址是否與控制面核105的IP地 址相同,如果都不同,則為無(wú)效消息,轉(zhuǎn)步驟205直接丟棄。步驟206,如果目的IP地址與控制面核105中的任意一個(gè)控制面 核IP相同,則分發(fā)器102發(fā)送通知消息通知控制面核105有接收消 息到達(dá),通知消息中要包含消息的存放在共享內(nèi)存103中的指針。步驟207,控制面核105收到通知消息后,從通知消息中取出接 收消息的共享內(nèi)存指針,然后將消息從共享內(nèi)存103中拷貝到其接收 隊(duì)列104中。步驟208,控制面核105利用以太網(wǎng)驅(qū)動(dòng)程序中守護(hù)任務(wù)不斷輪 詢接收消息的接收隊(duì)列104,如果隊(duì)列中有接收消息,則取出,根據(jù) 消息類型然后派發(fā)給本核相應(yīng)的任務(wù)或進(jìn)程處理。
權(quán)利要求
1、 分布式系統(tǒng)中實(shí)現(xiàn)多核處理器對(duì)外通信的方法,其特征在于,所述方法多核處理器接收消息包括步驟A多核處理器單板控制面網(wǎng)口 ( 101 )接收其他單板發(fā)送的消息, 根據(jù)共享內(nèi)存指針將所述接收消息移至共享內(nèi)存(103)中;同時(shí)多核處理器中分發(fā)器(102)才是^i所述接收消息的識(shí)別信息;B所述分發(fā)器102根據(jù)所述接收消息的識(shí)別信息判斷出與其匹 配的控制面核,向所述匹配的控制面核發(fā)送通知消息,所述通知消息 中攜帶所述接收消息的共享內(nèi)存指針;C所述匹配的控制面核收到所述通知消息后,#4居所述通知消息 中的指針將所述接收消息從共享內(nèi)存103中移到其接收隊(duì)列中,取出 所述接收消息進(jìn)行處理;所述方法中多核處理器發(fā)送消息包括步驟D控制面核直接將發(fā)送消息放入共享內(nèi)存(103)中,發(fā)送命令 給控制面網(wǎng)口 ( 101)的MAC器件,所述MAC器件接到所述命令后 將所述發(fā)送消息發(fā)送出去。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A之前,分 布式系統(tǒng)進(jìn)行初始化,包括多核處理器分配存放所述接收消息的共享內(nèi)存,將共享內(nèi)存指針 放入控制面網(wǎng)口 ( 101) MAC器件的描述符中; 為控制面核分配用于對(duì)外通信的IP地址。
3、 如權(quán)利要求2所述的方法,其特征在于,步驟A中,若多核 處理器中分發(fā)器(103)為硬件單元,則所述MAC器件自動(dòng)通知分 發(fā)器有所述^l妄收消息到達(dá);否則,采用多核處理器中一個(gè)控制面核作 為分發(fā)器。
4、根據(jù)權(quán)利要求3所述的方法,其特征在于,所述接收消息的 識(shí)別信息是目的IP地址。
5、根據(jù)權(quán)利要求4所述的方法,其特征在于,步驟B具體為 Bl分發(fā)器判斷所述目的IP地址與所述接收消息匹配的控制面核IP地址是否相同,若不相同,則直接丟棄所述接收消息;B2若相同,所述分發(fā)器向所述匹配的控制面核發(fā)送通知消息,所述通知消息中攜帶所述接收消息的共享內(nèi)存指針。
6、 根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟C中,所述 匹配的控制面核取出所述接收消息進(jìn)行處理具體為所述匹配控制面核中以太網(wǎng)驅(qū)動(dòng)程序輪詢所述接收隊(duì)列,取出所 述接收消息派發(fā)給相應(yīng)的進(jìn)程或任務(wù)處理。
7、 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述接收隊(duì)列由 所述控制面核從其堆里分配內(nèi)存建立。
全文摘要
本發(fā)明解旨在提供了一種分布式系統(tǒng)中實(shí)現(xiàn)多核處理器對(duì)外通信的方法,多核處理器接收消息包括步驟多核處理器單板控制面網(wǎng)口101接收其他單板發(fā)送的消息,根據(jù)共享內(nèi)存指針將接收消息移至共享內(nèi)存103中;同時(shí)多核處理器中分發(fā)器102提取接收消息的識(shí)別信息;分發(fā)器102根據(jù)接收消息的識(shí)別信息判斷出與其匹配的控制面核,向匹配的控制面核發(fā)送通知消息,通知消息中攜帶所述接收消息的共享內(nèi)存指針;匹配的控制面核收到所述通知消息后,根據(jù)通知消息中的指針將所述接收消息從共享內(nèi)存103中移到其接收隊(duì)列中,取出接收消息進(jìn)行處理。該方法同時(shí)適用控制面有多個(gè)網(wǎng)口,有很好的擴(kuò)展性。
文檔編號(hào)H04L29/08GK101146280SQ200710030050
公開(kāi)日2008年3月19日 申請(qǐng)日期2007年11月27日 優(yōu)先權(quán)日2007年11月27日
發(fā)明者俊 姚, 張亞軍, 郭樹(shù)波 申請(qǐng)人:中興通訊股份有限公司