亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種使信元流量實(shí)現(xiàn)最小抖動(dòng)的加權(quán)輪詢方法

文檔序號(hào):7943934閱讀:531來源:國(guó)知局
專利名稱:一種使信元流量實(shí)現(xiàn)最小抖動(dòng)的加權(quán)輪詢方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種使信元流量實(shí)現(xiàn)最小抖動(dòng)的加權(quán)輪詢方法,確切地說,涉及一種在使用傳統(tǒng)加權(quán)輪詢算法時(shí),信元在短時(shí)間上的抖動(dòng)過大,以及在使用專用集成電路ASIC或現(xiàn)場(chǎng)可編程門陣列FPGA器件實(shí)現(xiàn)時(shí),邏輯規(guī)模太大的問題得到較好解決的加權(quán)輪詢方法,屬于異步轉(zhuǎn)移模式和其他業(yè)務(wù)的恒定比特率CBR業(yè)務(wù)的信元流量調(diào)度控制技術(shù)領(lǐng)域。
背景技術(shù)
加權(quán)輪詢(WRR)算法主要應(yīng)用在ATM和其他業(yè)務(wù)的CBR業(yè)務(wù)的流量調(diào)度上?,F(xiàn)在,對(duì)于控制信元流量的傳統(tǒng)加權(quán)輪詢算法一般采用下述實(shí)現(xiàn)方法為了計(jì)算和比較時(shí)標(biāo),每條隊(duì)列分配一個(gè)16位的時(shí)標(biāo)計(jì)數(shù)器,初始值為0x0000,這里確定時(shí)標(biāo)為16位是為了減少寄存器的數(shù)量,加快比較速度;另一個(gè)關(guān)鍵參數(shù)-16位的發(fā)送時(shí)間間隔參數(shù)則存儲(chǔ)在寄存器參數(shù)表中,該參數(shù)是根據(jù)隊(duì)列的預(yù)約帶寬和權(quán)值計(jì)算得到的,隊(duì)列的權(quán)值和信元時(shí)間間隔參數(shù)需要CPU進(jìn)行配置,在執(zhí)行配置時(shí)寫入寄存器。采用16位的時(shí)間間隔參數(shù),分辨率為622M/64K=9.8K;權(quán)值的計(jì)算公式為WEIGHT=|R/9.8K|,式中R為每條隊(duì)列的預(yù)約速率。
每次通過輪詢選取隊(duì)列,找到一個(gè)隊(duì)列后,先檢查該隊(duì)列時(shí)標(biāo)計(jì)數(shù)器的值是否符合發(fā)送條件隊(duì)列[n]Counter<隊(duì)列[m]Counter?如果符合條件,就發(fā)送該隊(duì)列的一個(gè)信元,并把該隊(duì)列的計(jì)數(shù)器加上本隊(duì)列的時(shí)間間隔值,再輪詢進(jìn)行下一次運(yùn)算。否則,就發(fā)送另一個(gè)隊(duì)列的信元,并使其隊(duì)列的計(jì)數(shù)器加上本隊(duì)列的時(shí)間間隔值。如果一條隊(duì)列的計(jì)數(shù)值到達(dá)最大值0xFFFF,就等待另一隊(duì)列的計(jì)算。如果所有計(jì)數(shù)器都到達(dá)或接近最大值0xFFFF時(shí),同時(shí)把所有的計(jì)數(shù)器清零,重新進(jìn)行計(jì)算。
參見圖1,該圖描述了兩個(gè)隊(duì)列CBR_A和CBR_B分別使用權(quán)值為7和4、信元間隔參數(shù)為4和7進(jìn)行上述傳統(tǒng)加權(quán)輪詢算法的簡(jiǎn)化調(diào)度示意。在這種傳統(tǒng)加權(quán)輪詢算法中,對(duì)于兩個(gè)隊(duì)列需要比較該兩個(gè)時(shí)標(biāo)寄存器的大小,還需要判斷這兩個(gè)寄存器是否接近于0xFFFF,以便對(duì)它們重新進(jìn)行清零處理。對(duì)于多個(gè)隊(duì)列,就需要找出各個(gè)隊(duì)列時(shí)標(biāo)寄存器的最小值來判斷哪個(gè)隊(duì)列滿足發(fā)送條件。
這種傳統(tǒng)加權(quán)輪詢算法能夠保證在較長(zhǎng)的周期中各個(gè)隊(duì)列的帶寬是均勻的。但是,在有多個(gè)隊(duì)列、且各個(gè)隊(duì)列的帶寬相差較大時(shí),傳統(tǒng)加權(quán)輪詢算法所得到的結(jié)果在短時(shí)上的抖動(dòng)比較大。對(duì)于僅有兩個(gè)隊(duì)列的情況,各個(gè)隊(duì)列短時(shí)流量的抖動(dòng)看起來還不太明顯。如果隊(duì)列數(shù)量較多,短時(shí)抖動(dòng)就非常明顯了。
下面例舉一個(gè)簡(jiǎn)化的有16個(gè)隊(duì)列的情況假設(shè)總帶寬為48M,總共有16個(gè)隊(duì)列業(yè)務(wù)(隊(duì)列序號(hào)小的優(yōu)先級(jí)高),各個(gè)隊(duì)列中需要的最小帶寬為1M。該簡(jiǎn)化的16個(gè)隊(duì)列所需要的帶寬分配如下表所示

