基于多核或眾核嵌入式處理器的網絡數據包處理方法
【專利摘要】本發(fā)明公開了一種基于多核或眾核嵌入式處理器的網絡數據包處理方法,包括:1)將多核或眾核嵌入式處理器中的核劃分為數據接收核和數據處理核,所述的數據接收核對共享內存區(qū)域進行緩沖區(qū)分配,且數據處理核向所述的數據接收核進行分發(fā)策略注冊,確定每個數據處理核所要處理的數據包特征;2)數據接收核依據從網絡硬件接收的數據包頭部信息,將數據包存放至相應的緩沖區(qū)內;3)數據接收核依據數據處理核所注冊的分發(fā)策略,向所述的數據處理核發(fā)送消息,所述的數據處理核根據所述的消息,讀取緩沖區(qū)中的數據包進行處理,并向所述的數據接收核發(fā)送處理狀態(tài)信息。
【專利說明】基于多核或眾核嵌入式處理器的網絡數據包處理方法
【技術領域】
[0001]本發(fā)明涉及多核或眾核嵌入式處理器和網絡通信處理領域,尤其涉及一種基于多核或眾核嵌入式處理器的網絡數據包處理方法。
【背景技術】
[0002]傳統的單核處理器處理模式是單任務串行處理,為了提高處理速度只能增加主頻,而主頻的提高是有限制的,并且增加了功耗。多核或眾核處理器很好地解決了這些問題,多核或眾核處理器采用并行處理模式,多任務并行處理,可以在低主頻的情況下提高處理速度,并且降低功耗。而隨著帶寬的日益增加,網絡數據量爆炸式增長。物聯網熱的興起更是加劇了對網絡數據快速處理的需求,同時網絡中的眾多數據都要求很強的實時性,為了保證數據的平穩(wěn)傳輸并降低數據傳輸時的流量波動,軟件系統如何有效利用其架構優(yōu)勢進行網絡數據包的快速接收和分發(fā)已然成為研究的熱點。
[0003]申請?zhí)枮镃N201010289667.X的發(fā)明專利公開了一種基于多核架構的報文轉發(fā)方法及系統,該發(fā)明通過獲取互聯網中的數據包,且在數據包為隧道鏈路數據包時,對其進行解封裝,得到IP數據包,采用哈希算法對IP數據包的五元組進行哈希算法,再根據算得的哈希值及其哈希表大小、以及CPU的數量,將哈希值標記至上述的IP數據包中,再發(fā)送至所述的CPU中。
[0004]上述發(fā)明專利雖然是一種關于多核架構的報文發(fā)送方法,但實際上僅是一種報文的轉發(fā),并未涉及到多核或眾核嵌入式系統中的數據接收和分發(fā),更未提及數據分發(fā)的策略,且對于多核或眾核嵌入式處理器,針對其網絡數據包的接收管理和分法處理方法的研
究具有重要意義。
【發(fā)明內容】
[0005]本發(fā)明提供了一種多核或眾核嵌入式處理器系統中網絡數據包的接收管理以及數據包的分發(fā)策略方法,能夠快速有效準確的實現網絡數據包的接收和分發(fā)。
[0006]一種基于多核或眾核嵌入式處理器的網絡數據包處理方法,包括以下步驟:
[0007]I)將多核或眾核嵌入式處理器中的核劃分為數據接收核和數據處理核,所述的數據接收核對共享內存區(qū)域進行緩沖區(qū)分配,且數據處理核向所述的數據接收核進行分發(fā)策略注冊,確定每個數據處理核所要處理的數據包特征;
[0008]2)數據接收核依據從網絡硬件接收的數據包頭部信息,將數據包存放至相應的緩沖區(qū)內;
[0009]3)數據接收核依據數據處理核所注冊的分發(fā)策略,向所述的數據處理核發(fā)送消息,所述的數據處理核根據所述的消息,讀取緩沖區(qū)中的數據包進行處理,并向所述的數據接收核發(fā)送處理狀態(tài)信息。
[0010]所述的多核或眾核嵌入式處理器為同構或異構處理器,所述核的數量至少為8個,其中,所述數據接收核的數量為I個或多個。[0011]數據接收核負責共享內存區(qū)域中網絡數據接收緩沖區(qū)的分配管理、數據處理核注冊分發(fā)策略的管理和待處理數據包的目的數據處理核的判定,數據接收核還負責網絡硬件設備的配置和數據交互,包括配置網卡硬件的工作模式以及獲取其狀態(tài)參數等,數據交互是指網絡數據的接收;數據處理核根據實際應用需求向數據接收核進行分發(fā)策略的注冊,并提取存放在緩沖區(qū)中的數據包進行處理。
[0012]數據接收核的數目和數據處理核的數目均可以根據實際應用進行配置。例如,選取8個核進行簡單的圖像二值化處理,數據接收核僅接收完整的一幅圖像,再進行分發(fā)即可,因此選取一個數據接收核就可以完成上述操作;對圖像進行處理時,可以選取余下的7個核作為數據處理核進行二值化處理。同時,數據接收核可根據處理器結構、網絡硬件設備位置、內存位置等綜合因素進行設定,一般數據接收核為距離網絡硬件接口位置最近的處理核,數據處理核的數目和位置選擇依據應用需求和數據接收核而定,數據處理核完全可由用戶自行設定。
[0013]在步驟I)中,所述的緩沖區(qū)的大小為256字節(jié)、512字節(jié)、1024字節(jié)、1536字節(jié)、2048字節(jié)、4096字節(jié)或10240字節(jié),所述緩沖區(qū)的數量為多個,所述的數據處理核能查看每個緩沖區(qū)的物理地址。
[0014]多個緩沖區(qū)中,每種大小的緩沖區(qū)的數量根據數據包特征進行配置,同時所有緩沖區(qū)的物理地址都可以被數據處理核查看,也就是說這些緩沖區(qū)對于所有處理核而言都是共享的,每個緩沖區(qū)除了存放接收的指定大小的數據包內容外,還包括了要將該數據包發(fā)送到哪個數據處理核的信息,即對該數據包進行處理的數據處理核的信息。每個緩沖區(qū)的具體信息如表I所示:
[0015]表I數據接收核中數據緩沖結構
[0016]
【權利要求】
1.一種基于多核或眾核嵌入式處理器的網絡數據包處理方法,其特征在于,包括:1)將多核或眾核嵌入式處理器中的核劃分為數據接收核和數據處理核,所述的數據接收核對共享內存區(qū)域進行緩沖區(qū)分配,且數據處理核向所述的數據接收核進行分發(fā)策略注冊,確定每個數據處理核所要處理的數據包特征;2)數據接收核依據從網絡硬件接收的數據包頭部信息,將數據包存放至相應的緩沖區(qū)內;3)數據接收核依據數據處理核所注冊的分發(fā)策略,向所述的數據處理核發(fā)送消息,所述的數據處理核根據所述的消息,讀取緩沖區(qū)中的數據包進行處理,并向所述的數據接收核發(fā)送處理狀態(tài)信息。
2.如權利要求1所述的基于多核或眾核嵌入式處理器的網絡數據包處理方法,其特征在于,所述的多核或眾核嵌入式處理器為同構或異構處理器,所述核的數量至少為8個,其中,所述數據接收核的數量為I個或多個。
3.如權利要求2所述的基于多核或眾核嵌入式處理器的網絡數據包處理方法,其特征在于,在步驟I)中,所述的緩沖區(qū)的大小為256字節(jié)、512字節(jié)、1024字節(jié)、1536字節(jié)、2048字節(jié)、4096字節(jié)或10240字節(jié)。
4.如權利要求3所述的基于多核或眾核嵌入式處理器的網絡數據包處理方法,其特征在于,所述緩沖區(qū)的數量為多個,在步驟3)中,所述的數據處理核能查看每個緩沖區(qū)的物理地址。
5.如權利要求1所述的基于多核或眾核嵌入式處理器的網絡數據包處理方法,其特征在于,所述的步驟2)中,所述的數據包特征包括數據包類型、硬件頭部信息類型和端口信肩、O
6.如權利要求5所述的基于多核或眾核嵌入式處理器的網絡數據包處理方法,其特征在于,在步驟I)中,每個數據處理核只能注冊一個分發(fā)策略,同一分發(fā)策略能同時被多個數據處理核注冊。
7.如權利要求6所述的基于多核或眾核嵌入式處理器的網絡數據包處理方法,其特征在于,所述的分發(fā)策略包括數據包協議策略、數據包MAC地址策略、IP地址策略和數據包端口策略。
8.如權利要求7所述的基于多核或眾核嵌入式處理器的網絡數據包處理方法,其特征在于,每個數據處理核進行分發(fā)策略注冊時,數據接收核判斷該數據處理核請求的分發(fā)策略是否為其他數據處理核已注冊的分發(fā)策略,若已經注冊且需要與其他數據處理核進行共享,對各數據處理核的共享標志位進行更新。
9.如權利要求8所述的基于多核或眾核嵌入式處理器的網絡數據包處理方法,其特征在于,所述的消息包括數據包在緩沖區(qū)中的地址和緩沖大小。
10.如權利要求9所述的基于多核或眾核嵌入式處理器的網絡數據包處理方法,其特征在于,若多個數據處理核所注冊的分發(fā)策略相同時,在所述的步驟3)中,數據接收核根據各數據處理核中數據包處理狀態(tài)和數據包數目,對待處理的數據包進行權重分配計算,根據權重將數據包分發(fā)給多個數據處理核同時處理。
【文檔編號】H04L12/861GK103441952SQ201310365607
【公開日】2013年12月11日 申請日期:2013年8月20日 優(yōu)先權日:2013年8月20日
【發(fā)明者】張亮, 沈沛意, 宋娟, 周夢, 王劍, 王國洗 申請人:西安電子科技大學