專利名稱:一種基于多核處理器的流量控制方法和多核處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種基于多核處理器的流量控制方法和多核處理
O
背景技術(shù):
由于網(wǎng)絡(luò)總是由有限的資源所組成,包括網(wǎng)絡(luò)節(jié)點(diǎn)內(nèi)的信息緩沖器、節(jié)點(diǎn)處理器和輸入/輸出鏈路等。若對數(shù)據(jù)傳輸不加任何控制措施,就可能出現(xiàn)網(wǎng)內(nèi)數(shù)據(jù)流量不均, 有些節(jié)點(diǎn)和鏈路上的數(shù)據(jù)超過了節(jié)點(diǎn)的存儲和處理能力,或者超過了鏈路的傳輸能力,導(dǎo) 致網(wǎng)絡(luò)的擁塞。通常情況下,網(wǎng)絡(luò)邊緣處的節(jié)點(diǎn)設(shè)備作為轉(zhuǎn)發(fā)單元,負(fù)責(zé)執(zhí)行流量/擁塞控 制。這些轉(zhuǎn)發(fā)單元的核心包括網(wǎng)絡(luò)處理器、多核處理器和可編程門陣列等。隨著網(wǎng)絡(luò)流量 的日益增長,處理器逐漸向多核方向發(fā)展,并且由于單核處理的業(yè)務(wù)日趨復(fù)雜,多核處理器 內(nèi)部實(shí)際上也形成了以單核為節(jié)點(diǎn)的微網(wǎng)絡(luò)。與由節(jié)點(diǎn)設(shè)備構(gòu)成的宏觀網(wǎng)絡(luò)類似,為了保證微網(wǎng)絡(luò)內(nèi)的報(bào)文被轉(zhuǎn)發(fā)出去時(shí)是有 序的,通常需要在微網(wǎng)絡(luò)內(nèi)就采取一些報(bào)文保序的措施,而這些報(bào)文保序措施恰恰也構(gòu)成 了微網(wǎng)絡(luò)內(nèi)流量突發(fā)的原因,導(dǎo)致數(shù)據(jù)流在未被轉(zhuǎn)發(fā)出去之前,微網(wǎng)絡(luò)就發(fā)生了擁塞。例如,多核處理器的多線程處理機(jī)制容易造成同一條數(shù)據(jù)流的報(bào)文亂序,對此,通 常的保序做法是采用多線程之間流水線方式傳遞出發(fā)信號量,由得到信號量的線程執(zhí)行處 理,而線程的處理時(shí)刻有時(shí)并不均勻,由此造成流量突發(fā),進(jìn)而發(fā)生微網(wǎng)絡(luò)的擁塞。再如,多 核處理器中的前端單核在處理報(bào)文時(shí)增加報(bào)文序列號,后端單核需要對報(bào)文緩存從而重新 排序以實(shí)現(xiàn)報(bào)文保序,這種報(bào)文保序方式也會造成流量突發(fā),進(jìn)而發(fā)生微網(wǎng)絡(luò)的擁塞。由于現(xiàn)有技術(shù)在處理微網(wǎng)絡(luò)內(nèi)傳輸?shù)膱?bào)文時(shí),單核之間報(bào)文的轉(zhuǎn)發(fā)只是采用先進(jìn) 先出(FIFO,F(xiàn)irst In First Out)的簡單轉(zhuǎn)發(fā)模式,而構(gòu)成多核處理器的各個(gè)單核性能 并非完全一致,例如,可能處于前端的單核性能高于處于后端的單核性能,如此,一旦微網(wǎng) 絡(luò)內(nèi)的流量突發(fā)導(dǎo)致?lián)砣?,進(jìn)而需要丟棄報(bào)文時(shí),單核之間對報(bào)文采用的FIFO這種簡單轉(zhuǎn) 發(fā)模式容易造成高優(yōu)先級報(bào)文被丟棄。因此,即使在宏觀網(wǎng)絡(luò)的發(fā)送節(jié)點(diǎn)執(zhí)行了服務(wù)質(zhì)量 (QoS,Quality of Service)控制,但多核處理器內(nèi)部(微網(wǎng)絡(luò)內(nèi))發(fā)生的上述異常實(shí)際上 已經(jīng)破壞了網(wǎng)絡(luò)的QoS。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種基于多核處理器的流量控制方法和多核處理器?!N基于多核處理器的流量控制方法,包括多核處理器中的首核對接收到的報(bào) 文進(jìn)行優(yōu)先級排序,并將排序后的報(bào)文發(fā)送到至少一個(gè)中間核,所述中間核為所述多核處 理器中除首核之外的其他單核;多核處理器中所述至少一個(gè)中間核中的任意一個(gè)中間核接 收上一個(gè)單核發(fā)送的報(bào)文并轉(zhuǎn)發(fā)。一種多核處理器,包括首核和至少一個(gè)中間核,所述首核,用于對接收到的報(bào)文進(jìn) 行優(yōu)先級排序并將排序后的報(bào)文發(fā)送到至少一個(gè)中間核;所述至少一個(gè)中間核中的任意一個(gè)中間核,用于接收上一個(gè)單核發(fā)送的報(bào)文并轉(zhuǎn)發(fā),所述中間核為所述多核處理器中除首 核之外的其他單核。本發(fā)明實(shí)施例通過的基于多核處理器的流量控制方法中,多核處理器中的首核對 接收到的報(bào)文進(jìn)行優(yōu)先級排序并按照排序后的優(yōu)先級高低轉(zhuǎn)發(fā)該報(bào)文;多核處理器中的中 間核在其出口處將經(jīng)過優(yōu)先級排序的報(bào)文轉(zhuǎn)發(fā)至該多核處理器中的下一單核。與現(xiàn)有技術(shù) 相比,本發(fā)明實(shí)施例提供的報(bào)文優(yōu)先級排序不僅可以有效預(yù)防微網(wǎng)絡(luò)內(nèi)部發(fā)生擁塞,而且 在微網(wǎng)絡(luò)內(nèi)部發(fā)生擁塞時(shí),能夠丟棄低優(yōu)先級報(bào)文來保障高優(yōu)先級報(bào)文,從而在微網(wǎng)絡(luò)內(nèi) 部提供了較好的QoS,并進(jìn)一步為宏觀網(wǎng)絡(luò)的QoS提供了保障。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹。圖1是本發(fā)明實(shí)施例提供的一種基于多核處理器的流量/擁塞控 制方法基本流程 示意圖;圖2是現(xiàn)有技術(shù)的多核處理器中單核按照FIFO原則轉(zhuǎn)發(fā)報(bào)文示意圖;圖3是本發(fā)明實(shí)施例提供的優(yōu)先級映射示意圖;圖4是本發(fā)明實(shí)施例提供的一種通用流量整形示意圖;圖5是本發(fā)明實(shí)施例一提供的一種多核處理器基本邏輯結(jié)構(gòu)示意圖;圖6是本發(fā)明實(shí)施例二提供的一種多核處理器基本邏輯結(jié)構(gòu)示意圖;圖7是本發(fā)明實(shí)施例三提供的一種多核處理器基本邏輯結(jié)構(gòu)示意圖;圖8是本發(fā)明實(shí)施例四提供的一種多核處理器基本邏輯結(jié)構(gòu)示意圖;圖9是本發(fā)明實(shí)施例五提供的一種多核處理器基本邏輯結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然, 所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施 例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于 本發(fā)明保護(hù)的范圍?,F(xiàn)有技術(shù)多核處理器中的單核對所有報(bào)文都是無差別地對待,如圖2所示,當(dāng)報(bào) 文A、報(bào)文B和報(bào)文C從入口依次進(jìn)入(報(bào)文A先進(jìn)入,報(bào)文B次之,之后是報(bào)文C)某一單 核時(shí),單核將報(bào)文A、報(bào)文B和報(bào)文C報(bào)文送入FIFO隊(duì)列。在調(diào)度時(shí),按照FIFO的原則,報(bào) 文A先出列,報(bào)文B次之,之后是報(bào)文C。這種處理方式的結(jié)果是后送入隊(duì)列的報(bào)文,即使 其優(yōu)先級較高,但在微網(wǎng)絡(luò)內(nèi)部發(fā)生擁塞時(shí)仍需要排在先進(jìn)入隊(duì)列、但優(yōu)先級較低的報(bào)文 之后發(fā)送出去,甚至在微網(wǎng)絡(luò)或宏觀網(wǎng)絡(luò)環(huán)境持續(xù)惡化時(shí)可能先被丟棄。在本發(fā)明實(shí)施例 中,可以通過對報(bào)文進(jìn)行優(yōu)先級映射來解決現(xiàn)有技術(shù)這一問題。請參閱圖1,本發(fā)明實(shí)施例提供的一種基于多核處理器的流量控制方法基本流程 示意圖,主要包括步驟S101,多核處理器中的首核對接收到的報(bào)文進(jìn)行優(yōu)先級排序,并將排序后的報(bào)文 發(fā)送到至少一個(gè)中間核。
S102,多核處理器至少一個(gè)中間核中的任意一個(gè)中間核接收上一個(gè)單核發(fā)送的報(bào) 文后轉(zhuǎn)發(fā)。顯然,多核處理器至少包括兩個(gè)單核。在本發(fā)明實(shí)施例中,所謂首核是指多核處理 器在收到宏觀網(wǎng)絡(luò)中其他節(jié)點(diǎn)設(shè)備發(fā)送的報(bào)文時(shí),該多核處理器中第一個(gè)接收到該報(bào)文的 單核。進(jìn)一步地,首核對接收到的報(bào)文進(jìn)行優(yōu)先級排序可以包括SlO 11,首核對接收到的報(bào)文進(jìn)行分類。
報(bào)文分類也稱作流分類(Traffic Classification),通過采用一定的規(guī)則識別出 符合某類特征的報(bào)文,它是微網(wǎng)絡(luò)中各個(gè)單核對業(yè)務(wù)進(jìn)行區(qū)分服務(wù)的前提和基礎(chǔ),單核對 報(bào)文所進(jìn)行的各個(gè)處理動作,例如報(bào)文流入微網(wǎng)絡(luò)時(shí)進(jìn)行的流量監(jiān)管、報(bào)文流出單核之前 進(jìn)行的流量整形和微網(wǎng)絡(luò)發(fā)生擁塞時(shí)對隊(duì)列進(jìn)行的擁塞管理等等都需要和流分類關(guān)聯(lián)起 來才有意義。流分類的規(guī)則可以很簡單,例如,可以根據(jù)報(bào)文中報(bào)文頭(Head)的服務(wù)類型 (ToS,Type of Service)字段識別出不同類型的流量;流分類的規(guī)則也可以采用其它方式, 例如,可以綜合數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層的MAC地址、IP協(xié)議類型、源地址、目的地址甚 至應(yīng)用程序的端口號等相關(guān)信息對報(bào)文進(jìn)行識別。與各種節(jié)點(diǎn)設(shè)備(例如,路由器、交換機(jī) 和NodeB等)構(gòu)成的宏觀網(wǎng)絡(luò)相比,由單核構(gòu)成的微網(wǎng)絡(luò)(多核處理器)較為簡單,需要處 理的也是微網(wǎng)絡(luò)內(nèi)部的簡單QoS。因此,不必采用靈活度很高的流分類算法,一般來說只要 能夠區(qū)分信令報(bào)文和數(shù)據(jù)報(bào)文即可,簡單的流分類原則在一定程度上可以減少報(bào)文處理的 延遲。以無線控制領(lǐng)域?yàn)槔M(jìn)行說明,信令報(bào)文承載在傳輸控制協(xié)議/流傳輸控制協(xié)議 (TCP/SCTP, Transmission Control Protocol/Stream Transmission ControIProtoco1) 或者用戶數(shù)據(jù)報(bào)協(xié)議(UDP,User Datagram Protocol)之上的D通道鏈路接入?yún)f(xié)議(LAPD, Link Access Protocol on the D channel),一般采用報(bào)文五元組(源地址、源端口號、協(xié) 議號碼、目的地址、目的端口號)即可識別,因此,在本發(fā)明實(shí)施例中,可以采用五元組的簡 單HASH算法完成流分類,識別出信令報(bào)文和數(shù)據(jù)報(bào)文。S1012,首核根據(jù)分類的結(jié)果對分類后的報(bào)文進(jìn)行優(yōu)先級映射。對分類后的報(bào)文進(jìn)行優(yōu)先級映射包括按照報(bào)文的類型,將各個(gè)分類后的報(bào)文賦 予相應(yīng)的優(yōu)先級字段。單核可以根據(jù)報(bào)文攜帶的報(bào)文頭,為報(bào)文賦予一種具有本地意義的優(yōu)先級字段, 艮口,根據(jù)報(bào)文的類型,將報(bào)文打上相應(yīng)的優(yōu)先級標(biāo)記,這些優(yōu)先級標(biāo)記就是具有本地意義的 優(yōu)先級字段。例如,信令報(bào)文和數(shù)據(jù)報(bào)文在進(jìn)入單核時(shí),信令報(bào)文與數(shù)據(jù)報(bào)文相比具有較 高的優(yōu)先級;此外,同樣是信令報(bào)文,也可以為不同的信令報(bào)文例如信令報(bào)文1、信令報(bào)文
2........信令報(bào)文η分配高低不同的優(yōu)先級,如此,每類報(bào)文都具有一個(gè)相應(yīng)的優(yōu)先級,
從而完成報(bào)文優(yōu)先級的映射??紤]到由單核構(gòu)成的微網(wǎng)絡(luò)需要處理的是簡單QoS,本實(shí)施例可以將所有進(jìn)入單 核的報(bào)文分成4類(對應(yīng)4種優(yōu)先級),在進(jìn)入中間核時(shí)可以根據(jù)報(bào)文的種類存入4個(gè)優(yōu)先 級隊(duì)列(PQ,Priority Queuing)中的一個(gè)隊(duì)列。如圖3所示,4個(gè)優(yōu)先級隊(duì)列分別為高優(yōu) 先隊(duì)列、中優(yōu)先隊(duì)列、正常優(yōu)先隊(duì)列和低優(yōu)先隊(duì)列,它們的優(yōu)先級依次降低。在報(bào)文出列的 時(shí)候,先讓高優(yōu)先隊(duì)列中的報(bào)文出列并發(fā)送,直到高優(yōu)先隊(duì)列中的報(bào)文發(fā)送完;然后發(fā)送中優(yōu)先隊(duì)列中的報(bào)文,同樣,直到發(fā)送完;然后是正常優(yōu)先隊(duì)列和低優(yōu)先隊(duì)列。這樣,分類后屬 于較高優(yōu)先級隊(duì)列的報(bào)文將會得到優(yōu)先發(fā)送,使得關(guān)鍵業(yè)務(wù)的報(bào)文(例如,信令報(bào)文)能夠 得到優(yōu)先處理,非關(guān)鍵業(yè)務(wù)(例如,E-Mail)的報(bào)文在微網(wǎng)絡(luò)處理完關(guān)鍵業(yè)務(wù)后得到處理, 由此既保證了關(guān)鍵業(yè)務(wù)的優(yōu)先,又充分利用了各個(gè)單核的資源。需要說明的是,報(bào)文所經(jīng)過映射后得到的優(yōu)先級字段可以由首核向中間核傳遞, 中間核也可以將該優(yōu)先級字段向下一單核或宏觀網(wǎng)絡(luò)的節(jié)點(diǎn)設(shè)備傳遞。如此,不必每個(gè)中 間核再對報(bào)文做優(yōu)先級映射,微網(wǎng)絡(luò)就可以獲得用以決定報(bào)文調(diào)度順序的優(yōu)先級字段,從 而可以全面有效地控制報(bào)文的轉(zhuǎn)發(fā)調(diào)度能力。首核對報(bào)文進(jìn)行優(yōu)先級映射為下一單核的流量管理提供了前提和基礎(chǔ),其本身并 不對微網(wǎng)絡(luò)內(nèi)部擁塞(例如,由于微網(wǎng)絡(luò)內(nèi)部流量的突發(fā)造成的擁塞)做任何處理,但中間 核(指多核處理器中除首核之外的任意一個(gè)單核)可以對經(jīng)過優(yōu)先級排序的報(bào)文進(jìn)行流量 整形。在本發(fā)明實(shí)施例中,多核處理器至少一個(gè)中間核中的任意一個(gè)中間核接收上一個(gè) 單核發(fā)送的報(bào)文后轉(zhuǎn)發(fā),可以采用兩種方式,一種是對從上一單核接收的報(bào)文不做任何形 式的處理直接轉(zhuǎn)發(fā),另一種是對報(bào)文進(jìn)行流量整形后再轉(zhuǎn)發(fā)。流量整形是一種主動調(diào)整流 量輸出速率的措施,其典型作用是限制流出某一單核的全部報(bào)文或某一類報(bào)文的流量突 發(fā),使全部報(bào)文或這類報(bào)文以比較均勻的速度向下一單核發(fā)送。例如,為了預(yù)防微網(wǎng)絡(luò)中的 流量突發(fā)造成的擁塞,減輕下一級單核的處理壓力,多核處理器中的任意一個(gè)中間核可以 對報(bào)文進(jìn)行流量整形后再轉(zhuǎn)發(fā),任意一個(gè)中間核接收上一個(gè)單核發(fā)送的報(bào)文后轉(zhuǎn)發(fā)的過程 可以包括
S1021,判斷是否需要對任意一個(gè)中間核收到的報(bào)文進(jìn)行流量整形;S1022,若需要,則該任意一個(gè)中間核在自身的出口處對收到的報(bào)文進(jìn)行流量整形 后再轉(zhuǎn)發(fā)。在圖4所示本發(fā)明實(shí)施例提供的一種通用流量整形(GTS,Generic TrafficShaping)示意圖中,令牌桶用于存放令牌,令牌桶中的每一個(gè)令牌都代表一個(gè)字 節(jié),令牌桶控制機(jī)制基于令牌桶中是否存在令牌來指示什么時(shí)候可以發(fā)送流量(報(bào)文)。當(dāng) 令牌桶中的令牌數(shù)量大于或等于即將被轉(zhuǎn)發(fā)的報(bào)文的長度時(shí),該報(bào)文才可以被轉(zhuǎn)發(fā),即,如 果令牌桶中有足夠的令牌可以用來發(fā)送報(bào)文,則報(bào)文直接被繼續(xù)發(fā)送下去,同時(shí),令牌桶中 的令牌數(shù)量按照被轉(zhuǎn)發(fā)出去的報(bào)文的長度做相應(yīng)數(shù)量的減少。在判斷是否需要對收到的報(bào)文進(jìn)行流量整形時(shí),可以將收到的報(bào)文的長度與令牌 桶中的令牌數(shù)量進(jìn)行比較,當(dāng)報(bào)文長度與令牌桶中的令牌數(shù)量限定的流量特性不符,例如, 當(dāng)令牌桶中的令牌數(shù)量減少以致具有某一長度的報(bào)文不能再發(fā)送時(shí),判斷需要對收到的報(bào) 文進(jìn)行流量整形。此時(shí),可以將收到該報(bào)文存入GTS緩沖隊(duì)列。當(dāng)令牌桶中有足夠的令牌 時(shí),即所述收到的報(bào)文的長度與所述令牌桶中的令牌數(shù)量限定的流量特性相符后,GTS從緩 沖隊(duì)列中取出與所述令牌桶中的令牌數(shù)量相對應(yīng)長度的報(bào)文后轉(zhuǎn)發(fā),例如按一定的周期從 隊(duì)列中取出報(bào)文進(jìn)行發(fā)送,直到令牌桶中的令牌數(shù)又減少到GTS緩沖隊(duì)列中的報(bào)文不能再 發(fā)送或是GTS緩沖隊(duì)列中的報(bào)文全部發(fā)送完畢為止,具體地,在取出與所述令牌桶中的令 牌數(shù)量相對應(yīng)長度的報(bào)文時(shí),可以取出在數(shù)值上與所述令牌桶中的令牌數(shù)量相等的報(bào)文。由于令牌是以事先配置的恒定速度,例如,根據(jù)下一級單核的處理能力配置的一個(gè)恒定速度向令牌桶存入令牌,在本實(shí)施例中,還提供了另一種判斷是否需要對收到的報(bào) 文進(jìn)行流量整形的方法,該方法可以包括S’ 1021,將報(bào)文到達(dá)當(dāng)前中間核的速度與向令牌桶中放置令牌的速度進(jìn)行比較;S’ 1022,若該報(bào)文到達(dá)中間核的速度大于向令牌桶中放置令牌的速度,則判斷需 要對收到的報(bào)文進(jìn)行流量整形。這是因?yàn)?,下一級單核的處理能力,例如,接收?bào)文的速度 與令牌存入令牌桶的速度相當(dāng),如果以報(bào)文到達(dá)中間核的當(dāng)前速度轉(zhuǎn)發(fā)至下一級單核,由 于下一級單核無法接收,則當(dāng)前中間核只能將接收到的報(bào)文丟棄,因此,在上述情形下,需 要對收到的報(bào)文進(jìn)行流量整形。與前述實(shí)施例部分類似,在S’ 1022中,當(dāng)判斷需要對收到的報(bào)文進(jìn)行 流量整形 時(shí),中間核將收到的報(bào)文存入緩沖隊(duì)列,并且以與向令牌桶中放置令牌的速度相對應(yīng)的速 度從緩沖隊(duì)列中取出報(bào)文后轉(zhuǎn)發(fā),例如以數(shù)值上與向令牌桶中放置令牌的速度相等的速度 與從所述緩沖隊(duì)列中取出報(bào)文后轉(zhuǎn)發(fā)。對于步驟S1021、S1022或S,1021、S,1022及其后續(xù)流量整形的原理,可以舉例如 下假設(shè)令牌桶被配置的平均存入令牌速率為r個(gè)/秒,S卩,每隔Ι/r秒向令牌桶存入 一個(gè)令牌,進(jìn)一步假設(shè)令牌桶最多可以存放b個(gè)令牌。如果令牌到達(dá)時(shí)令牌桶已經(jīng)滿了,那 么這個(gè)令牌會被丟棄。當(dāng)η個(gè)字節(jié)(byte)的報(bào)文到達(dá)中間核時(shí),GTS就從令牌桶中刪除η 個(gè)令牌(被刪除的η個(gè)令牌可以視為“發(fā)放”給了該η個(gè)字節(jié)的報(bào)文),該η個(gè)字節(jié)的報(bào)文 從出口被轉(zhuǎn)送出去。如果令牌桶中少于η個(gè)令牌,η個(gè)字節(jié)的報(bào)文在數(shù)值上已經(jīng)大于令牌桶中的令牌 數(shù)量,那么不會刪除令牌,認(rèn)為這個(gè)報(bào)文在流量限制之外,即報(bào)文長度與令牌桶中的令牌數(shù) 量限定的流量特性不符,將該η個(gè)字節(jié)的報(bào)文存入GTS緩沖隊(duì)列,待到令牌桶中累積了足夠 多的令牌時(shí)再轉(zhuǎn)發(fā)。因此,本發(fā)明實(shí)施例提供的GTS可以允許最長b個(gè)字節(jié)的流量突發(fā),但 從長期運(yùn)行結(jié)果看,報(bào)文在中間核出口處被轉(zhuǎn)發(fā)的速率限制在常量r byte/S(r字節(jié)/秒)。 如果該中間核的下一單核可以接受的流量極限值是r byte/s,那么,由流量突發(fā)造成的擁 塞可以被該中間核很好地解決,報(bào)文也不會在該中間核的下一單核被丟棄。需要說明的是,報(bào)文在進(jìn)入GTS緩沖隊(duì)列之前是經(jīng)過了優(yōu)先級映射而具有各自的 優(yōu)先級,而緩沖隊(duì)列的優(yōu)先級與報(bào)文的優(yōu)先級相應(yīng),即,報(bào)文按照其優(yōu)先級被存入相應(yīng)優(yōu)先 級的緩沖隊(duì)列,從GTS緩沖隊(duì)列中取出的報(bào)文也是按照高優(yōu)先級的先取出、低優(yōu)先級的后 取出這個(gè)原則取出后轉(zhuǎn)發(fā)至下一單核。如此,可以保證在任何網(wǎng)絡(luò)環(huán)境下(例如,流量突發(fā) 以及由此造成的網(wǎng)絡(luò)擁塞),高優(yōu)先級的報(bào)文始終先于低優(yōu)先級的報(bào)文發(fā)送。為了更好地理解本發(fā)明實(shí)施例對流量整形的說明,可以舉一個(gè)應(yīng)用的場景。假設(shè) 多核處理器的中間核1向該中間核1的下一單核2發(fā)送報(bào)文,單核2對中間核1發(fā)送來的 報(bào)文進(jìn)行承諾訪問速率(CAR,Committed Access Rate)流量限制,即,單核2對超出了其中 的令牌桶限制的CAR流量特性(例如,最高速率是本實(shí)施例中的常量r)的報(bào)文直接丟棄。為了減少流量突發(fā)時(shí)報(bào)文在單核2的丟棄,可以在中間核1的出口對報(bào)文進(jìn)行GTS 處理,對于超出GTS流量特性的報(bào)文,即上述實(shí)施例中速率超過常量r的報(bào)文將存入中間核 1中的GTS緩沖隊(duì)列。當(dāng)可以繼續(xù)發(fā)送下一批報(bào)文時(shí),GTS再從該GTS緩沖隊(duì)列中取出報(bào)文 進(jìn)行發(fā)送。如此,發(fā)往單核2的報(bào)文將都符合單核2的流量特性規(guī)定,從而減少報(bào)文在單核2上的丟棄。相反,如果不在中間核1的出口進(jìn)行GTS處理,則所有超出單核2的CAR流量 特性的報(bào)文將被單核2丟棄。由上述本發(fā)明實(shí)施例可知,盡管隨著多核處理器中的單核數(shù)量增多以及業(yè)務(wù)功能 的復(fù)雜多樣化,多核處理器構(gòu)成的微網(wǎng)絡(luò)也日益復(fù)雜,但采用本發(fā)明實(shí)施例提供的報(bào)文優(yōu) 先級排序、優(yōu)先級隊(duì)列調(diào)度以及流量整形等擁塞管理,在微網(wǎng)絡(luò)內(nèi)部流量突發(fā)造成擁塞時(shí), 可以防止單核之間性能差異導(dǎo)致的高優(yōu)先級報(bào)文丟棄,進(jìn)一步為宏觀網(wǎng)絡(luò)的QoS提供了保 障。請參閱圖5,本發(fā)明實(shí)施例一提供的一種多核處理器基本邏輯結(jié)構(gòu)示意圖。為了便 于說明,僅僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。該多核處理器至少包括兩個(gè)單核處理器, 其中,首核51用于對接收到的報(bào)文進(jìn)行優(yōu)先級排序,并將排序后的報(bào)文發(fā)送到至少一個(gè)中 間核,任意一個(gè)中間核52用于接收上一個(gè)單核(包括首核51)發(fā)送的報(bào)文并轉(zhuǎn)發(fā)。本實(shí)施 例中,首核51是指多核處理器作為宏觀網(wǎng)絡(luò)的轉(zhuǎn)發(fā)單元在收到其他節(jié)點(diǎn)設(shè)備發(fā)送的報(bào)文 時(shí),微網(wǎng)絡(luò)(由多核處理器中單核構(gòu)成)中第一個(gè)接收到該報(bào)文的單核,中間核52可以是 多核處理器中除首核51之外的任意其他單核。圖5示例的首核51可以進(jìn)一步包括分類模塊611和優(yōu)先級映射模塊612,如圖6 所示本發(fā)明實(shí)施例提供的多核處理器,其中分類模塊611用于對接收到的報(bào)文進(jìn)行分類。即通過采用一定的規(guī)則識別出符合 某類特征的報(bào)文,它是微網(wǎng)絡(luò)中各個(gè)單核對業(yè)務(wù)進(jìn)行區(qū)分服務(wù)的前提和基礎(chǔ),單核對報(bào)文 所進(jìn)行的各個(gè)處理動作,例如報(bào)文流入微網(wǎng)絡(luò)時(shí)進(jìn)行的流量監(jiān)管、報(bào)文流出單核之前進(jìn)行 的流量整形和微網(wǎng)絡(luò)發(fā)生擁塞時(shí)對隊(duì)列進(jìn)行的擁塞管理等等都需要和分類模塊611執(zhí)行 的流分類關(guān)聯(lián)起來才有意義。在實(shí)施例中,分類模塊611可以采用報(bào)文五元組(源地址、源 端口號、協(xié)議號碼、目的地址、目的端口號)的簡單HASH算法完成流分類,識別出信令報(bào)文 和數(shù)據(jù)報(bào)文。優(yōu)先級映射模塊612,用于根據(jù)分類模塊611分類的結(jié)果對分類后的報(bào)文進(jìn)行優(yōu) 先級映射。在一個(gè)實(shí)施例中,其結(jié)果是完成了報(bào)文所攜帶的報(bào)文頭到報(bào)文優(yōu)先級的映射。報(bào) 文所攜帶的報(bào)文頭經(jīng)過優(yōu)先級映射模塊612映射后得到的優(yōu)先級字段可以由首核51向中 間核52傳遞,中間核52也可以將該優(yōu)先級字段向下一單核(例如,單核53等)傳遞。如 此,不必每個(gè)單核再對報(bào)文做優(yōu)先級映射,微網(wǎng)絡(luò)就可以獲得用以決定報(bào)文調(diào)度能力的優(yōu) 先級字段,從而可以全面有效地控制報(bào)文的轉(zhuǎn)發(fā)調(diào)度能力。圖5示例的中間核52可以進(jìn)一步包括判斷模塊711和整形模塊712,如圖7所示 本發(fā)明實(shí)施例三提供的多核處理器,其中判斷模塊711用于判斷是否需要對收到的報(bào)文進(jìn)行流量整形;整形模塊712用于在判斷模塊711判斷需要對收到的報(bào)文進(jìn)行流量整形時(shí),在中 間核出口處對收到的報(bào)文進(jìn)行流量整形后再將報(bào)文轉(zhuǎn)發(fā)至下一單核(例如,單核53等)或 宏觀網(wǎng)絡(luò)的節(jié)點(diǎn)設(shè)備。圖7示例的判斷模塊711可以進(jìn)一步包括第一比較單元811和第一判斷單元812, 整形模塊712可以進(jìn)一步包括第一緩存單元813和第一轉(zhuǎn)發(fā)單元814,如圖8所示本發(fā)明實(shí) 施例提供的多核處理器,其中第一比較單元811,用于將收到的報(bào)文的長度與令牌桶中的令牌數(shù)量進(jìn)行比較;
第一判斷單元812,用于第一比較單元811比較的結(jié)果為收到的報(bào)文的長度與所 述令牌桶中的令牌數(shù)量限定的流量特性不符時(shí),判斷需要對收到的報(bào)文進(jìn)行流量整形;第一緩存單元813,用于在第一判斷單元812判斷需要對收到的報(bào)文進(jìn)行流量整 形時(shí),將收到的報(bào)文存入緩沖隊(duì)列;第一轉(zhuǎn)發(fā)單元814,用于待收到的報(bào)文的長度與令牌桶中的令牌數(shù)量限定的流量 特性相符后,從緩沖隊(duì)列中取出與令牌桶中的令牌數(shù)量相對應(yīng)長度的報(bào)文后轉(zhuǎn)發(fā)。具體地, 第一轉(zhuǎn)發(fā)單元可以取出在數(shù)值上與所述令牌桶中的令牌數(shù)量相等的報(bào)文后轉(zhuǎn)發(fā)。在本實(shí)施例中,令牌桶按配置的速率向桶中放置令牌,當(dāng)令牌 桶中的令牌數(shù)量在 數(shù)值上大于或等于即將被轉(zhuǎn)發(fā)的報(bào)文的長度時(shí),該報(bào)文才可以被轉(zhuǎn)發(fā),即,如果令牌桶中有 足夠的令牌可以用來發(fā)送報(bào)文,則報(bào)文直接被繼續(xù)發(fā)送下去,同時(shí),令牌桶中的令牌數(shù)量按 照被轉(zhuǎn)發(fā)出去的報(bào)文的長度做相應(yīng)數(shù)量的減少。報(bào)文即將被轉(zhuǎn)發(fā)出去之前,第一比較單元 811將其長度與令牌桶中的令牌數(shù)量進(jìn)行比較,當(dāng)報(bào)文長度與令牌桶中的令牌數(shù)量限定的 流量特性不符,例如,當(dāng)令牌桶中的令牌數(shù)量減少以致具有某一長度的報(bào)文不能再發(fā)送時(shí), 第一判斷單元812判斷需要對收到的報(bào)文進(jìn)行流量整形,第一緩存單元813將該報(bào)文存入 GTS緩沖隊(duì)列。當(dāng)令牌桶中有足夠的令牌時(shí),第一轉(zhuǎn)發(fā)單元814按照一定的周期從隊(duì)列中取 出報(bào)文進(jìn)行發(fā)送,直到令牌桶中的令牌數(shù)又減少到GTS緩沖隊(duì)列中的報(bào)文不能再發(fā)送或是 GTS緩沖隊(duì)列中的報(bào)文全部發(fā)送完畢為止。或者,圖7示例的判斷模塊711可以進(jìn)一步包括第二比較單元911和第二判斷單 元912,整形模塊712可以進(jìn)一步包括第二緩存單元913和第二轉(zhuǎn)發(fā)單元914,如圖9所示 本發(fā)明實(shí)施例五提供的多核處理器,其中第二比較單元911,用于將報(bào)文到達(dá)所述中間核的速度與向令牌桶中放置令牌的 速度進(jìn)行比較;第二判斷單元912,用于第二比較單元911比較的結(jié)果為報(bào)文到達(dá)中間核的速度 大于向令牌桶中放置令牌的速度,則判斷需要對收到的報(bào)文進(jìn)行流量整形;第二緩存單元913,用于第二判斷單元912判斷需要對收到的報(bào)文進(jìn)行流量整形 時(shí)將收到的報(bào)文存入緩沖隊(duì)列;第二轉(zhuǎn)發(fā)單元914,用于以數(shù)值上與向令牌桶中放置令牌的速度相對應(yīng)的速度與 從所述緩沖隊(duì)列中取出報(bào)文后轉(zhuǎn)發(fā)。具體地,第二轉(zhuǎn)發(fā)單元914可以取出在數(shù)值上與所述 令牌桶中的令牌數(shù)量相等的報(bào)文。需要說明的是,對于圖5至圖9所示實(shí)施例,報(bào)文在進(jìn)入GTS緩沖隊(duì)列之前是經(jīng)過 了優(yōu)先級映射而具有各自的優(yōu)先級,而緩沖隊(duì)列的優(yōu)先級與報(bào)文的優(yōu)先級相應(yīng),即,報(bào)文按 照其優(yōu)先級被存入相應(yīng)優(yōu)先級的緩沖隊(duì)列,因此,從GTS緩沖隊(duì)列中取出的報(bào)文也是按照 高優(yōu)先級的先發(fā)送、低優(yōu)先級的后發(fā)送這個(gè)原則轉(zhuǎn)發(fā)至下一單核,這樣,可以保證在任何網(wǎng) 絡(luò)環(huán)境下(例如,流量突發(fā)以及由此造成的網(wǎng)絡(luò)擁塞),高優(yōu)先級的報(bào)文始終先于低優(yōu)先級 的報(bào)文發(fā)送。上述各模塊/單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實(shí)施例 基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實(shí)施例中的說明,此處不再贅述。本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可 以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計(jì)算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括只讀存儲器(ROM,Read Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁盤或光盤等。
以上對本發(fā)明實(shí)施例所提供的一種基于多核處理器的流量控制方法和多核處理 器進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上 實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技 術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本 說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
一種基于多核處理器的流量控制方法,其特征在于,包括多核處理器中的首核對接收到的報(bào)文進(jìn)行優(yōu)先級排序,并將排序后的報(bào)文發(fā)送到至少一個(gè)中間核,所述中間核為所述多核處理器中除首核之外的其他單核;多核處理器中所述至少一個(gè)中間核中的任意一個(gè)中間核接收上一個(gè)單核發(fā)送的報(bào)文并轉(zhuǎn)發(fā)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述多核處理器中的首核對接收到的報(bào) 文進(jìn)行優(yōu)先級排序包括所述首核對接收到的報(bào)文進(jìn)行分類;所述首核根據(jù)分類的結(jié)果對所述分類后的報(bào)文進(jìn)行優(yōu)先級映射。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述首核根據(jù)分類的結(jié)果對所述分類后 的報(bào)文進(jìn)行優(yōu)先級映射包括按照報(bào)文的類型,將各個(gè)分類后的報(bào)文賦予相應(yīng)的優(yōu)先級字 段。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括所述首核將所述報(bào)文優(yōu)先級字段傳遞至所述至少一個(gè)中間核,所述中間核中的任意一 個(gè)中間核將所述優(yōu)先級字段傳遞至下一單核。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述多核處理器中所述至少一個(gè)中間核 中的任意一個(gè)中間核接收上一個(gè)單核發(fā)送的報(bào)文并轉(zhuǎn)發(fā)包括所述任意一個(gè)中間核接收上一個(gè)單核發(fā)送的報(bào)文;判斷是否需要對所述收到的報(bào)文進(jìn)行流量整形;若需要,則所述任意一個(gè)中間核在自身的出口處對所述收到的報(bào)文進(jìn)行流量整形后再 轉(zhuǎn)發(fā)所述報(bào)文。
6.根據(jù)權(quán)利要求5所述的基于多核處理器的流量控制方法,其特征在于,所述判斷是 否需要對所述收到的報(bào)文進(jìn)行流量整形包括將所述收到的報(bào)文的長度與令牌桶中的令牌數(shù)量進(jìn)行比較;若所述收到的報(bào)文的長度與所述令牌桶中的令牌數(shù)量限定的流量特性不符,則判斷需 要對所述收到的報(bào)文進(jìn)行流量整形;所述任意一個(gè)中間核在自身的出口處對所述收到的報(bào)文進(jìn)行流量整形后再轉(zhuǎn)發(fā)所述 報(bào)文包括將所述收到的報(bào)文存入緩沖隊(duì)列;待所述收到的報(bào)文的長度與所述令牌桶中的令牌數(shù)量限定的流量特性相符后,從所述 緩沖隊(duì)列中取出與所述令牌桶中的令牌數(shù)量相對應(yīng)長度的報(bào)文后轉(zhuǎn)發(fā)。
7.根據(jù)權(quán)利要求5所述的基于多核處理器的流量控制方法,其特征在于,判斷是否需 要對所述收到的報(bào)文進(jìn)行流量整形包括將所述報(bào)文到達(dá)所述任意一個(gè)中間核的速度與向令牌桶中放置令牌的速度進(jìn)行比較;若所述報(bào)文到達(dá)所述中間核的速度大于所述向令牌桶中放置令牌的速度,則判斷需要 對所述收到的報(bào)文進(jìn)行流量整形;所述任意一個(gè)中間核在自身的出口處對所述收到的報(bào)文進(jìn)行流量整形后再轉(zhuǎn)發(fā)所述 報(bào)文包括將所述收到的報(bào)文存入緩沖隊(duì)列;以與向令牌桶中放置令牌的速度相等的速度與從所述緩沖隊(duì)列中取出報(bào)文后轉(zhuǎn)發(fā)。
8.根據(jù)權(quán)利要求6或7所述的基于多核處理器的流量控制方法,其特征在于,所述緩沖 隊(duì)列的優(yōu)先級與所述報(bào)文的優(yōu)先級相對應(yīng),所述報(bào)文按照所述報(bào)文的優(yōu)先級被存入相應(yīng)優(yōu) 先級的緩沖隊(duì)列,在取出報(bào)文時(shí)優(yōu)先取出優(yōu)先級高的報(bào)文。
9.一種多核處理器,包括首核和至少一個(gè)中間核,其特征在于所述首核,用于對接收到的報(bào)文進(jìn)行優(yōu)先級排序并將排序后的報(bào)文發(fā)送到至少一個(gè)中 間核;所述至少一個(gè)中間核中的任意一個(gè)中間核,用于接收上一個(gè)單核發(fā)送的報(bào)文并轉(zhuǎn)發(fā), 所述中間核為所述多核處理器中除首核之外的其他單核。
10.根據(jù)權(quán)利要求9所述的多核處理器,其特征在于,所述首核包括分類模塊,用于對接收到的報(bào)文進(jìn)行分類;優(yōu)先級映射模塊,用于根據(jù)所述分類模塊分類的結(jié)果對所述分類后的報(bào)文進(jìn)行優(yōu)先級 映射。
11.根據(jù)權(quán)利要求9所述的多核處理器,其特征在于,所述任意一個(gè)中間核包括判斷模塊,用于判斷是否需要對所述收到的報(bào)文進(jìn)行流量整形;整形模塊,用于在所述判斷模塊判斷需要對所述收到的報(bào)文進(jìn)行流量整形時(shí),在所述 任意一個(gè)中間核出口處對所述收到的報(bào)文進(jìn)行流量整形后再轉(zhuǎn)發(fā)所述報(bào)文。
12.根據(jù)權(quán)利要求9所述的多核處理器,其特征在于,所述判斷模塊包括第一比較單元 和第一判斷單元,所述整形模塊包括第一緩存單元和第一轉(zhuǎn)發(fā)單元;所述第一比較單元,用于將所述收到的報(bào)文的長度與令牌桶中的令牌數(shù)量進(jìn)行比較;所述第一判斷單元,用于在所述第一比較單元比較的結(jié)果為所述收到的報(bào)文的長度與 所述令牌桶中的令牌數(shù)量限定的流量特性不符時(shí),判斷需要對所述收到的報(bào)文進(jìn)行流量整 形;所述第一緩存單元,用于在所述第一判斷單元判斷需要對所述收到的報(bào)文進(jìn)行流量整 形時(shí),將所述收到的報(bào)文存入緩沖隊(duì)列;所述第一轉(zhuǎn)發(fā)單元,用于待所述收到的報(bào)文的長度與所述令牌桶中的令牌數(shù)量限定的 流量特性相符后,從所述緩沖隊(duì)列中取出與所述令牌桶中的令牌數(shù)量相對應(yīng)長度的報(bào)文后 轉(zhuǎn)發(fā)。
13.根據(jù)權(quán)利要求9所述的多核處理器,其特征在于,所述判斷模塊包括第二比較單元 和第二判斷單元,所述整形模塊包括第二緩存單元和第二轉(zhuǎn)發(fā)單元;所述第二比較單元,用于將所述報(bào)文到達(dá)所述中間核的速度與向令牌桶中放置令牌的 速度進(jìn)行比較;所述第二判斷單元,用于所述第二比較單元比較的結(jié)果為所述報(bào)文到達(dá)所述中間核的 速度大于所述向令牌桶中放置令牌的速度,則判斷需要對所述收到的報(bào)文進(jìn)行流量整形;所述第二緩存單元,用于在所述第二判斷單元判斷需要對所述收到的報(bào)文進(jìn)行流量整 形時(shí)將所述收到的報(bào)文存入緩沖隊(duì)列;所述第二轉(zhuǎn)發(fā)單元,用于以與向令牌桶中放置令牌的速度相對應(yīng)的速度從所述緩沖隊(duì) 列中取出報(bào)文后轉(zhuǎn)發(fā)。
全文摘要
本發(fā)明實(shí)施例提供一種基于多核處理器的流量控制方法,包括多核處理器中的首核對接收到的報(bào)文進(jìn)行優(yōu)先級排序,并將排序后的報(bào)文發(fā)送到至少一個(gè)中間核,所述中間核為所述多核處理器中除首核之外的其他單核;多核處理器中所述至少一個(gè)中間核中的任意一個(gè)中間核接收上一個(gè)單核發(fā)送的報(bào)文并轉(zhuǎn)發(fā)。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例提供的報(bào)文優(yōu)先級排序不僅可以有效預(yù)防微網(wǎng)絡(luò)內(nèi)部發(fā)生擁塞,而且在微網(wǎng)絡(luò)內(nèi)部發(fā)生擁塞時(shí),能夠丟棄低優(yōu)先級報(bào)文來保障高優(yōu)先級報(bào)文,從而在微網(wǎng)絡(luò)內(nèi)部提供了較好的QoS,并進(jìn)一步為宏觀網(wǎng)絡(luò)的QoS提供了保障。
文檔編號H04L12/56GK101834790SQ20101015565
公開日2010年9月15日 申請日期2010年4月22日 優(yōu)先權(quán)日2010年4月22日
發(fā)明者郭曉陽 申請人:上海華為技術(shù)有限公司