如果采用傳統(tǒng)加權(quán)算法進(jìn)行隊(duì)列調(diào)度,得到的48個(gè)調(diào)度的順序如下表所示


參見圖2所示的其中編號(hào)為CBR_0和CBR_1的隊(duì)列發(fā)送時(shí)隙在時(shí)間軸上的一段局部分布狀況,從圖2可以清楚地看出編號(hào)為CBR_0和CBR_1的隊(duì)列速率在短時(shí)上的抖動(dòng)相當(dāng)大。
因此,傳統(tǒng)加權(quán)輪詢算法的缺點(diǎn)主要是流量的短時(shí)抖動(dòng)比較大,對(duì)于有一些對(duì)短時(shí)抖動(dòng)要求較高的應(yīng)用就不甚合適。同時(shí)使用這種傳統(tǒng)技術(shù)實(shí)現(xiàn)時(shí),需要通過多次比較才能得到一個(gè)最小值結(jié)果。在使用邏輯器件實(shí)現(xiàn)的時(shí)候,需要的資源很大;如果使用CPU進(jìn)行計(jì)算,則速度很慢。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種使信元流量實(shí)現(xiàn)最小抖動(dòng)的加權(quán)輪詢方法,以解決現(xiàn)有技術(shù)存在的短時(shí)抖動(dòng)過大,以及在使用ASIC或FPGA器件實(shí)現(xiàn)時(shí)邏輯規(guī)模太大的問題。
本發(fā)明的目的是這樣實(shí)現(xiàn)的一種使信元流量實(shí)現(xiàn)最小抖動(dòng)的加權(quán)輪詢方法,其特征在于該方法包括下列三個(gè)步驟A、對(duì)各個(gè)信元隊(duì)列進(jìn)行編號(hào);B、配置一個(gè)將各個(gè)隊(duì)列的編號(hào)均勻分布的查找表;C、按照查找表的順序發(fā)送各個(gè)隊(duì)列的信元,從而實(shí)現(xiàn)隊(duì)列的流量調(diào)度。
所述的步驟A中,對(duì)各個(gè)信元隊(duì)列進(jìn)行編號(hào)之前,進(jìn)一步包括下列步驟A1、確定需要實(shí)現(xiàn)的各個(gè)隊(duì)列的最小流量或流量控制的最小步進(jìn);A2、確定傳輸信道上可供使用的總帶寬;A3、根據(jù)上述最小流量和傳輸信道上可供使用的總帶寬,得到所需要的查找表的長(zhǎng)度L∶L=總帶寬/最小流量。
所述的步驟A3中,所需要的查找表是存儲(chǔ)該配置數(shù)據(jù)的RAM存儲(chǔ)器。
所述的查找表的長(zhǎng)度是RAM存儲(chǔ)器的存儲(chǔ)深度,即存儲(chǔ)器的存儲(chǔ)空間。
所述的步驟A3中,根據(jù)計(jì)算公式L=總帶寬/最小流量得到的所需要的查找表的長(zhǎng)度L可以只取整數(shù)部分,以使該查找表的長(zhǎng)度最短;也可以對(duì)查找表的長(zhǎng)度L的計(jì)算結(jié)果精確到小數(shù)點(diǎn)后的若干位,即加大查找表的長(zhǎng)度,使各個(gè)隊(duì)列的流量得到更精確的控制。
所述的步驟B中,配置一個(gè)將各個(gè)隊(duì)列的編號(hào)均勻分布的查找表是采用偽隨機(jī)交織的方法。
所述的步驟B中,在查找表中均勻分布配置各個(gè)隊(duì)列的編號(hào)時(shí),其配置結(jié)果應(yīng)該滿足下述三個(gè)條件各個(gè)隊(duì)列編號(hào)出現(xiàn)的次數(shù)與其配置的帶寬成正比,表示各個(gè)隊(duì)列的編號(hào)均勻分布在RAM存儲(chǔ)器空間上,以及如果將生成的查找表展開,在整個(gè)查找表中的任何一個(gè)節(jié)距上,各個(gè)隊(duì)列編號(hào)出現(xiàn)的次數(shù)與其在查找表內(nèi)相應(yīng)位置的個(gè)數(shù)的誤差不超過1個(gè)。
所述的步驟C中,按照查找表的順序發(fā)送各個(gè)隊(duì)列的信元,進(jìn)一步包括下列步驟C1、根據(jù)上述配置的查找表順序,確定發(fā)送的隊(duì)列編號(hào),同時(shí)發(fā)送該隊(duì)列的一個(gè)信元;C2、在每次發(fā)送一個(gè)信元之后,將查找表的地址加1,再讀出查找表內(nèi)該新地址的數(shù)據(jù),即確定下一個(gè)發(fā)送的隊(duì)列編號(hào),接著發(fā)送該隊(duì)列的一個(gè)信元;C3、循環(huán)進(jìn)行上述步驟C2的操作,直至所有隊(duì)列的信元全部發(fā)送完畢。
對(duì)于SDH/SONET承載包或POS/SPI系統(tǒng)包接口上的變長(zhǎng)報(bào)文,先將其切割成定長(zhǎng)的信元,再執(zhí)行所述的各個(gè)步驟,可實(shí)現(xiàn)變長(zhǎng)報(bào)文的流量調(diào)度。
本發(fā)明是一種使信元流量實(shí)現(xiàn)最小抖動(dòng)的加權(quán)輪詢方法,該方法的技術(shù)關(guān)鍵是采用一個(gè)將各個(gè)隊(duì)列的編號(hào)均勻分布的查找表,來實(shí)現(xiàn)隊(duì)列的流量調(diào)度。本發(fā)明的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,解決了傳統(tǒng)加權(quán)輪詢算法的缺陷,在實(shí)現(xiàn)時(shí),無須比較各個(gè)隊(duì)列的時(shí)標(biāo)寄存器,可以大大減小實(shí)現(xiàn)加權(quán)輪詢算法的難度和復(fù)雜度,在使用ASIC或FPGA實(shí)現(xiàn)本發(fā)明的時(shí)候,極大地減小了邏輯器件實(shí)現(xiàn)的規(guī)模和難度;同時(shí)極大地減小了傳統(tǒng)加權(quán)輪詢算法引起的短時(shí)流量的抖動(dòng),使短時(shí)抖動(dòng)減小到最低程度。另外,由于本發(fā)明只進(jìn)行查表,如果使用CPU進(jìn)行計(jì)算,其速度很快,遠(yuǎn)遠(yuǎn)高于現(xiàn)有的加權(quán)輪詢算法的速度。本發(fā)明還可以在SDH/SONET承載包或系統(tǒng)包(POS/SPI,Packet Over SDH/SONET/System PacketInterface)接口上實(shí)現(xiàn)變長(zhǎng)報(bào)文的流量調(diào)度,即先將變長(zhǎng)報(bào)文切割成定長(zhǎng)的信元,然后應(yīng)用本發(fā)明方法進(jìn)行調(diào)度。


