專(zhuān)利名稱(chēng):網(wǎng)絡(luò)處理器的抖動(dòng)控制加權(quán)公平排隊(duì)算法和時(shí)延限制硬件的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及利用加權(quán)公平排隊(duì)(WFQ)方案的分組業(yè)務(wù)管理,并且尤其涉及在被高速實(shí)現(xiàn)時(shí)在這種方案中減少服務(wù)抖動(dòng)(service jitter)的系統(tǒng)和方法。
背景技術(shù):
在數(shù)據(jù)業(yè)務(wù)管理中,實(shí)現(xiàn)WFQ方案以在網(wǎng)絡(luò)接口達(dá)到多個(gè)隊(duì)列的公平調(diào)度是公知的。圖1示出了實(shí)現(xiàn)八類(lèi)服務(wù)的WFQ調(diào)度器的例子。WFQ調(diào)度器被用于調(diào)度具有服務(wù)類(lèi)CoS3至CoS7的隊(duì)列的服務(wù)(servicing)。服務(wù)類(lèi)CoS0至CoS7被分配有較高的優(yōu)先級(jí)別,并且典型地利用一個(gè)或者多個(gè)服務(wù)算法(例如窮舉的循環(huán)法方案)而被服務(wù)。
在圖1中,利用WFQ方案來(lái)服務(wù)于服務(wù)類(lèi)CoS3至CoS7,其中,每個(gè)CoS向該方案分配了服務(wù)權(quán)重,所述服務(wù)方案考慮了該服務(wù)權(quán)重的因素。
通常,WFQ是一種被用于在多個(gè)隊(duì)列之中選擇隊(duì)列用于在任何時(shí)間點(diǎn)服務(wù)的算法。向WFQ結(jié)構(gòu)上的每個(gè)隊(duì)列分配權(quán)重,并且被提供給隊(duì)列的服務(wù)效應(yīng)是隊(duì)列權(quán)重除以所有隊(duì)列權(quán)重之和的比率。
本發(fā)明尤其針對(duì)WFQ實(shí)現(xiàn)以用在高速接口上,從而處理實(shí)現(xiàn)設(shè)備的限制,所述設(shè)備例如可以是網(wǎng)絡(luò)處理器、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)以及專(zhuān)用集成電路(ASIC)。典型的實(shí)現(xiàn)設(shè)備限制是任何單個(gè)分組可以在設(shè)備中消耗的處理周期數(shù)目,以及與訪問(wèn)分組上下文相關(guān)聯(lián)的時(shí)延。這種限制使得不可能使用理論上理想的WFQ算法。此外,如果不特別注意WFQ實(shí)現(xiàn)所需的最優(yōu)化,則例如服務(wù)抖動(dòng)的寄生二階效應(yīng)會(huì)成為問(wèn)題,其可能會(huì)導(dǎo)致下游服務(wù)級(jí)協(xié)議(SLA)侵害。
在本申請(qǐng)中,抖動(dòng)可以被定義為當(dāng)隊(duì)列理論上應(yīng)當(dāng)被選擇用于服務(wù)時(shí)與選擇隊(duì)列的實(shí)際時(shí)間之間的時(shí)間方差。本發(fā)明的WFQ算法的目的是解決當(dāng)保持算法抖動(dòng)特性的控制時(shí)在高速接口上的性能限制。
加權(quán)公平排隊(duì)是公知的,并且在現(xiàn)有技術(shù)中被廣泛地描述。申請(qǐng)人所知道現(xiàn)有技術(shù)沒(méi)有解決與網(wǎng)絡(luò)處理器相關(guān)聯(lián)的性能限制,并且任何現(xiàn)有技術(shù)實(shí)現(xiàn)也沒(méi)有解決保持抖動(dòng)特性上的界限(bound),這是因?yàn)樵诶硐氲腤FQ實(shí)現(xiàn)情況下不存在抖動(dòng)。
因此,目前需要減少或者消除涉及高速的實(shí)現(xiàn)中的服務(wù)抖動(dòng),將來(lái)會(huì)更加期望這種需要。
發(fā)明內(nèi)容
本發(fā)明解決了在通常用于分組業(yè)務(wù)管理的WFQ方案中減少服務(wù)抖動(dòng)的問(wèn)題。本發(fā)明通過(guò)將衰減(dampening)系數(shù)應(yīng)用于差量(differenceamount)來(lái)控制WFQ過(guò)程的抖動(dòng)特性,其中WFQ過(guò)程使用該差量來(lái)調(diào)整其隊(duì)列選擇的定時(shí)。所述差量是隊(duì)列指定的,并且是給定隊(duì)列的被計(jì)算的Vperiod與實(shí)際Vperiod之間的運(yùn)行差值(running difference)。
因此,根據(jù)本發(fā)明的第一方面,提供了一種利用加權(quán)公平排隊(duì)(WFQ)方案來(lái)管理分組業(yè)務(wù)的方法,該WFQ方案包括用于選擇要被服務(wù)的隊(duì)列的Wfq過(guò)程,和用于使要被處理的分組離隊(duì)的Dq過(guò)程,該方法包括創(chuàng)建各個(gè)過(guò)程之間的反饋環(huán)路,并且將隊(duì)列指定的衰減差值從Dq過(guò)程反饋給Wfq過(guò)程,其中Wfq過(guò)程使用該衰減差值以選擇隊(duì)列用于服務(wù)。
根據(jù)本發(fā)明的第二方面,提供了一種用于利用加權(quán)公平排隊(duì)(WFQ)方案來(lái)管理分組業(yè)務(wù)的系統(tǒng),該WFQ方案包括用于選擇要被服務(wù)的隊(duì)列的Wfq過(guò)程,和用于使要被處理的分組離隊(duì)的Dq過(guò)程,該系統(tǒng)包括在各個(gè)過(guò)程之間的閉環(huán)反饋控制裝置;以及用于確定并且將隊(duì)列指定的衰減差值從Dq過(guò)程反饋給Wfq過(guò)程的裝置,其中所述Wfq過(guò)程使用該衰減差值以選擇隊(duì)列用于服務(wù)。
現(xiàn)在參考附圖詳細(xì)描述本發(fā)明,其中圖1是包括在八類(lèi)服務(wù)方案的實(shí)現(xiàn)中的WFQ方案的概觀;圖2說(shuō)明了根據(jù)本發(fā)明的WFQ方案中的過(guò)程和管理;圖3說(shuō)明了調(diào)度方案行為上的衰減系數(shù)的效應(yīng);圖4說(shuō)明了平均有效隊(duì)列權(quán)重上的衰減系數(shù)的效應(yīng)。
具體實(shí)施例方式
根據(jù)本發(fā)明的WFQ功能性分布在兩個(gè)分離但相關(guān)的過(guò)程之中。存在如圖2所示的Wfq過(guò)程和Dq過(guò)程。消息在過(guò)程之間被傳遞以信號(hào)通知事件并且傳遞信息。在網(wǎng)絡(luò)處理器(NP)實(shí)現(xiàn)中,可以通過(guò)使用不同的微引擎(ME,micro engine)來(lái)執(zhí)行這些過(guò)程。Wfq過(guò)程從上游過(guò)程接收指示分組到達(dá)隊(duì)列的事件,并且從下游Dq過(guò)程接收消息。Wfq過(guò)程接收的最重要的消息是來(lái)自Dq過(guò)程的VperiodToWfq消息,該消息被用于校正Wfq過(guò)程在選擇隊(duì)列用于服務(wù)時(shí)所進(jìn)行的假設(shè)。Dq過(guò)程從Wfq過(guò)程接收消息以指示隊(duì)列已經(jīng)被選擇用于服務(wù),和Wfq過(guò)程針對(duì)所選隊(duì)列的Vperiod所進(jìn)行的假設(shè)。
通常,Wfq過(guò)程為每個(gè)隊(duì)列保持時(shí)間標(biāo)記(timestamp),并且選擇具有最小時(shí)間標(biāo)記值的隊(duì)列用于服務(wù)。可選地,如本領(lǐng)域的技術(shù)人員已知的,可以保持一種日歷。然后利用Dq過(guò)程所提供的值來(lái)更新被選擇隊(duì)列的時(shí)間標(biāo)記或日歷上的布置,所述值是一種基于隊(duì)列權(quán)重、選自該隊(duì)列的在先分組的分組大小以及被使用值的歷史紀(jì)錄的被調(diào)整值。這樣做是由于存在選擇隊(duì)列的時(shí)間與知道分組大小的時(shí)間之間所涉及的時(shí)延,如下文所描述的。最后,更新當(dāng)前時(shí)間標(biāo)記并且將消息發(fā)送給Dq過(guò)程。
一般來(lái)說(shuō),Dq過(guò)程從包括所用Vperiod的Wfq過(guò)程接收Dq消息。Dq過(guò)程負(fù)責(zé)從被選擇隊(duì)列中移除隊(duì)列最前面的分組,由此使該分組離隊(duì)。Dq過(guò)程然后確定Wfq過(guò)程應(yīng)當(dāng)用于該分組的實(shí)際Vperiod,其等于離隊(duì)分組的大小乘以隊(duì)列的權(quán)重的乘積。對(duì)于每個(gè)隊(duì)列保持一余數(shù),以便跟蹤Wfq過(guò)程使用的Vperiod與該過(guò)程應(yīng)當(dāng)使用的Vperiod之間的運(yùn)行差。然后該余數(shù)值被衰減并且被反饋給Wfq過(guò)程,所述Wfq過(guò)程將使用該余數(shù)值以在下一次選擇隊(duì)列時(shí)更新隊(duì)列的時(shí)間標(biāo)記。這種衰減對(duì)于減少該算法中的抖動(dòng)是必需的。
對(duì)于圖1所示的WFQ例子而言,WFQ實(shí)現(xiàn)是基于虛擬時(shí)間標(biāo)記的比較的,盡管在WFQ結(jié)構(gòu)上存在大量隊(duì)列的情況下可以使用日歷。每個(gè)隊(duì)列具有虛擬時(shí)間標(biāo)記并且在啟動(dòng)被初始化為零。每當(dāng)選擇隊(duì)列用于服務(wù)時(shí),非空隊(duì)列的虛擬時(shí)間標(biāo)記被如下更新時(shí)間標(biāo)記=current_timestamp+DqToWfq_DqVperiod其中current_timestamp總是被設(shè)置為正被服務(wù)的隊(duì)列的時(shí)間標(biāo)記。DqToWfq_DqVperiod從Dq過(guò)程被接收并且與在先分組長(zhǎng)度以及該分組所來(lái)自的隊(duì)列權(quán)重有關(guān)。選擇具有最小虛擬時(shí)間標(biāo)記的非空隊(duì)列用于服務(wù)。
由于任何內(nèi)部設(shè)備數(shù)據(jù)移動(dòng)時(shí)延,用于在Wfq過(guò)程中更新時(shí)間標(biāo)記的DqToWfq_DqVperiod,不是正好等于離隊(duì)分組長(zhǎng)度與權(quán)重的乘積的,但是如下討論的那樣被調(diào)整并被衰減。時(shí)延被如下引入-分組離隊(duì)并且從其緩沖描述符取得其lengthWeightProduct(長(zhǎng)度權(quán)重乘積)。離隊(duì)和取得緩沖描述符操作是存儲(chǔ)器操作。由于存儲(chǔ)器技術(shù)的限制,時(shí)延通常大于單個(gè)分組可以在高速接口(例如OC192)上的設(shè)備中消耗的處理周期數(shù)目。
-Dq過(guò)程發(fā)送DqToWfq_DqVperiod消息給Wfq過(guò)程。
由于這些時(shí)延,Wfq過(guò)程可以使用增加了WFQ的抖動(dòng)或突發(fā)(burstiness)的舊的lengthWeightProduct。作為補(bǔ)救,Wfq過(guò)程將包括WfqToDq_DqVperiod=DqToWfq_DqVperiod的消息發(fā)送給Dq過(guò)程。Dq過(guò)程一直跟蹤WfqToDq_DqVperiod和lengthWeightProduct之間的差值,并且反饋新的及被調(diào)整的DqToWfq_DqVperiod。
這代表了反饋環(huán)路系統(tǒng),其中反饋被呈遞給遭受延遲的Wfq過(guò)程,并且激勵(lì)(stimulus)被呈遞給Dq過(guò)程。根據(jù)Wfq所使用的DqToWfq_DqVperiod與Dq過(guò)程所取得的lengthWeightProduct之間的差值以及所涉及的時(shí)延,在DqToWfq_DqVperiod值中將發(fā)生振蕩。這種振蕩直接對(duì)應(yīng)于隊(duì)列服務(wù)中的抖動(dòng)和突發(fā)。衰減系數(shù)的作用是確保在穩(wěn)態(tài)條件下控制并且逐漸結(jié)束振蕩。圖3說(shuō)明了應(yīng)用衰減系數(shù)的效應(yīng)。在該例子中,假設(shè)兩個(gè)單元的時(shí)延,并且9192字節(jié)分組的單個(gè)流到達(dá)其權(quán)重被標(biāo)準(zhǔn)化為1的隊(duì)列。
以下是Dq過(guò)程的偽碼<pre listing-type="program-listing">[Init] Remainder=40*(1/dampfactor-1) DqToWfq_DqVperiod=40 SendDqToWfq_DqVperiod to the Wfq process.[every DQ operation] Remainder=Remainder+(length WeightProduct-WfqToDq_DqVperiod) Check if Remainder is wrapped around in the debug condition. if Remainder<0, Dq To Wfq_DqVperiod=0. Else if Remainder>Max_DqVperiod, Dq To Wfq_DqVperiod=Max_DqVperiod Else Dq To Wfq_DqVperiod=Remainder*dampfactor Send Dq To Wfq_DqVperiod to the Wfq process.</pre>在所述實(shí)現(xiàn)中,dampfactor(衰減系數(shù))默認(rèn)為0.25,并且被用于減少DqToWfq_DqVperiod的擺動(dòng)(swing)并由此減少總的抖動(dòng)和突發(fā)。模擬顯示,在沒(méi)有該衰減系數(shù)的情況下,盡管長(zhǎng)期行為仍是正確的,然而在隊(duì)列服務(wù)中存在顯著的抖動(dòng)和突發(fā)。圖4說(shuō)明即使沒(méi)有衰減的長(zhǎng)期加權(quán)是正確的,而具有衰減,分組流也更快收斂到其9192字節(jié)大小的分組的被配置權(quán)值。這種抖動(dòng)是在由Dq過(guò)程所計(jì)算的DqToWfq_DqVperiod值中振蕩的結(jié)果,并且可導(dǎo)致下游SLA侵害。
這是一個(gè)簡(jiǎn)單算法,其可以在NP上被實(shí)時(shí)執(zhí)行,同時(shí)保持對(duì)隊(duì)列服務(wù)的抖動(dòng)特性的控制。這種算法也可以應(yīng)用于需要快速有效的WFQ算法的通用處理器。這種算法也可應(yīng)用于存在相同性能限制的WFQ的ASIC和FPGA實(shí)現(xiàn)。
盡管描述且示出了本發(fā)明的優(yōu)選實(shí)施例,然而在不脫離基本思想的情況下引入許多改變對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō)是顯而易見(jiàn)的。然而應(yīng)當(dāng)理解,所述改變將落入如所附權(quán)利要求所限定的本發(fā)明的整個(gè)范圍中。
權(quán)利要求
1.一種利用加權(quán)公平排隊(duì)方案來(lái)管理分組業(yè)務(wù)的方法,所述加權(quán)公平排隊(duì)方案包括用于選擇要被服務(wù)的隊(duì)列的Wfq過(guò)程,以及用于使要被處理的分組離隊(duì)的Dq過(guò)程,所述方法包括下列步驟在各個(gè)過(guò)程之間創(chuàng)建反饋環(huán)路;以及將隊(duì)列指定的衰減差值從所述Dq過(guò)程反饋給所述Wfq過(guò)程,其中所述Wfq過(guò)程使用所述衰減差值以選擇隊(duì)列用于服務(wù)。
2.根據(jù)權(quán)利要求1的方法,所述方法用于管理高速業(yè)務(wù)。
3.根據(jù)權(quán)利要求2的方法,所述方法用于管理電信服務(wù)的通信業(yè)務(wù)。
4.根據(jù)權(quán)利要求2的方法,所述方法用于管理涉及優(yōu)先化數(shù)據(jù)庫(kù)訪問(wèn)的業(yè)務(wù)。
5.根據(jù)權(quán)利要求2的方法,所述方法用于多處理器操作系統(tǒng)中的過(guò)程管理。
6.根據(jù)權(quán)利要求1的方法,其中,所述衰減差值是基于每個(gè)隊(duì)列的虛擬時(shí)間標(biāo)記的。
7.根據(jù)權(quán)利要求6的方法,其中,為每個(gè)隊(duì)列保持余數(shù)值,由此跟蹤在所述Wfq過(guò)程所使用的Vperiod與該過(guò)程應(yīng)當(dāng)使用的Vperiod之間的運(yùn)行差值。
8.根據(jù)權(quán)利要求7的方法,其中,所述余數(shù)值被衰減并且經(jīng)由所述反饋環(huán)路而被反饋給所述Wfq過(guò)程。
9.根據(jù)權(quán)利要求8的方法,其中,所述余數(shù)值被用于在下一次選擇隊(duì)列時(shí)更新該隊(duì)列的時(shí)間標(biāo)記。
10.根據(jù)權(quán)利要求1的方法,所述方法用于減少高速通信系統(tǒng)中的抖動(dòng)。
11.一種用于利用加權(quán)公平排隊(duì)方案來(lái)管理分組業(yè)務(wù)的系統(tǒng),所述加權(quán)公平排隊(duì)方案包括用于選擇要被服務(wù)的隊(duì)列的Wfq過(guò)程,以及用于使要被處理的分組離隊(duì)的Dq過(guò)程,所述系統(tǒng)包括在各個(gè)過(guò)程之間的閉環(huán)反饋控制裝置;以及用于確定并且將隊(duì)列指定的衰減差值從所述Dq過(guò)程反饋給所述Wfq過(guò)程的裝置,其中所述Wfq過(guò)程使用所述衰減差值以選擇隊(duì)列用于服務(wù)。
12.根據(jù)權(quán)利要求11的系統(tǒng),所述系統(tǒng)被實(shí)現(xiàn)在網(wǎng)絡(luò)處理器中。
13.根據(jù)權(quán)利要求11的系統(tǒng),所述系統(tǒng)被實(shí)現(xiàn)在專(zhuān)用集成電路中。
14.根據(jù)權(quán)利要求11的系統(tǒng),所述系統(tǒng)被實(shí)現(xiàn)在現(xiàn)場(chǎng)可編程門(mén)陣列中。
15.根據(jù)權(quán)利要求11的系統(tǒng),其中,所述Wfq過(guò)程從上游過(guò)程接收指示分組到達(dá)隊(duì)列的事件消息,并且從所述Dq過(guò)程接收消息。
16.根據(jù)權(quán)利要求15的系統(tǒng),其中,接收自所述Dq過(guò)程的消息是VperiodToWfq消息。
17.根據(jù)權(quán)利要求16的系統(tǒng),其中,所述VperiodToWfq消息被用于校正由所述Wfq過(guò)程所進(jìn)行的定時(shí)假設(shè)。
全文摘要
描述一種減少在分組業(yè)務(wù)管理中所使用的加權(quán)公平排隊(duì)方案中的服務(wù)抖動(dòng)的系統(tǒng)和方法。服務(wù)抖動(dòng)是隊(duì)列應(yīng)當(dāng)被選擇用于服務(wù)時(shí)與隊(duì)列被實(shí)際服務(wù)時(shí)的時(shí)間方差。服務(wù)抖動(dòng)在低速應(yīng)用中通常不是問(wèn)題,但是在高速應(yīng)用實(shí)現(xiàn)中,例如OC192設(shè)備時(shí)延,可導(dǎo)致下游服務(wù)協(xié)議侵害。根據(jù)本發(fā)明,通過(guò)將衰減系數(shù)應(yīng)用于Wfq過(guò)程所使用的差量以調(diào)整其隊(duì)列選擇定時(shí),來(lái)控制抖動(dòng)。該差量是隊(duì)列指定的,并且是被計(jì)算的隊(duì)列服務(wù)時(shí)間與實(shí)際隊(duì)列服務(wù)時(shí)間之間的運(yùn)行差值。
文檔編號(hào)H04L1/20GK1809028SQ20061000400
公開(kāi)日2006年7月26日 申請(qǐng)日期2006年1月11日 優(yōu)先權(quán)日2005年1月11日
發(fā)明者A·戈拉, 杜賓 申請(qǐng)人:阿爾卡特公司