新四季網

基於多核處理器的報文處理方法、裝置和網絡設備的製作方法

2023-12-02 17:26:56 1

專利名稱:基於多核處理器的報文處理方法、裝置和網絡設備的製作方法
技術領域:
本發明涉及通信技術,尤其涉及一種基於多核處理器的報文處理方法、裝置和網絡設備。
背景技術:
IP網絡設備,如交換機、路由器、防火牆和網關等,作為計算機互連的數據交換節點,其數據轉發性能決定了網絡的整體質量。隨著用戶連接數的急劇增長和各種高帶寬應用的出現,主頻提升受限的單核處理器越來越難以滿足高速數據轉發的性能需求,而多核處理器憑藉其較低成本的擴展能力和並行計算特性,逐漸在網絡通信領域得到廣泛引用。所謂多核處理器,是指在一個硬體晶片上集成多個核心處理器(Core-CPU ;以下簡稱Core),通常為共享內存式結構。多核處理器具備相對獨立的多個計算處理核心,可以並行 地執行報文轉發處理程序,從而使得報文轉發性能得到大幅度提高,進而可以提高系統整體的吞吐率。但是,多核處理器由於共享許多硬體和軟體資源,在數據轉發繁忙時,如何能夠提高彼此的協同效率,減少相互等待時間,充分發揮並行特性成為多核處理器平臺軟體開發的難點。再者,由於每個處理器核心處理不同報文的時間隨機性,有可能造成先進入轉發序列的報文,反而後到達輸出序列,出現所謂的報文亂序現象。為了提高多核處理器的計算並行性,現有技術中經常採用的一種是流水線技術報文從網絡接口進入,然後通過前置報文分類單元把報文散列到各條流水線(為了滿足保序要求,同一報文流通常會散列到同一條流水線),報文經由流水線各個處理階段處理後,再被分發到輸出單元的各個報文隊列,最後經由出接口從物理線路發送出去。其中,流水線級數為一條流水線中所包含的處理階段個數。然而,現有技術中尚不存在對流水線技術中流水線條數和級數進行動態調整的方案,因此現有技術中網絡設備的數據轉發性能不高。即,若流水線條數或級數設置得太多,則將增加各條流水線和各級任務在核間切換的開銷;若流水線條數或級數設置得太少,則無法實現多核處理器的全並發。

發明內容
本發明提供一種基於多核處理器的報文處理方法、裝置和網絡設備,對流水線參數進行優化設定,使得網絡設備能夠達到最佳的數據處理性能。本發明的第一個方面是提供一種基於多核處理器的報文處理方法,包括對網絡設備的報文處理過程的程序執行路徑進行分析,獲取所述報文處理過程的關鍵路徑;對所述關鍵路徑中的各處理子過程進行量化分析,分別生成所述各處理子過程的量化值;根據預設的散列算法對應的散列值範圍獲取流水線條數的取值範圍;根據所述關鍵路徑中的各處理子過程的量化值、所述流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數,以採用所述流水線條數和所述流水線級數處理報文。本發明的另一個方面是提供一種基於多核處理器的報文處理裝置,包括路徑獲取模塊,用於對網絡設備的報文處理過程的程序執行路徑進行分析,獲取所述報文處理過程的關鍵路徑;量化模塊,用於對所述關鍵路徑中的各處理子過程進行量化分析,分別生成所述各處理子過程的量化值;範圍獲取模塊,用於根據預設的散列算法對應的散列值範圍獲取流水線條數的取值範圍;計算模塊,用於根據所述關鍵路徑中的各處理子過程的量化值、所述流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數,以採用所述流水線條數和所述流水線級數處理報文。本發明的又一個方面是提供一種網絡設備,包括上述的基於多核處理器的報文處
理裝置。本發明的技術效果是通過分析獲取報文處理過程的關鍵路徑,並量化生成各處理子過程的量化值,根據預設的散列算法對應的散列值範圍獲取流水線條數的取值範圍,再根據關鍵路徑中的各處理子過程的量化值、流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數,以採用流水線條數和流水線級數處理報文。本實施例對流水線參 數進行優化設定,使得網絡設備能夠達到最佳的數據處理性能。