圖1是傳統(tǒng)加權(quán)輪詢算法的簡(jiǎn)化調(diào)度示意圖。
圖2是用圖1所示的傳統(tǒng)加權(quán)輪詢算法的實(shí)施例中編號(hào)為CBR_0和CBR_1的隊(duì)列速率在短時(shí)上抖動(dòng)很大的情況示意圖。
圖3是本發(fā)明使信元流量實(shí)現(xiàn)最小抖動(dòng)的加權(quán)輪詢方法的流程圖。
圖4是采用本發(fā)明的實(shí)施例中編號(hào)為CBR_0和CBR_1的兩個(gè)隊(duì)列在短時(shí)上的速率抖動(dòng)明顯減少的情況示意圖。
具體實(shí)施例方式
本發(fā)明是一種使信元流量實(shí)現(xiàn)最小抖動(dòng)的加權(quán)輪詢方法,該方法是先對(duì)各個(gè)信元隊(duì)列進(jìn)行編號(hào),再配置一個(gè)將各個(gè)隊(duì)列的編號(hào)均勻分布的查找表,并按照查找表的順序發(fā)送各個(gè)隊(duì)列的信元,從而實(shí)現(xiàn)隊(duì)列的流量調(diào)度。
參見圖3,該方法包括下列具體步驟(1)確定需要實(shí)現(xiàn)的各個(gè)隊(duì)列的最小流量或流量控制的最小步進(jìn)(Bwsmin);例如64K。
(2)確定傳輸信道上可供使用的總帶寬(Bwtmax);例如一條光纖的帶寬,或者是系統(tǒng)分配的一條傳輸信道的帶寬622M。
(3)根據(jù)上述最小流量和傳輸信道上可供使用的總帶寬,得到所需要的查找表的長(zhǎng)度L∶L=總帶寬(Bwtmax)/最小流量(Bwsmin),也就是RAM存儲(chǔ)器的深度(即地址空間)為622M/64K=9800,為了減小RAM空間,可以對(duì)其結(jié)果L只取整數(shù)部分。
(4)將各個(gè)恒定比特率CBR業(yè)務(wù)逐一編號(hào),假如有4096個(gè)隊(duì)列,則可將隊(duì)列編號(hào)為0~4095;再采用偽隨機(jī)交織的方法在可供使用的總帶寬空間里均勻分布配置編號(hào)的各個(gè)隊(duì)列,即將各個(gè)隊(duì)列編號(hào)0~4095在9800地址空間內(nèi)均勻分布配置,并將這些配置數(shù)據(jù)存入查找表中;且配置結(jié)果應(yīng)該符合下列條件A、各個(gè)隊(duì)列編號(hào)出現(xiàn)的次數(shù)與其配置的帶寬成正比。如配置第0個(gè)CBR業(yè)務(wù)地帶寬為128K,那么隊(duì)列0在查找表(即RAM)中出現(xiàn)的次數(shù)應(yīng)為2次。B、表示各個(gè)隊(duì)列的編號(hào)應(yīng)在RAM空間上均勻分配。C、在整個(gè)查找表9800地址中的任何一個(gè)節(jié)距上,各個(gè)隊(duì)列編號(hào)出現(xiàn)的次數(shù)與其在查找表內(nèi)相應(yīng)位置的個(gè)數(shù)一致,其誤差不超過1個(gè)。
(5)根據(jù)上述配置的查找表順序,確定發(fā)送的隊(duì)列編號(hào),同時(shí)發(fā)送該隊(duì)列的一個(gè)信元;(6)在每次發(fā)送一個(gè)信元之后,將查找表的地址加1,再讀出查找表內(nèi)該新地址的數(shù)據(jù),即確定下一個(gè)發(fā)送的隊(duì)列編號(hào),接著發(fā)送該隊(duì)列的一個(gè)信元;(7)循環(huán)進(jìn)行上述步驟(6)的操作,直至所有隊(duì)列的信元全部發(fā)送完畢。
下面采用背景技術(shù)中的同一個(gè)實(shí)施例進(jìn)一步具體說明之。假設(shè)總帶寬為48M,總共有16個(gè)隊(duì)列業(yè)務(wù)(隊(duì)列序號(hào)小的優(yōu)先級(jí)高),各個(gè)隊(duì)列中需要的最小帶寬為1M。該簡(jiǎn)化的16個(gè)隊(duì)列所需要的帶寬分配如下表所示

采用本發(fā)明所述步驟中(1)~(5)的辦法得到用于隊(duì)列調(diào)度的查找表,它是一個(gè)4×48的RAM,RAM內(nèi)的數(shù)據(jù)見下表

這個(gè)查找表與隊(duì)列調(diào)度的順序是一致的,也就是說,應(yīng)該按照該查找表的順序發(fā)送隊(duì)列。
根據(jù)上述查找表,對(duì)于編號(hào)為CBR_0和CBR_1的隊(duì)列發(fā)送時(shí)隙在時(shí)間軸上的分布則如圖4所示。從圖4中可以明顯看到,采用本發(fā)明后,CBR_0和CBRCBR_1隊(duì)列在短時(shí)上的速率抖動(dòng)顯著減小,各個(gè)隊(duì)列的信元均勻發(fā)送的好處是顯而易見的。同時(shí)本發(fā)明是采用查表的辦法省略了比較時(shí)標(biāo)的程序,大大減少了用ASIC和FPGA器件實(shí)現(xiàn)的難度和規(guī)模。
本發(fā)明的方法已經(jīng)在申請(qǐng)人研制的設(shè)備上進(jìn)行試驗(yàn)實(shí)施,實(shí)施的結(jié)果是成功的,實(shí)現(xiàn)了發(fā)明目的。
權(quán)利要求
1.一種使信元流量實(shí)現(xiàn)最小抖動(dòng)的加權(quán)輪詢方法,其特征在于該方法包括下列三個(gè)步驟A、對(duì)各個(gè)信元隊(duì)列進(jìn)行編號(hào);B、配置一個(gè)將各個(gè)隊(duì)列的編號(hào)均勻分布的查找表;C、按照查找表的順序發(fā)送各個(gè)隊(duì)列的信元,從而實(shí)現(xiàn)隊(duì)列的流量調(diào)度。
2.根據(jù)權(quán)利要求1所述的加權(quán)輪詢方法,其特征在于所述的步驟A中,對(duì)各個(gè)信元隊(duì)列進(jìn)行編號(hào)之前,進(jìn)一步包括下列步驟A1、確定需要實(shí)現(xiàn)的各個(gè)隊(duì)列的最小流量或流量控制的最小步進(jìn);A2、確定傳輸信道上可供使用的總帶寬;A3、根據(jù)上述最小流量和傳輸信道上可供使用的總帶寬,得到所需要的查找表的長(zhǎng)度L∶L=總帶寬/最小流量。
3.根據(jù)權(quán)利要求2所述的加權(quán)輪詢方法,其特征在于所述的步驟A3中,所需要的查找表是存儲(chǔ)該配置數(shù)據(jù)的RAM存儲(chǔ)器。
4.根據(jù)權(quán)利要求2或3所述的加權(quán)輪詢方法,其特征在于所述的查找表的長(zhǎng)度是RAM存儲(chǔ)器的存儲(chǔ)深度,即存儲(chǔ)器的存儲(chǔ)空間。
5.根據(jù)權(quán)利要求2所述的加權(quán)輪詢方法,其特征在于所述的步驟A3中,根據(jù)計(jì)算公式L=總帶寬/最小流量得到的所需要的查找表的長(zhǎng)度L可以只取整數(shù)部分,以使該查找表的長(zhǎng)度最短;也可以對(duì)查找表的長(zhǎng)度L的計(jì)算結(jié)果精確到小數(shù)點(diǎn)后的若干位,即加大查找表的長(zhǎng)度,使各個(gè)隊(duì)列的流量得到更精確的控制。
6.根據(jù)權(quán)利要求1所述的加權(quán)輪詢方法,其特征在于所述的步驟B中,配置一個(gè)將各個(gè)隊(duì)列的編號(hào)均勻分布的查找表是采用偽隨機(jī)交織的方法。
7.根據(jù)權(quán)利要求1或6所述的加權(quán)輪詢方法,其特征在于所述的步驟B中,在查找表中均勻分布配置各個(gè)隊(duì)列的編號(hào)時(shí),其配置結(jié)果應(yīng)該滿足下述三個(gè)條件各個(gè)隊(duì)列編號(hào)出現(xiàn)的次數(shù)與其配置的帶寬成正比,表示各個(gè)隊(duì)列的編號(hào)均勻分布在RAM存儲(chǔ)器空間上,以及如果將生成的查找表展開,在整個(gè)查找表中的任何一個(gè)節(jié)距上,各個(gè)隊(duì)列編號(hào)出現(xiàn)的次數(shù)與其在查找表內(nèi)相應(yīng)位置的個(gè)數(shù)的誤差不超過1個(gè)。
8.根據(jù)權(quán)利要求1所述的加權(quán)輪詢方法,其特征在于所述的步驟C中,按照查找表的順序發(fā)送各個(gè)隊(duì)列的信元,進(jìn)一步包括下列步驟C1、根據(jù)上述配置的查找表順序,確定發(fā)送的隊(duì)列編號(hào),同時(shí)發(fā)送該隊(duì)列的一個(gè)信元;C2、在每次發(fā)送一個(gè)信元之后,將查找表的地址加1,再讀出查找表內(nèi)該新地址的數(shù)據(jù),即確定下一個(gè)發(fā)送的隊(duì)列編號(hào),接著發(fā)送該隊(duì)列的一個(gè)信元;C3、循環(huán)進(jìn)行上述步驟C2的操作,直至所有隊(duì)列的信元全部發(fā)送完畢。
9.根據(jù)權(quán)利要求1或2所述的加權(quán)輪詢方法,其特征在于對(duì)于SDH/SONET承載包或POS/SPI系統(tǒng)包接口上的變長(zhǎng)報(bào)文,先將其切割成定長(zhǎng)的信元,再執(zhí)行所述的各個(gè)步驟,可實(shí)現(xiàn)變長(zhǎng)報(bào)文的流量調(diào)度。
全文摘要
一種使信元流量實(shí)現(xiàn)最小抖動(dòng)的加權(quán)輪詢方法,該方法是先對(duì)各個(gè)信元隊(duì)列進(jìn)行編號(hào),再配置一個(gè)將各個(gè)隊(duì)列的編號(hào)均勻分布的查找表,并按照查找表的順序發(fā)送各個(gè)隊(duì)列的信元,從而實(shí)現(xiàn)隊(duì)列的流量調(diào)度。本發(fā)明的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,解決了傳統(tǒng)加權(quán)輪詢算法的缺陷,在實(shí)現(xiàn)時(shí),無須比較各個(gè)隊(duì)列的時(shí)標(biāo)寄存器,可以大大減小實(shí)現(xiàn)加權(quán)輪詢算法的難度和復(fù)雜度,在使用ASIC或FPGA實(shí)現(xiàn)本發(fā)明的時(shí)候,極大地減小了邏輯器件實(shí)現(xiàn)的規(guī)模和難度;同時(shí)極大地減小了傳統(tǒng)加權(quán)輪詢算法引起的短時(shí)流量的抖動(dòng),使短時(shí)抖動(dòng)減小到最低程度。另外,由于本發(fā)明只進(jìn)行查表,如果使用CPU進(jìn)行計(jì)算,其速度很快,遠(yuǎn)遠(yuǎn)高于現(xiàn)有的加權(quán)輪詢算法的速度。
文檔編號(hào)H04Q3/00GK1507212SQ0215533
公開日2004年6月23日 申請(qǐng)日期2002年12月10日 優(yōu)先權(quán)日2002年12月10日
發(fā)明者胡正超 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1