圖I為本發明基於多核處理器的報文處理方法實施例一的流程圖;圖2為本發明基於多核處理器的報文處理方法實施例一中改進流水線技術的過程不意圖;圖3為本發明基於多核處理器的報文處理方法實施例二的流程圖;圖4為本發明基於多核處理器的報文處理方法實施例二中的典型報文處理過程示例圖;圖5為本發明基於多核處理器的報文處理裝置實施例三的結構示意圖;圖6為本發明基於多核處理器的報文處理裝置實施例四的結構示意圖。
具體實施例方式圖I為本發明基於多核處理器的報文處理方法實施例一的流程圖,如圖I所示,本實施例提供了一種基於多核處理器的報文處理方法,可以具體包括如下步驟步驟101,對網絡設備的報文處理過程的程序執行路徑進行分析,獲取所述報文處理過程的關鍵路徑。流水線技術分為傳統標準流水線技術和改進流水線技術。其中,傳統標準流水線技術是指每個Core只執行整條報文處理流水線上的其中一個階段,報文經由各個處理階段,類似工業流水線方式在各個Core上遷移。為了保證報文在Core間處理遷移的高效性,將流水線的各個階段與指定的CPU核綁定。圖2為本發明基於多核處理器的報文處理方法實施例一中改進流水線技術的過程示意圖,如圖2所示,改進流水線中的各個階段由虛線程對象組成,每條流水線由一個流水線對象管理,包含各級流水線處理函數的指針及各級流水線進行加工的報文鏈指針。不同的報文由前置報文散列單元散列到不同的Group中,每個Group對應一條流水線,每條流水線中包含的虛線程的個數為流水線級數,每個虛線程可以對應一個報文處理子過程。然後調度各處理器核對各流水線中的各虛線程進行處理,而不將流水線與處理器核進行綁定,從而達到並行處理的目的。為了達到報文保序的目的,將虛線程流水線對象與前置報文散列單元的目標Group綁定,每級流水線加工完的數據均被掛載到流水線管理對象的滑動窗口下的數據鍊表中,後到達的報文的加工順序不會早於先到達報文的加工順序。由於改進流水線技術中的各級任務不再與固定Core綁定,且各級處理任務的劃分均衡性要求不是很高,因此採用改進流水線技術的網絡設備報文處理方案不僅可以適應於不同Core數目的多核處理器硬體平臺,而且即使出現報文散列不均 衡的情況,依然可以利用空閒Core的處理資源,提高網絡設備的最差轉發性能。本實施例為了滿足報文處理程序對各種多核硬體平臺的靈活適應性,同時充分發揮多核的並行處理資源,在多核處理器網絡設備中採用改進流水線的數據處理程序運行模型。在該數據處理程序運行模型中,流水線條數和流水線級數是最重要的兩個參數,其決定著網絡設備的性能,因此,本實施例主要對改進流水線技術中的流水線條數和流水線級數進行計算和調整,以充分發揮多核處理器的並行計算能力。本步驟為先對網絡設備的報文處理過程的程序執行路徑進行分析,即分析各種類型的報文經過網絡設備進行處理時可能經過的各條處理分支,通過分析獲取該報文處理過程的關鍵路徑。此處的關鍵路徑為影響網絡設備性能的關鍵路徑,其佔據經過網絡設備處理比重最大的報文所經過的程序處理分支;針對不同應用類型的網絡設備及網絡設備當前開啟的業務功能,獲取到的關鍵路徑不同。例如,作為網絡後臺運行的病毒掃描設備來說,一般認為它的關鍵路徑是報文接收-病毒掃描-病毒特徵碼入庫;而在本實施例中,則以報文接收-病毒掃描-報文丟棄作為關鍵路徑。這是由於經由病毒掃描設備檢測出病毒的報文相對於流量巨大的正常報文來說,其佔據的比重很小,因此病毒特徵碼入庫難以成為病毒掃描設備報文處理過程中的性能瓶頸,除非出現網絡異常。對於網絡路由安全設備來說,當其只開啟路由功能,而關閉安全功能時,獲取到的關鍵路徑為報文接收-路由查找-報文發送;但當其關閉路由功能,只開啟安全功能時,其關鍵路徑變為報文接收-防攻擊-病毒檢測-報文發送。即使對佔比最多的同一條流的報文,也可能會經過不同的路徑,例如在利用流表作為緩存加速處理的網絡設備中,一條流的首報文和流內後續報文通常走兩條不同的程序執行路徑,由於首報文涉及到流表項的建立,而後續報文的處理只需查詢流表,取得首報文的緩存處理結果即可。步驟102,對所述關鍵路徑中的各處理子過程進行量化分析,分別生成所述各處理子過程的量化值。在獲取到報文處理過程的關鍵路徑後,該關鍵路徑可以由多個處理子過程組成,本步驟為對這些處理子過程進行量化分析,並分別生成各處理子過程的量化值。此處的處理子過程可以為遵循報文處理程序執行步驟所劃分出來的各業務功能對應的程序執行代碼段。本步驟對各處理子過程進行量化分析,可以為計算處理子過程對應的程序執行代碼段的代碼行數,也可以為經過測試得到的處理子過程的程序執行時間,相應地,生成的量化值便為代碼行數或執行時間。步驟103,根據預設的散列算法對應的散列值範圍獲取流水線條數的取值範圍。本實施例中所指的預設的散列算法為,改進流水線技術中前置報文散列單元對報文進行散列處理時所採用的散列算法。具體地,前置報文散列單元對從接口接入的報文進行散列時,具體從報文中提取一些特徵值,並根據循環冗餘校驗碼、哈希算法等計算得到對應的散列值,根據該散列值將報文散列到不同Group的硬體或軟體模塊中。散列算法對應的散列值範圍具體為對報文進行散列得到的散列值的取值範圍,根據該散列值範圍來獲取流水線條數的取值範圍。例如,散列值的取值範圍為0-7時,表明報文可以被散列到8個Group,則流水線條數最多可以為8條。具體可以再以預設的掩碼與方式取值,即只能啟用其中的I位、2位或3位對應的數值;啟用I位時只能區別出O、I兩類報文,啟用2位時可以區別出00、01、10、11四類報文,啟用3位時可以區別出000、001、010、011、100、101、110、111八類報文,因此可分別綁定2條、4條和8條流水線,即流水線條數的取值範圍為{2,4,8}。步驟104,根據所述關鍵路徑中的各處理子過程的量化值、所述流水線條數的取值 範圍和處理器核數計算流水線條數和流水線級數,以採用所述流水線條數和所述流水線級數處理報文。在通過上述步驟獲取到關鍵路徑中的各處理子過程的量化值、流水線條數的取值範圍後,可以結合處理器核數來計算流水線條數和流水線級數,然後將計算得到的流水線條數和流水線級數設定在網絡設備中,網絡設備採用該流水線條數和流水線級數處理報文。具體可以通過對關鍵路徑中的各處理子過程進行合併,在滿足以處理器核數和流水線條數取值範圍為約束條件的前提下,找到一種改進流水線報文處理階段中對流水線條數和流水線級數的較優配置。本實施例提供了一種基於多核處理器的報文處理方法,通過分析獲取報文處理過程的關鍵路徑,並量化生成各處理子過程的量化值,根據預設的散列算法對應的散列值範圍獲取流水線條數的取值範圍,再根據關鍵路徑中的各處理子過程的量化值、流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數,以採用流水線條數和流水線級數處理報文。本實施例對流水線參數進行優化設定,使得網絡設備能夠達到最佳的數據處理性能。圖3為本發明基於多核處理器的報文處理方法實施例二的流程圖,如圖3所示,本實施例提供了一種基於多核處理器的報文處理方法,可以具體包括如下步驟步驟301,對網絡設備的報文處理過程的程序執行路徑進行分析,獲取所述報文處理過程的關鍵路徑。本步驟為對網絡設備的報文處理過程的程序執行路徑進行分析,即分析各種類型的報文經過網絡設備進行處理處理時可能經過的各條處理分支,通過分析獲取該報文處理過程的關鍵路徑。本實施例中假設網絡設備的處理器核數為6。通常,網絡設備包含的報文處理流程包括報文接收、報文入業務處理、理由確定、報文出業務處理和報文發送,對應的業務功能為報文接收解析功能、報文入業務處理功能、路由功能、報文出業務處理功能。其中,報文入業務處理和報文出業務處理可以具體包含許多報文處理過程,對應許多的業務功能。典型的報文入業務處理功能如流表創建與查找、訪問控制列表(AccessControl List ;以下簡稱ACL)入過濾、目的網絡地址轉換(Destination Network AddressTranslation ;以下簡稱Dst_NAT)等。典型的報文出業務處理功能如ACL出過濾、源網絡地址轉換(Source Network Address Translation ;以下簡稱Src-NAT)。對於一個對報文進行路由處理的網絡設備來說,其程序執行路徑除了獲取流水線各級報文處理階段對應的虛線程對象公共操作外,主要就是報文處理處理流程的程序執行過程。圖4為本發明基於多核處理器的報文處理方法實施例二中的典型報文處理過程示例圖,如圖4所示為按照業務功能劃分的流量佔比最多的典型報文處理過程,其中細線連接的報文處理過程為對每條流首報文的程序執行路徑,包含報文接收、報文解析/錯誤校驗、流表查詢、流表創建、ACL入過濾、Dst-NAT處理、報文路由處理、Src-NAT處理、ACL出過濾、報文封裝發送等報文處理子過程。黑色粗線連接的報文處理過程為利用流表緩存信息對報文進行加速處理的程序執行路徑,包含公共的報文接收、報文解析/錯誤校驗、流表查詢和報文封裝發送等報文處理子過程。在業務處理環境都是利用根據首報文處理的緩存信息對流內後續報文進行ACL入過濾、Dst-NAT處理、設定路由、Src-NAT處理、ACL出過濾等報文處理子過程。由此可以獲取到影響設備性能的關鍵路徑中包含的報文處理子過程為報文接收、報文解析/錯誤校驗、流表查詢、ACL入過濾、Dst-NAT處理、設定路由、Src-NAT處理、ACL出過濾、報文封裝發送。 步驟302,對關鍵路徑中的各處理子過程進行量化分析,分別生成所述各處理子過
程的量化值。本步驟為對上述步驟獲取的關鍵路徑中的各處理子過程進行量化分析,可以為計算處理子過程對應的程序執行代碼段的代碼行數,也可以為經過測試得到的處理子過程的程序執行時間,還可以為經過測試得到的處理器執行指令的時鐘周期數,相應地,生成的量化值便為代碼行數、執行時間或平均執行指令的時鐘周期數。此處具體採用處理器執行指令的時鐘周期數來對其進行量化,如圖4所示,各處理子過程消耗的時鐘周期數已在各處理子過程旁邊用數字標示,單位為Cycles,表明該處理子過程所佔用的平均時鐘周期數,此處的平均時鐘周期數用於度量各個處理子過程消耗處理器資源。對於同一條流來說,流內報文的數據量遠遠多於首報文的數據量,因此儘管首報文處理路徑中各處理子過程消耗的時鐘周期數多於流內報文處理所消耗的時鐘周期數,但影響網絡設備處理性能的關鍵路徑依然是黑色粗線所連接的報文處理流程。即通過量化分析確定的關鍵路徑中的各處理器子過程的量化值集合為 ItJ = {150,100,200,30,25,30,25,25,200}。步驟303,根據預設的散列算法對應的散列值範圍獲取流水線條數的取值範圍。在本實施例中,前置報文散列單元對從接口接入的報文進行散列時,可以從報文中提取IP五元組信息(源IP位址、目的IP位址、源埠號、目的埠號和協議類型),經由循環冗餘校驗(Cycle Redundant Check ;以下簡稱CRC)算法計算出一個校驗和,然後截取校驗和的後三位作為散列值,則得到散列值範圍為0-7,若每個數值表示一類報文,則最多可以與8條流水線進行綁定。若其綁定的設定方式為位掩碼形式,則只能啟用其中的I位、2位或3位對應的數值;啟用I位時只能區別出0、1兩類報文,啟用2位時可以區別出00、
01、10、11四類報文,啟用3位時可以區別出000、001、010、011、100、101、110、111八類報文,因此可分別綁定2條、4條和8條流水線,即流水線條數的取值範圍為{2,4,8}。步驟304,判斷關鍵路徑中的處理子過程的個數是否大於處理器核數,如果是,則執行步驟305,否則執行步驟306。
在獲取到關鍵路徑後,本步驟為判斷關鍵路徑中所包含的處理子過程的個數是否大於該網絡設備的處理器核數,如果是,則執行步驟305,否則執行步驟306。在本實施例中,處理器核數為6,從步驟302可以獲取到關鍵路徑中所包含的處理子過程的個數為9,因此執行步驟305,對處理子過程進行合併。步驟305,對所述關鍵路徑中的各處理子過程進行合併。當關鍵路徑中的處理子過程的個數大於處理器核數時,對關鍵路徑中的各處理子過程進行合併,具體可以對相鄰的兩個或兩個以上處理子過程進行合併,以使合併後的處理子過程的個數小於所述處理器核數。具體可以按照量化值最大的處理子過程進行合併,也可以按照各處理子過程的業務功能進行合併。在按照量化值最大的處理子過程進行合併時,先從關鍵步驟的各處理子過程中獲取量化值最大的處理子過程,上述實例中各處理子過程所採用的處理器執行指令的時鐘周期數的最大值為200Cycles,即Tmax=200,在對其餘相鄰的處理子過程進行合併時,合併後的處理子過程的處理器執行指令 的時鐘周期數為合併的兩個或多個處理子過程的處理器執行指令的時鐘周期數之和,則合併後的處理子過程的處理器執行指令的時鐘周期數不能超過最大值200CycleS。同時可以獲取到合併後的各處理子過程的處理器執行指令的時鐘周期數,得到量化值集合為{tn} = {150, 100,200,145,200}。在按照業務功能進行合併時,可以對業務功能相近的相鄰兩個或多個處理子過程進行合併,這個可以結合經驗來確定兩個或多個處理子過程的業務功能是否相近,例如,可以將報文接收、報文解析/錯誤校驗合併為一個處理子過程,將ACL入過濾、Dst-NAT處理、設定路由、Src-NAT處理、ACL出過濾的各處理子過程合併為一個處理子過程,同時可以獲取到合併後的各處理子過程的時鐘周期數,得到量化值集合為It1J = {250,200, 145, 200}。步驟306,根據合併後的處理子過程的個數生成流水線級數。當關鍵路徑中的處理子過程的個數小於處理器核數時,根據當前關鍵路徑中的處理子過程的個數生成流水線級數。或者,在完成一次合併之後,根據合併後的處理子過程的個數生成流水線級數。本實施例中具體將合併後的關鍵路徑中包含的處理子過程的個數作為流水線級數。步驟307,根據所述流水線條數的取值範圍、每條流水線的最小處理核數和所述處理器核數生成流水線條數。在完成一次處理子過程的合併之後,根據流水線條數的取值範圍、每條流水線的最小處理核數和處理器核數生成流水線條數,以使生成的流水線條數與每條流水線的最小處理核數的乘積大於所述處理器核數。具體地,可以採用下述公式(I)來計算每條流水線
的最小處理核數TV = IrmmZIraJ (I)即對Tmax除以Tsim的商值進行向上取整,其中,N為所述每條流水線的最小處理核數,Tsim為關鍵路徑中各處理子過程的量化值的總和,Tmax為關鍵路徑中各處理子過程的量
9
化值的最大值。仍以上述示例,l =^X=795Cycles,L S 200CycIes,通過斤[τ ]可
η=\I sum max I
以計算得到每條流水線的最小處理核數為4。在計算流水線條數時,可以根據每條流水線的最小處理核數和處理器核數,獲取滿足流水線條數與每條流水線的最小處理核數的乘積大於處理器核數條件,且處於流水線條數的取值範圍內的候選流水線條數。由此可見,需要獲取滿足條件「流水線條數*4>6」,且位於範圍{2,4,8}內的流水線條數,而流水線條數為2、4或8均能滿足上述條件,得到候選流水線條數為2、4、8。然後從候選流水線條數中選擇最小值作為流水線條數,即生成流水線條數為2。步驟308,採用流水線條數和流水線級數處理報文。在通過上述步驟獲取到流水線條數和流水線級數,將計算得到的流水線條數和流水線級數設定在網絡設備中,網絡設備採用該流水線條數和流水線級數處理報文。具體可以通過對關鍵路徑中的各處理子過程進行合併,在滿足以處理器核數和流水線條數取值範圍為約束條件的前提下,找到一種改進流水線報文處理階段中對流水線條數和流水線級數的較優配置。進一步地,本實施例提供的基於多核處理器的報文處理方法還可以包括如下步驟當網絡設備的業務功能配置發生變化時,根據變化後的業務功能配置更新上述步驟中 獲取的關鍵路徑中的各處理子過程,並獲取更新後的關鍵路徑中更新的處理子過程的量化值。具體可以根據網絡設備當前配置的業務功能,對關鍵路徑中的各處理過程進行直接增減即可,無需重新尋找報文處理的關鍵路徑。然後可以根據更新後的關鍵路徑中的各處理子過程的量化值、流水線條數的取值範圍和處理器核數,重新計算流水線條數和流水線級數,再將重新計算得到的流水線條數和流水線級數配置在網絡設備中。本實施例提供了一種基於多核處理器的報文處理方法,通過分析獲取報文處理過程的關鍵路徑,並量化生成各處理子過程的量化值,根據預設的散列算法對應的散列值範圍獲取流水線條數的取值範圍,再根據關鍵路徑中的各處理子過程的量化值、流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數,以採用流水線條數和流水線級數處理報文。本實施例通過優化調整流水線的級數,對報文散列不均衡或流數非常少只命中少數幾條甚至一條流水線時,通過對報文處理任務階段進行重新劃分,對流水線參數進行動態優化設定,使得網絡設備能夠達到最佳的數據處理性能,同時增加了每條流水線參與處理的處理器核數,充分利用了多核處理器的並行特性,提高了設備的最差處理性能。另夕卜,採用本實施例所提供的方法對流水線條數和流水線級數進行優化設定,不僅可以提高單條流水線的並發性,同時又避免了多核參與一條流水線處理報文時指令緩存和數據緩存被頻繁切換的問題,進而提高了指令緩存(Instruction Ccache ;以下簡稱Ι-Cache)和數據緩存(Data Cache ;以下簡稱D_Cache)的命中率。本領域普通技術人員可以理解實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬體來完成。前述的程序可以存儲於一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者光碟等各種可以存儲程序代碼的介質。圖5為本發明基於多核處理器的報文處理裝置實施例一的結構示意圖,如圖5所示,本實施例提供了一種基於多核處理器的報文處理裝置,可以具體執行上述方法實施例一中的各個步驟,此處不再贅述。本實施例提供的基於多核處理器的報文處理裝置可以具體包括路徑獲取模塊501、量化模塊502、範圍獲取模塊503和計算模塊504。其中,獲取模塊501用於對網絡設備的報文處理過程的程序執行路徑進行分析,獲取所述報文處理過程的關鍵路徑。量化模塊502用於對所述關鍵路徑中的各處理子過程進行量化分析,分別生成所述各處理子過程的量化值。範圍獲取模塊503用於根據預設的散列算法對應的散列值範圍獲取流水線條數的取值範圍。計算模塊504用於根據所述關鍵路徑中的各處理子過程的量化值、所述流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數,以採用所述流水線條數和所述流水線級數處理報文。圖6為本發明基於多核處理器的報文處理裝置實施例二的結構示意圖,如圖6所示,本實施例提供了一種基於多核處理器的報文處理裝置,可以具體執行上述方法實施例二中的各個步驟,此處不再贅述。本實施例提供的基於多核處理器的報文處理裝置在上述圖5所示的基礎之上7,計算模塊504可以具體包括合併單元514、級數生成單元524和條數生成單元534。其中,合併單元514用於當所述關鍵路徑中的處理子過程的個數大於處理器核數時,對所述關鍵路徑中的各處理子過程進行合併,以使合併後的處理子過程的個數小於所述處理器核數。級數生成單元524用於根據所述合併後的處理子過程的個數生成流水線級數。條數生成單元534用於根據所述流水線條數的取值範圍、每條流水線的最小處 理核數和所述處理器核數生成流水線條數,以使生成的流水線條數與每條流水線的最小處理核數的乘積大於所述處理器核數,所述每條流水線的最小處理核數是根據所述關鍵路徑中的各處理子過程的量化值計算得到的。具體地,條數生成單元534具體用於根據每條流水線的最小處理核數和所述處理器核數,獲取滿足流水線條數與每條流水線的最小處理核數的乘積大於所述處理器核數條件,且處於所述流水線條數的取值範圍內的候選流水線條數;並選擇所述候選流水線條數中的最小值作為流水線條數。具體地,合併單元514具體用於根據所述關鍵路徑中各子處理過程的業務功能,對所述關鍵路徑中的相鄰子處理過程進行合併;或者具體用於獲取所述關鍵路徑中各子處理過程的量化值的最大值,對所述關鍵路徑中的相鄰子處理過程進行合併,合併後的子處理過程的量化值小於所述量化值的最大值。進一步地,本實施例中的計算模塊還可以包括計算單元544。計算單元544用於根據所述關鍵路徑中的各處理子過程的量化值,並採用上述公式(I)計算所述每條流水線的最小處理核數。更具體地,本實施例提供的基於多核處理器的報文處理裝置還可以包括路徑更新模塊505,路徑更新模塊505用於當所述網絡設備的業務功能配置發生變化時,根據變化後的業務功能配置更新所述關鍵路徑中的各處理子過程,並獲取更新後的關鍵路徑中更新的處理子過程的量化值。計算模塊504還用於根據所述更新後的關鍵路徑中的各處理子過程的量化值、所述流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數。本實施例提供了一種基於多核處理器的報文處理裝置,通過分析獲取報文處理過程的關鍵路徑,並量化生成各處理子過程的量化值,根據預設的散列算法對應的散列值範圍獲取流水線條數的取值範圍,再根據關鍵路徑中的各處理子過程的量化值、流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數,以採用流水線條數和流水線級數處理報文。本實施例通過優化調整流水線的級數,對報文散列不均衡或流數非常少只命中少數幾條甚至一條流水線時,通過對報文處理任務階段進行重新劃分,對流水線參數進行動態優化設定,使得網絡設備能夠達到最佳的數據處理性能,同時增加了每條流水線參與處理的處理器核數,充分利用了多核處理器的並行特性,提高了設備的最差處理性能。另夕卜,採用本實施例所提供的方法對流水線條數和流水線級數進行優化設定,不僅可以提高單條流水線的並發性,同時又避免了多核參與一條流水線處理報文時指令緩存和數據緩存被頻繁切換的問題,進而提高了 I-Cache和D-Cache的命中率。本實施例還提供了一種網絡設備,可以具體包括上述圖5或圖6所示的基於多核處理器的報文處理裝置。 最後應說明的是以上各實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的範圍。
權利要求
1.一種基於多核處理器的報文處理方法,其特徵在於,包括 對網絡設備的報文處理過程的程序執行路徑進行分析,獲取所述報文處理過程的關鍵路徑; 對所述關鍵路徑中的各處理子過程進行量化分析,分別生成所述各處理子過程的量化值; 根據預設的散列算法對應的散列值範圍獲取流水線條數的取值範圍; 根據所述關鍵路徑中的各處理子過程的量化值、所述流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數,以採用所述流水線條數和所述流水線級數處理報文。
2.根據權利要求I所述的方法,其特徵在於,所述根據所述關鍵路徑中的各處理子過程的量化值、所述流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數包括 當所述關鍵路徑中的處理子過程的個數大於處理器核數時,對所述關鍵路徑中的各處理子過程進行合併,以使合併後的處理子過程的個數小於所述處理器核數; 根據所述合併後的處理子過程的個數生成流水線級數; 根據所述流水線條數的取值範圍、每條流水線的最小處理核數和所述處理器核數生成流水線條數,以使生成的流水線條數與每條流水線的最小處理核數的乘積大於所述處理器核數,所述每條流水線的最小處理核數是根據所述關鍵路徑中的各處理子過程的量化值計算得到的。
3.根據權利要求2所述的方法,其特徵在於,所述根據所述流水線條數的取值範圍、每條流水線的最小處理核數和所述處理器核數生成流水線條數,以使生成的流水線條數與每條流水線的最小處理核數的乘積大於所述處理器核數包括 根據每條流水線的最小處理核數和所述處理器核數,獲取滿足流水線條數與每條流水線的最小處理核數的乘積大於所述處理器核數條件,且處於所述流水線條數的取值範圍內的候選流水線條數; 選擇所述候選流水線條數中的最小值作為流水線條數。
4.根據權利要求2所述的方法,其特徵在於,所述對所述關鍵路徑中的各處理子過程進行合併包括 根據所述關鍵路徑中各子處理過程的業務功能,對所述關鍵路徑中的相鄰子處理過程進行合併;或者, 獲取所述關鍵路徑中各子處理過程的量化值的最大值,對所述關鍵路徑中的相鄰子處理過程進行合併,合併後的子處理過程的量化值小於所述量化值的最大值。
5.根據權利要求2所述的方法,其特徵在於,還包括 根據所述關鍵路徑中的各處理子過程的量化值,並採用下述公式計算所述每條流水線的最小處理核數; 其中,N為所述每條流水線的最小處理核數,Tsum為所述關鍵路徑中各處理子過程的量化值的總和,Tfflax為所述關鍵路徑中各處理子過程的量化值的最大值。
6.根據權利要求1-5中任一項所述的方法,其特徵在於,還包括 當所述網絡設備的業務功能配置發生變化時,根據變化後的業務功能配置更新所述關鍵路徑中的各處理子過程,並獲取更新後的關鍵路徑中更新的處理子過程的量化值; 所述根據所述關鍵路徑中的各處理子過程的量化值、所述流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數還包括 根據所述更新後的關鍵路徑中的各處理子過程的量化值、所述流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數。
7.一種基於多核處理器的報文處理裝置,其特徵在於,包括 路徑獲取模塊,用於對網絡設備的報文處理過程的程序執行路徑進行分析,獲取所述報文處理過程的關鍵路徑; 量化模塊,用於對所述關鍵路徑中的各處理子過程進行量化分析,分別生成所述各處理子過程的量化值; 範圍獲取模塊,用於根據預設的散列算法對應的散列值範圍獲取流水線條數的取值範圍; 計算模塊,用於根據所述關鍵路徑中的各處理子過程的量化值、所述流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數,以採用所述流水線條數和所述流水線級數處理報文。
8.根據權利要求7所述的裝置,其特徵在於,所述計算模塊包括 合併單元,用於當所述關鍵路徑中的處理子過程的個數大於處理器核數時,對所述關鍵路徑中的各處理子過程進行合併,以使合併後的處理子過程的個數小於所述處理器核數; 級數生成單元,用於根據所述合併後的處理子過程的個數生成流水線級數; 條數生成單元,用於根據所述流水線條數的取值範圍、每條流水線的最小處理核數和所述處理器核數生成流水線條數,以使生成的流水線條數與每條流水線的最小處理核數的乘積大於所述處理器核數,所述每條流水線的最小處理核數是根據所述關鍵路徑中的各處理子過程的量化值計算得到的。
9.根據權利要求8所述的裝置,其特徵在於,所述條數生成單元具體用於根據每條流水線的最小處理核數和所述處理器核數,獲取滿足流水線條數與每條流水線的最小處理核數的乘積大於所述處理器核數條件,且處於所述流水線條數的取值範圍內的候選流水線條數;並選擇所述候選流水線條數中的最小值作為流水線條數。
10.根據權利要求8所述的裝置,其特徵在於,所述合併單元具體用於根據所述關鍵路徑中各子處理過程的業務功能,對所述關鍵路徑中的相鄰子處理過程進行合併;或者具體用於獲取所述關鍵路徑中各子處理過程的量化值的最大值,對所述關鍵路徑中的相鄰子處理過程進行合併,合併後的子處理過程的量化值小於所述量化值的最大值。
11.根據權利要求8所述的裝置,其特徵在於,所述計算模塊還包括 計算單元,用於根據所述關鍵路徑中的各處理子過程的量化值,並採用下述公式計算所述每條流水線的最小處理核數N = \llim/Tmax}; 其中,N為所述每條流水線的最小處理核數,Tsum為所述關鍵路徑中各處理子過程的量化值的總和,Tfflax為所述關鍵路徑中各處理子過程的量化值的最大值。
12.根據權利要求7-11中任一項所述的裝置,其特徵在於,還包括 路徑更新模塊,用於當所述網絡設備的業務功能配置發生變化時,根據變化後的業務功能配置更新所述關鍵路徑中的各處理子過程,並獲取更新後的關鍵路徑中更新的處理子過程的量化值; 所述計算模塊還用於根據所述更新後的關鍵路徑中的各處理子過程的量化值、所述流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數。
13.—種網絡設備,其特徵在於,包括權利要求7-12中任一項所述的基於多核處理器的報文處理裝置。
全文摘要
本發明提供一種基於多核處理器的報文處理方法、裝置和網絡設備,方法包括對網絡設備的報文處理過程的程序執行路徑進行分析,獲取報文處理過程的關鍵路徑;對關鍵路徑中的各處理子過程進行量化分析,分別生成各處理子過程的量化值;根據預設的散列算法對應的散列值範圍獲取流水線條數的取值範圍;根據關鍵路徑中的各處理子過程的量化值、流水線條數的取值範圍和處理器核數計算流水線條數和流水線級數,以採用流水線條數和流水線級數處理報文。本發明還提供了一種基於多核處理器的報文處理裝置和網絡設備。本發明對流水線參數進行動態優化設定,使得網絡設備能夠達到最佳的數據處理性能。
文檔編號H04L12/56GK102780616SQ20121025199
公開日2012年11月14日 申請日期2012年7月19日 優先權日2012年7月19日
發明者李淑萍, 林鏡華 申請人:北京星網銳捷網絡技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