專利名稱:一種信元調(diào)度方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通訊領(lǐng)域,具體而言,尤其涉及交換網(wǎng)絡(luò)中的信元調(diào)度方法和裝置。
背景技術(shù):
在交換網(wǎng)絡(luò)中對(duì)分組緩存后的數(shù)據(jù)流進(jìn)行調(diào)度輸出的調(diào)度方法包括SP(Str ictPriority 嚴(yán)格優(yōu)先級(jí))、RR (Round Robin 輪循)、WRR (Weighted Round Robin 加權(quán)輪循)、DRR(Deficit Round Robin 赤字輪循)、DWRR(Deficit Weighted Round Robin 赤字加權(quán)輪循)等等,不同的調(diào)度算法滿足不同的應(yīng)用需求,或者一個(gè)應(yīng)用中同時(shí)使用多個(gè)調(diào)度算法,或者根據(jù)特殊的需求對(duì)現(xiàn)有調(diào)度算法做特定修改后完成特定功能。其中,圖I是現(xiàn)有的DRR(赤字輪循)調(diào)度算法流程圖,根據(jù)圖I的流程,DRR(赤字輪循)調(diào)度算法實(shí)現(xiàn)步驟如下步驟一、首先為每個(gè)隊(duì)列分配一個(gè)服務(wù)量子(Quantum),且每個(gè)隊(duì)列有ー個(gè)赤字計(jì)數(shù)器(Deficit counter);步驟ニ、所有隊(duì)列的赤字計(jì)數(shù)器在調(diào)度開始時(shí)被初始化為O ;步驟三、當(dāng)ー個(gè)活動(dòng)隊(duì)列(即有數(shù)據(jù)包等待調(diào)度輸出的隊(duì)列)被選擇服務(wù)時(shí),該隊(duì)列的服務(wù)量子與其當(dāng)前赤字計(jì)數(shù)器相加,累加的結(jié)果存入赤字計(jì)數(shù)器;步驟四、若隊(duì)首包長(zhǎng)小于赤字計(jì)數(shù)器的值,隊(duì)首數(shù)據(jù)包獲得發(fā)送,同時(shí)赤字計(jì)數(shù)器的值要減去發(fā)送包長(zhǎng);步驟五、若隊(duì)列所有等待發(fā)送的包被全部發(fā)送出去(即由活動(dòng)隊(duì)列變?yōu)榉腔顒?dòng)隊(duì)列),則不管赤字計(jì)數(shù)器的值是否還有剩余,赤字計(jì)數(shù)器都被復(fù)位為O ;步驟六、若隊(duì)列赤字計(jì)數(shù)器剰余的值不足以調(diào)度隊(duì)首數(shù)據(jù)包時(shí),將等到下ー個(gè)調(diào)度輪次把赤字計(jì)數(shù)器剰余的值與該隊(duì)列的服務(wù)量子累加后等待調(diào)度服務(wù);步驟七、調(diào)度器按輪循方式選擇下一個(gè)活動(dòng)隊(duì)列進(jìn)行調(diào)度輸出,依次輪循直至本輪次所有活動(dòng)隊(duì)列得到服務(wù),并從步驟三開始下一輪次調(diào)度。DRR(赤字輪循)調(diào)度算法實(shí)現(xiàn)了在各隊(duì)列內(nèi)部的數(shù)據(jù)包長(zhǎng)可變的情況下,滿足隊(duì)列預(yù)約帶寬的公平調(diào)度。但是對(duì)于定長(zhǎng)信元的隊(duì)列,赤字計(jì)數(shù)器的每個(gè)單位值均能調(diào)度ー個(gè)信元,若直接采用DRR(赤字輪循)調(diào)度算法,當(dāng)被服務(wù)的隊(duì)列因突發(fā)的信元輸入而堆積時(shí),調(diào)度器將一直調(diào)度該隊(duì)列的信元直到其赤字計(jì)數(shù)器剰余值為O才選擇服務(wù)下ー個(gè)隊(duì)列。若此時(shí)下一個(gè)隊(duì)列的赤字計(jì)數(shù)器有剩余值,并且在等待前一個(gè)隊(duì)列調(diào)度結(jié)束的過程中不斷有信元繼續(xù)入隊(duì),就會(huì)出現(xiàn)兩個(gè)隊(duì)列在赤字計(jì)數(shù)器均不為O的情況下,即兩個(gè)隊(duì)列均有信元等待調(diào)度輸出且均未超出預(yù)約帶寬時(shí),前一個(gè)隊(duì)列的信元連續(xù)得到輸出,后ー個(gè)隊(duì)列的信元持續(xù)堆積,甚至因此引起數(shù)據(jù)鏈路流控。因此,對(duì)于定長(zhǎng)信元的隊(duì)列,直接采用DRR(赤字輪循)調(diào)度算法只滿足了各隊(duì)列的預(yù)約帶寬,而沒有滿足隊(duì)列間公平調(diào)度原則。對(duì)于同等優(yōu)先級(jí)的定長(zhǎng)信元隊(duì)列要求調(diào)度算法既要滿足各隊(duì)列的預(yù)約帶寬又要滿足各隊(duì)列的信元得到公平調(diào)度,實(shí)現(xiàn)最大均衡輸出,直接使用DRR(赤字輪循)調(diào)度算法不能達(dá)到要求。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于提供一種信元調(diào)度輸出方法和裝置,實(shí)現(xiàn)定長(zhǎng)信元的公平調(diào)度和均衡輸出。為實(shí)現(xiàn)本發(fā)明要解決的技術(shù)問題,本發(fā)明ー種信元調(diào)度輸出方法包括根據(jù)各低優(yōu)先級(jí)隊(duì)列需要的預(yù)約帶寬為各低優(yōu)先級(jí)隊(duì)列分配服務(wù)量子Qi,并初始化低優(yōu)先級(jí)隊(duì)列的赤字計(jì)數(shù)器值為Qi ;輸出調(diào)度模塊輪循調(diào)度赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)隊(duì)活動(dòng)隊(duì)列的
隊(duì)首信元。上述方法中,當(dāng)有高優(yōu)先級(jí)隊(duì)列有信元等待調(diào)度輸出吋,輸出調(diào)度模塊以最高調(diào)度優(yōu)先權(quán)調(diào)度輸出高優(yōu)先級(jí)隊(duì)列的信元,直至高優(yōu)先級(jí)隊(duì)列為空。
上述方法中,輸出調(diào)度模塊輪循調(diào)度赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)活動(dòng)隊(duì)列的隊(duì)首信元,具體包括選中ー個(gè)赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)隊(duì)列,調(diào)度輸出該低優(yōu)先活動(dòng)隊(duì)列的隊(duì)首信元,同時(shí)該低優(yōu)先活動(dòng)隊(duì)列的赤字計(jì)數(shù)器值減I;在本次該低優(yōu)先級(jí)活動(dòng)隊(duì)列調(diào)度結(jié)束時(shí),如果該低優(yōu)先級(jí)活動(dòng)隊(duì)列的赤字計(jì)數(shù)器值減到0,或該低優(yōu)先級(jí)活動(dòng)隊(duì)列信元都已調(diào)度輸出且赤字計(jì)數(shù)器值不為0,則將該低優(yōu)先級(jí)活動(dòng)隊(duì)列從低優(yōu)先級(jí)隊(duì)列間的輪循調(diào)度中刪除;當(dāng)所有低優(yōu)先級(jí)活動(dòng)隊(duì)列的赤字計(jì)數(shù)器值都為O吋,則低優(yōu)先級(jí)活動(dòng)隊(duì)列間的輪
循調(diào)度結(jié)束。上述方法中,當(dāng)還有低優(yōu)先級(jí)活動(dòng)隊(duì)列的赤字計(jì)數(shù)器值不為O時(shí),毎次調(diào)度輸出赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)活動(dòng)隊(duì)列的隊(duì)首信元之前,判斷高優(yōu)先級(jí)隊(duì)列是否為空,如果不為空,以最高調(diào)度優(yōu)先權(quán)調(diào)度輸出高優(yōu)先級(jí)隊(duì)列的信元,直至高優(yōu)先級(jí)隊(duì)列為空,再調(diào)度輸出赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)活動(dòng)隊(duì)列的隊(duì)首信元,并將赤字計(jì)數(shù)器值減I。上述方法中,本輪次低優(yōu)先級(jí)活動(dòng)隊(duì)列間的輪循調(diào)度結(jié)束之后,還包括根據(jù)預(yù)約帶寬為各低優(yōu)先級(jí)活動(dòng)隊(duì)列的赤字計(jì)數(shù)器重新賦值,開始下一輪次的輪循調(diào)度。上述方法中,在信元調(diào)度輸出之前,進(jìn)ー步包括,接收來自輸入端ロ的信元,并根據(jù)信元類型和目的輸出端ロ,將信元存儲(chǔ)在高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列中。上述方法中,根據(jù)信元類型和目的輸出端ロ,將信元存儲(chǔ)在高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列中,具體包括根據(jù)信元類型及目的輸出端ロ確定對(duì)應(yīng)高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列,并將信元存儲(chǔ)在由緩存管理模塊分配給信元對(duì)應(yīng)的高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列的共享緩存地址中。上述方法中,高優(yōu)先級(jí)隊(duì)列為源路由信元隊(duì)列,低優(yōu)先級(jí)隊(duì)列為單播信元隊(duì)列和/或多播信元隊(duì)列。為實(shí)現(xiàn)本發(fā)明要解決的技術(shù)問題,本發(fā)明ー種信元調(diào)度輸出裝置,包括輸出調(diào)度模塊,所述輸出調(diào)度模塊包括與各輸出端ロ對(duì)應(yīng)的信元調(diào)度器,所述輸出調(diào)度模塊用于,根據(jù)各低優(yōu)先級(jí)隊(duì)列需要的預(yù)約帶寬為各低優(yōu)先級(jí)隊(duì)列分配服務(wù)量子Qi,并初始化低優(yōu)先級(jí)隊(duì)列的赤字計(jì)數(shù)器值為Qi,所述信元調(diào)度器用干,輪循調(diào)度赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)活動(dòng)隊(duì)列的隊(duì)首信元。
上述裝置中,所述輸出調(diào)度模塊還用于,當(dāng)有高優(yōu)先級(jí)隊(duì)列有信元等待調(diào)度輸出吋,輸出調(diào)度模塊以最高調(diào)度優(yōu)先權(quán)調(diào)度輸出高優(yōu)先級(jí)隊(duì)列的信元,直至高優(yōu)先級(jí)隊(duì)列為空。上述裝置中,進(jìn)ー步包括ー緩存管理模塊,所述緩存管理模塊用干,為各輸出端ロ維護(hù)高優(yōu)先級(jí)隊(duì)列和低優(yōu)先級(jí)隊(duì)列,根據(jù)信元入隊(duì)和出隊(duì)更新隊(duì)列鏈表和空閑鏈表。上述裝置中,進(jìn)ー步包括一信元入隊(duì)模塊,所述信元入隊(duì)模塊,用于接收來自輸入端ロ的信元,根據(jù)信元類型及目的輸出端ロ確定對(duì)應(yīng)高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列,并將信元存儲(chǔ)在由所述緩存管理模塊分配給對(duì)應(yīng)的高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列的共享緩存地址中。 上述裝置中,所述信元調(diào)度器具體用于,判斷高優(yōu)先級(jí)隊(duì)列是否空,若不為空,以最高調(diào)度優(yōu)先權(quán)調(diào)度輸出高優(yōu)先級(jí)隊(duì)列的信元,直至為空;并當(dāng)高優(yōu)先級(jí)隊(duì)列為空時(shí),輪循調(diào)度輸出赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)隊(duì)列的隊(duì)首信元,同時(shí)輪循的低優(yōu)先活動(dòng)隊(duì)列的赤字計(jì)數(shù)器值減1,直至輪循的低優(yōu)先級(jí)活動(dòng)隊(duì)列的赤字計(jì)數(shù)器值減到O。采用本發(fā)明所述的方法和裝置,對(duì)低優(yōu)先級(jí)的定長(zhǎng)信元隊(duì)列實(shí)施調(diào)度時(shí)既滿足了各隊(duì)列預(yù)約帶寬,又滿足了隊(duì)列間的公平調(diào)度原則,達(dá)到了各隊(duì)列信元最大均衡輸出的效
果O
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)ー步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖I是現(xiàn)有的DRR (赤字輪循)調(diào)度算法流程圖;圖2是本發(fā)明實(shí)施例改進(jìn)的DRR(赤字輪循)調(diào)度算法流程圖;圖3是本發(fā)明實(shí)施例的信元調(diào)度輸出流程圖;圖4是本發(fā)明實(shí)施例的信元調(diào)度裝置框圖。
具體實(shí)施例方式為了使本發(fā)明所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚、明白,以下結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一歩詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用干限定本發(fā)明。采用改進(jìn)的DRR(赤字輪循)調(diào)度算法的信元調(diào)度方法的實(shí)施例。信元調(diào)度方法包括根據(jù)各低優(yōu)先級(jí)隊(duì)列需要的預(yù)約帶寬為各低優(yōu)先級(jí)隊(duì)列分配服務(wù)量子Qi,并初始化低優(yōu)先級(jí)隊(duì)列的赤字計(jì)數(shù)器值為Qi ;輸出調(diào)度模塊輪循調(diào)度赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)活動(dòng)隊(duì)列的隊(duì)首信元。本實(shí)施例中的改進(jìn)的DRR(赤字輪循)調(diào)度算法支持在運(yùn)行過程中改變各隊(duì)列的預(yù)約帶寬在執(zhí)行完當(dāng)前輪次的調(diào)度之后和開始下一輪次的調(diào)度之前,根據(jù)各隊(duì)列被改變的預(yù)約帶寬重新為每個(gè)隊(duì)列分配服務(wù)量子并按新的服務(wù)量子為各赤字計(jì)數(shù)器賦值,即可從下ー輪次調(diào)度開始,在保證新的預(yù)約帶寬的條件下實(shí)現(xiàn)各隊(duì)列信元最大均衡輸出。采用SP(嚴(yán)格優(yōu)先級(jí))和改進(jìn)的DRR(赤字輪循)調(diào)度算法的信元調(diào)度方法的實(shí)施例,能為具有高優(yōu)先級(jí)的隊(duì)列提供最高調(diào)度優(yōu)先權(quán),保證了高優(yōu)先級(jí)隊(duì)列的最小時(shí)延。信元調(diào)度方法包括根據(jù)各低優(yōu)先級(jí)隊(duì)列需要的預(yù)約帶寬為各低優(yōu)先級(jí)隊(duì)列分配服務(wù)量子Qi,并初始化低優(yōu)先級(jí)隊(duì)列的赤字計(jì)數(shù)器值為Qi ;當(dāng)高優(yōu)先級(jí)隊(duì)列有信元等待調(diào)度輸出時(shí),輸出調(diào)度模塊以最高調(diào)度優(yōu)先權(quán)調(diào)度輸出高優(yōu)先級(jí)隊(duì)列的信元,直至高優(yōu)先級(jí)隊(duì)列為空;當(dāng)高優(yōu)先級(jí)隊(duì)列為空吋,輸出調(diào)度模塊輪循調(diào)度赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)活動(dòng)隊(duì)列的隊(duì)首信元。其中,輸出調(diào)度模塊始終為具有高優(yōu)先級(jí)的活動(dòng)隊(duì)列(即有信元等待調(diào)度輸出的高優(yōu)先級(jí)隊(duì)列)按SP(嚴(yán)格優(yōu)先級(jí))的要求提供最高調(diào)度優(yōu)先權(quán);按設(shè)定的預(yù)約帶寬為各低優(yōu)先級(jí)隊(duì)列的赤字計(jì)數(shù)器賦值,當(dāng)高優(yōu)先級(jí)的隊(duì)列為空(即處于非活動(dòng)狀態(tài))時(shí),對(duì)具有同等低優(yōu)先級(jí)的各隊(duì)列進(jìn)行每輪次調(diào)度,即在赤字計(jì)數(shù)器不為O的活動(dòng)隊(duì)列間做RR(輪循)調(diào)度,隊(duì)列每調(diào)度輸出一個(gè)信元其赤字計(jì)數(shù)器減1,赤字計(jì)數(shù)器的值減到O的隊(duì)列退出本輪次調(diào)度,直至所有隊(duì)列的赤字計(jì)數(shù)器的值都減到0,則重新按設(shè)定的預(yù)約帶寬為各隊(duì)列的赤字計(jì)數(shù)器賦值,開始下ー輪調(diào)度。
在本實(shí)施例中,在信元調(diào)度之前還包括,信元入隊(duì)接收信元,并根據(jù)信元類型和目的輸出端ロ,將信元存儲(chǔ)在其目的輸出端ロ的同類型低優(yōu)先級(jí)隊(duì)列或高優(yōu)先級(jí)隊(duì)列中;緩存管理根據(jù)信元入隊(duì)和出隊(duì)情況更新對(duì)應(yīng)的隊(duì)列鏈表和空閑鏈表;其中,信元入隊(duì)和輸出調(diào)度是兩個(gè)獨(dú)立的過程,緩存管理根據(jù)信元入隊(duì)和出隊(duì)情況更新對(duì)應(yīng)的隊(duì)列鏈表和空閑鏈表完成共享緩存的分配和回收。本實(shí)施例中改進(jìn)的DRR(赤字輪循)調(diào)度算法如圖2所示,實(shí)現(xiàn)步驟如下步驟201,首先按照各隊(duì)列需要的預(yù)約帶寬為每個(gè)隊(duì)列分配ー個(gè)獨(dú)立的服務(wù)量子(Qi);步驟202,然后初始化各隊(duì)列的赤字計(jì)數(shù)器(Dc_i)為Qi,赤字計(jì)數(shù)器的每個(gè)單位
值均能調(diào)度ー個(gè)信元。在赤字計(jì)數(shù)器不為O的活動(dòng)隊(duì)列(即有信元等待調(diào)度輸出的隊(duì)列)間做RR(輪循)調(diào)度每個(gè)活動(dòng)隊(duì)列毎次調(diào)度輸出ー個(gè)信元,同時(shí)其赤字計(jì)數(shù)器減I。在定長(zhǎng)信元的隊(duì)列間實(shí)現(xiàn)了各隊(duì)列信元的最大均衡調(diào)度輸出。步驟203和204,選擇赤字計(jì)數(shù)器不為O活動(dòng)隊(duì)列i ;調(diào)度輸出活動(dòng)隊(duì)列i的隊(duì)首信元,同時(shí)其赤字計(jì)數(shù)器減I。步驟205、206和207,每個(gè)活動(dòng)隊(duì)列在每次調(diào)度結(jié)束時(shí),如果隊(duì)列的赤字計(jì)數(shù)器減到O或者隊(duì)列從活動(dòng)隊(duì)列變?yōu)榉腔顒?dòng)隊(duì)列(即沒有信元等待調(diào)度輸出的隊(duì)列),則將該隊(duì)列從本輪次調(diào)度中剔除;否則,執(zhí)行步驟208。步驟208,判斷所有隊(duì)列赤字計(jì)數(shù)器是否都為0,如果是,則本輪次調(diào)度結(jié)束,重新按設(shè)定的預(yù)約帶寬為各隊(duì)列的赤字計(jì)數(shù)器賦值,開始下ー輪調(diào)度。所有隊(duì)列中的赤字計(jì)數(shù)器不都為O,執(zhí)行步驟209。步驟209,按順序選擇下一個(gè)活動(dòng)隊(duì)列確定為下一個(gè)調(diào)度服務(wù)的隊(duì)列,選至尾部則循環(huán)從頭開始。在赤字計(jì)數(shù)器不為O的活動(dòng)隊(duì)列間做RR(輪循)調(diào)度直至所有隊(duì)列的赤字計(jì)數(shù)器都為O。本實(shí)施例中的改進(jìn)的DRR (赤字輪循)調(diào)度算法支持在運(yùn)行過程中改變各隊(duì)列的預(yù)約帶寬在執(zhí)行完當(dāng)前輪次的調(diào)度之后和開始下一輪次的調(diào)度之前,根據(jù)各隊(duì)列被改變的預(yù)約帶寬重新為每個(gè)隊(duì)列分配服務(wù)量子并按新的服務(wù)量子為各赤字計(jì)數(shù)器賦值,即可從下一輪次調(diào)度開始,在保證新的預(yù)約帶寬的條件下實(shí)現(xiàn)各隊(duì)列信元最大均衡輸出。信元調(diào)度輸出的另ー實(shí)施例,請(qǐng)參閱圖3。本實(shí)施例中,始終為具有高優(yōu)先級(jí)的活動(dòng)隊(duì)列(即有信元等待調(diào)度輸出的高優(yōu)先級(jí)隊(duì)列)按SP (嚴(yán)格優(yōu)先級(jí))的要求提供最高調(diào)度優(yōu)先權(quán);當(dāng)高優(yōu)先級(jí)的隊(duì)列為空(即處于非活動(dòng)狀態(tài))時(shí),為具有同等低優(yōu)先級(jí)的隊(duì)列提供保證各隊(duì)列預(yù)約帶寬條件下的最大均衡調(diào)度輸出。具體步驟如下步驟301、302,按照各低優(yōu)先級(jí)隊(duì)列需要的預(yù)約帶寬為每個(gè)低優(yōu)先級(jí)隊(duì)列分配一個(gè)獨(dú)立的服務(wù)量子(Qi),并初始化各低優(yōu)先級(jí)隊(duì)列的赤字計(jì)數(shù)器(Dc_i)為Qi,赤字計(jì)數(shù)器的每個(gè)單位值均能調(diào)度ー個(gè)信元。
步驟303,開始調(diào)度,如果高優(yōu)先級(jí)的隊(duì)列非空,則連續(xù)調(diào)度輸出高優(yōu)先級(jí)隊(duì)列的隊(duì)首信元(步驟312),直至高優(yōu)先級(jí)隊(duì)列為空,才會(huì)選擇服務(wù)低優(yōu)先級(jí)隊(duì)列。步驟304-305,選中ー個(gè)赤字計(jì)數(shù)器不為O的低優(yōu)先級(jí)活動(dòng)隊(duì)列(即有信元等待調(diào)度輸出的低優(yōu)先級(jí)隊(duì)列),調(diào)度輸出該隊(duì)列的隊(duì)首信元,同時(shí)其赤字計(jì)數(shù)器減I。步驟306-308,在本次服務(wù)的低優(yōu)先級(jí)隊(duì)列調(diào)度結(jié)束時(shí),如果其赤字計(jì)數(shù)器減到O或者從活動(dòng)隊(duì)列變?yōu)榉腔顒?dòng)隊(duì)列(即沒有信元等待調(diào)度輸出的隊(duì)列),則將該隊(duì)列從本輪次低優(yōu)先級(jí)隊(duì)列間的輪循調(diào)度中剔除。步驟309-311,接著,判斷是否所有低優(yōu)先級(jí)隊(duì)列的赤字計(jì)數(shù)器都為O :如果所有赤字計(jì)數(shù)器都已為0,則本輪次調(diào)度結(jié)束,重新按設(shè)定的預(yù)約帶寬為各低優(yōu)先級(jí)隊(duì)列的赤字計(jì)數(shù)器賦值,開始下一輪調(diào)度;如果還有赤字計(jì)數(shù)器不為0,則每調(diào)度輸出ー個(gè)低優(yōu)先級(jí)隊(duì)列的隊(duì)首信元,均需要判斷高優(yōu)先級(jí)隊(duì)列是否非空,當(dāng)高優(yōu)先級(jí)隊(duì)列處于活動(dòng)狀態(tài)(即有信元等待調(diào)度輸出)吋,則立即調(diào)度輸出高優(yōu)先級(jí)隊(duì)列的隊(duì)首信元,直至高優(yōu)先級(jí)隊(duì)列為空,才會(huì)按順序繼續(xù)選擇下一個(gè)低優(yōu)先級(jí)的活動(dòng)隊(duì)列確定為下一個(gè)調(diào)度服務(wù)的隊(duì)列,選至尾部則循環(huán)從頭開始。此步驟在低優(yōu)先級(jí)隊(duì)列間實(shí)現(xiàn)了各隊(duì)列信元的最大均衡調(diào)度輸出,同時(shí)保證了高優(yōu)先級(jí)隊(duì)列的最高的調(diào)度優(yōu)先權(quán)和最小的調(diào)度延吋。信元調(diào)度裝置的實(shí)施例,在本實(shí)施例中,信元調(diào)度裝置包括輸出調(diào)度模塊,根據(jù)各低優(yōu)先級(jí)隊(duì)列需要的預(yù)約帶寬為各低優(yōu)先級(jí)隊(duì)列分配服務(wù)量子Qi,并初始化低優(yōu)先級(jí)隊(duì)列的赤字計(jì)數(shù)器值為Qi。輸出調(diào)度模塊包括有與各輸出端ロ對(duì)應(yīng)的信元調(diào)度器,信元調(diào)度器調(diào)度輸出高優(yōu)先級(jí)隊(duì)列的信元,并在高優(yōu)先級(jí)隊(duì)列為空吋,輪循調(diào)度赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)隊(duì)的隊(duì)首信元,至輪循的低優(yōu)先隊(duì)列的赤字計(jì)數(shù)器值減到O。本實(shí)施例信元調(diào)度裝置還包括緩存管理模塊和信元入隊(duì)模塊。緩存管理模塊為各輸出端ロ維護(hù)高優(yōu)先級(jí)隊(duì)列和低優(yōu)先級(jí)隊(duì)列,根據(jù)信元入隊(duì)和出隊(duì)更新隊(duì)列鏈表和空閑鏈表。信元入隊(duì)模塊接收來自輸入端ロ的信元,根據(jù)信元類型及目的輸出端ロ確定對(duì)應(yīng)高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列,并將信元存儲(chǔ)在由所述緩存管理模塊分配給對(duì)應(yīng)的高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列的共享緩存地址中。其中,緩存管理模塊,根據(jù)信元入隊(duì)和出隊(duì)情況更新對(duì)應(yīng)的隊(duì)列鏈表和空閑鏈表
(1)信元入隊(duì)模塊根據(jù)信元類型及其目的輸出端ロ確定信元應(yīng)入隊(duì)的隊(duì)列號(hào),空閑鏈表提供共享緩存地址給信元入隊(duì)模塊存儲(chǔ)信元,同時(shí)更新該隊(duì)列的隊(duì)列鏈表,完成信元入隊(duì);
(2)某個(gè)隊(duì)列的信元被調(diào)度輸出后,空閑鏈表回收共享緩存地址,同時(shí)更新該隊(duì)列的隊(duì)列鏈表,完成信元出隊(duì);與各輸出端ロ有對(duì)應(yīng)的信元調(diào)度器是獨(dú)立的,信元調(diào)度器首先判斷高優(yōu)先級(jí)的源路由隊(duì)列是否活動(dòng)(即是否有源路由信元等待調(diào)度輸出),若源路由隊(duì)列處于活動(dòng)狀態(tài),信元調(diào)度器以最高調(diào)度優(yōu)先權(quán)調(diào)度輸出源路由隊(duì)列的信元直至源路由隊(duì)列為空(即處于非活動(dòng)狀態(tài));若源路由隊(duì)列處于非活動(dòng)狀態(tài),信元調(diào)度器判斷同等低優(yōu)先級(jí)的單播隊(duì)列和多播隊(duì)列的赤字計(jì)數(shù)器狀態(tài),若二者均不為0,信元調(diào)度器輪流調(diào)度單播隊(duì)列和多播隊(duì)列的隊(duì)首信元;每調(diào)度一個(gè)單播信元,單播隊(duì)列赤字計(jì)數(shù)器減1,每調(diào)度一個(gè)多播信元,多播隊(duì)列赤字計(jì)數(shù)器減I;直至單播隊(duì)列赤字計(jì)數(shù)器或多播隊(duì)列赤字計(jì)數(shù)器減到0,調(diào)度器再調(diào)度另ー個(gè)赤字計(jì)數(shù)器不為O的隊(duì)列直至其赤字計(jì)數(shù)器減到O ;調(diào)度器重新為單播隊(duì)列赤字計(jì)數(shù)器和多播隊(duì)列赤字計(jì)數(shù)器按設(shè)定的預(yù)約帶寬賦值,開始下ー輪調(diào)度。信元調(diào)度裝置的另ー實(shí)施例,請(qǐng)參閱圖4所示。信元調(diào)度裝置包括信元入隊(duì)模塊41負(fù)責(zé)接收信元,根據(jù)信元類型及其目的輸出端ロ確定應(yīng)入隊(duì)的隊(duì)列號(hào),并將信元存儲(chǔ)在由緩存管理模塊42分配給該信元應(yīng)入隊(duì)隊(duì)列的共享緩存地址中;緩存管理模塊42根據(jù)信 元入隊(duì)和出隊(duì)情況更新對(duì)應(yīng)的隊(duì)列鏈表和空閑鏈表;輸出調(diào)度模塊43包括各輸出端ロ獨(dú)立的信元調(diào)度器44,每個(gè)調(diào)度器44根據(jù)其端ロ內(nèi)各隊(duì)列的狀態(tài)確定當(dāng)前應(yīng)調(diào)度的隊(duì)列,并調(diào)度輸出該隊(duì)列的隊(duì)首信元。緩存管理模塊42為每個(gè)輸出端ロ維護(hù)3個(gè)隊(duì)列一個(gè)源路由信元隊(duì)列,一個(gè)單播信元隊(duì)列和一個(gè)多播信元隊(duì)列。其中源路由信元隊(duì)列為高優(yōu)先級(jí)隊(duì)列,單播信元隊(duì)列和多播信元隊(duì)列為同等低優(yōu)先級(jí)隊(duì)列。信元入隊(duì)模塊41管理各輸入端ロ輸入的信元,并根據(jù)信元類型及目的輸出端ロ號(hào),確定信元應(yīng)入隊(duì)的隊(duì)列號(hào),將隊(duì)列號(hào)發(fā)送給緩存管理模塊42,緩存管理模塊42的空閑鏈表為接收到的隊(duì)列號(hào)提供一個(gè)空閑地址反饋給信元入隊(duì)模塊41將信元存儲(chǔ)到共享緩存中,同時(shí)更新對(duì)應(yīng)的隊(duì)列鏈表,完成信元入隊(duì)。緩存管理模塊42為輸出調(diào)度模塊43提供各個(gè)端ロ的源路由隊(duì)列狀態(tài)、單播隊(duì)列狀態(tài)和多播隊(duì)列狀態(tài)信息;并根據(jù)信元調(diào)度器44反饋的調(diào)度結(jié)果,提供被調(diào)度信元在共享緩存中的地址給輸出調(diào)度模塊43完成調(diào)度輸出;信元被調(diào)度輸出后,空閑鏈表回收共享緩存地址,同時(shí)更新對(duì)應(yīng)的隊(duì)列鏈表,完成信元出隊(duì)。在輸出調(diào)度模塊43中,各輸出端ロ均有相互獨(dú)立且互不干擾的信元調(diào)度器44。各信元調(diào)度器44根據(jù)緩存管理模塊42為該端ロ維護(hù)的各隊(duì)列狀態(tài),確定對(duì)應(yīng)的輸出端ロ當(dāng)前應(yīng)調(diào)度的隊(duì)列,將調(diào)度結(jié)果發(fā)送給緩存管理模塊42,并O根據(jù)緩存管理模塊42反饋的被調(diào)度信元地址將信元調(diào)度輸出。信元調(diào)度器44首先判斷高優(yōu)先級(jí)的源路由隊(duì)列是否處于活動(dòng)狀態(tài)(即是否有源路由信元等待調(diào)度輸出),若源路由隊(duì)列處于活動(dòng)狀態(tài),信元調(diào)度器44以最高調(diào)度優(yōu)先權(quán)調(diào)度輸出源路由隊(duì)列的信元直至源路由隊(duì)列為空(即處于非活動(dòng)狀態(tài));在源路由隊(duì)列處于非活動(dòng)狀態(tài)下,調(diào)度器判斷同等低優(yōu)先級(jí)的單播隊(duì)列和多播隊(duì)列的赤字計(jì)數(shù)器狀態(tài),若二者均不為0,調(diào)度器輪流調(diào)度單播隊(duì)列和多播隊(duì)列的隊(duì)首信元;每調(diào)度輸出一個(gè)單播信元或多播信元,均需要判斷源路由隊(duì)列是否非空,若源路由隊(duì)列非空,則立即調(diào)度輸出源路由隊(duì)列的隊(duì)首信元,直至源路由隊(duì)列為空,才會(huì)按順序繼續(xù)選擇下一個(gè)多播或單播的活動(dòng)隊(duì)列并確定為下一個(gè)調(diào)度服務(wù)的隊(duì)列,如此循環(huán)。信元調(diào)度器每調(diào)度一個(gè)單播信元,單播隊(duì)列赤字計(jì)數(shù)器減1,每調(diào)度一個(gè)多播信元,多播隊(duì)列赤字計(jì)數(shù)器減I;直至單播隊(duì)列赤字計(jì)數(shù)器或多播隊(duì)列赤字計(jì)數(shù)器減到O,信元調(diào)度器再調(diào)度另ー個(gè)赤字計(jì)數(shù)器不為O的隊(duì)列直至其赤字計(jì)數(shù)器減到O,進(jìn)而重新為單播隊(duì)列赤字計(jì)數(shù)器和多播隊(duì)列赤字計(jì)數(shù)器按設(shè)定的預(yù)約帶寬賦值,開始下ー輪調(diào)度。本實(shí)施例在單播隊(duì)列和多播隊(duì)列間實(shí)現(xiàn)了滿足預(yù)約帶寬的條件下,各隊(duì)列信元的最大均衡輸出,同時(shí)保證了源路由隊(duì)列的最高調(diào)度優(yōu)先權(quán)和最小調(diào)度延時(shí),提高了對(duì)不同分組數(shù)據(jù)區(qū)別處理的能力,從而提高整個(gè)交換網(wǎng)絡(luò)的性能。上述說明示出并描述了本發(fā)明的ー個(gè)優(yōu)選實(shí)施例,但如前所述,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對(duì)其他實(shí)施例的排除,而可用于各種其他組合、 修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種信元調(diào)度輸出方法,其特征在于,包括 根據(jù)各低優(yōu)先級(jí)隊(duì)列需要的預(yù)約帶寬為各低優(yōu)先級(jí)隊(duì)列分配服務(wù)量子Qi,并初始化低優(yōu)先級(jí)隊(duì)列的赤字計(jì)數(shù)器值為Qi ; 輸出調(diào)度模塊輪循調(diào)度赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)活動(dòng)隊(duì)列的隊(duì)首信元。
2.根據(jù)權(quán)利要求I所述的信元調(diào)度輸出方法,其特征在干,當(dāng)有高優(yōu)先級(jí)隊(duì)列有信元等待調(diào)度輸出吋,輸出調(diào)度模塊以最高調(diào)度優(yōu)先權(quán)調(diào)度輸出高優(yōu)先級(jí)隊(duì)列的信元,直至高優(yōu)先級(jí)隊(duì)列為空。
3.根據(jù)權(quán)利要求I或2所述的信元調(diào)度輸出方法,其特征在干,輸出調(diào)度模塊輪循調(diào)度赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)活動(dòng)隊(duì)列的隊(duì)首信元,具體包括 選中ー個(gè)赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)隊(duì)列,調(diào)度輸出該低優(yōu)先級(jí)活動(dòng)隊(duì)列的隊(duì)首信元,同時(shí)該低優(yōu)先級(jí)活動(dòng)隊(duì)列的赤字計(jì)數(shù)器值減I; 在本次該低優(yōu)先級(jí)活動(dòng)隊(duì)列調(diào)度結(jié)束時(shí),如果該低優(yōu)先級(jí)活動(dòng)隊(duì)列的赤字計(jì)數(shù)器值減到O,或該低優(yōu)先級(jí)活動(dòng)隊(duì)列信元都已調(diào)度輸出且赤字計(jì)數(shù)器值不為O,則將該低優(yōu)先級(jí)活動(dòng)隊(duì)列從低優(yōu)先級(jí)隊(duì)列間的輪循調(diào)度中刪除; 當(dāng)所有低優(yōu)先級(jí)活動(dòng)隊(duì)列的赤字計(jì)數(shù)器值都為O吋,則低優(yōu)先級(jí)活動(dòng)隊(duì)列間的輪循調(diào)反夕ロ水O
4.根據(jù)權(quán)利要求3所述的信元調(diào)度輸出方法,其特征在干, 當(dāng)還有低優(yōu)先級(jí)活動(dòng)隊(duì)列的赤字計(jì)數(shù)器值不為O時(shí),毎次調(diào)度輸出赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)活動(dòng)隊(duì)列的隊(duì)首信元之前,判斷高優(yōu)先級(jí)隊(duì)列是否為空,如果不為空,以最高調(diào)度優(yōu)先權(quán)調(diào)度輸出高優(yōu)先級(jí)隊(duì)列的信元,直至高優(yōu)先級(jí)隊(duì)列為空,再調(diào)度輸出赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)活動(dòng)隊(duì)列的隊(duì)首信元,并將赤字計(jì)數(shù)器值減I。
5.根據(jù)權(quán)利要求2所述的信元調(diào)度輸出方法,其特征在于,本輪次低優(yōu)先級(jí)活動(dòng)隊(duì)列間的輪循調(diào)度結(jié)束之后,還包括 根據(jù)預(yù)約帶寬為各低優(yōu)先級(jí)活動(dòng)隊(duì)列的赤字計(jì)數(shù)器重新賦值,開始下一輪次的輪循調(diào)度。
6.根據(jù)權(quán)利要求I所述的信元調(diào)度輸出方法,其特征在于,在信元調(diào)度輸出之前,進(jìn)ー步包括, 接收來自輸入端ロ的信元,并根據(jù)信元類型和目的輸出端ロ,將信元存儲(chǔ)在高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列中。
7.根據(jù)權(quán)利要求5所述的信元調(diào)度輸出方法,其特征在干,根據(jù)信元類型和目的輸出端ロ,將信元存儲(chǔ)在高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列中,具體包括 根據(jù)信元類型及目的輸出端ロ確定對(duì)應(yīng)高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列,并將信元存儲(chǔ)在由緩存管理模塊分配給信元對(duì)應(yīng)的高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列的共享緩存地址中。
8.根據(jù)權(quán)利要求I所述的信元調(diào)度輸出方法,其特征在于,高優(yōu)先級(jí)隊(duì)列為源路由信元隊(duì)列,低優(yōu)先級(jí)隊(duì)列為單播信元隊(duì)列和/或多播信元隊(duì)列。
9.一種信元調(diào)度輸出裝置,其特征在于,包括輸出調(diào)度模塊, 所述輸出調(diào)度模塊包括與各輸出端ロ對(duì)應(yīng)的信元調(diào)度器, 所述輸出調(diào)度模塊用于,根據(jù)各低優(yōu)先級(jí)隊(duì)列需要的預(yù)約帶寬為各低優(yōu)先級(jí)隊(duì)列分配服務(wù)量子Qi,并初始化低優(yōu)先級(jí)隊(duì)列的赤字計(jì)數(shù)器值為Qi,所述信元調(diào)度器用干,輪循調(diào)度赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)活動(dòng)隊(duì)列的隊(duì)首信
10.根據(jù)權(quán)利要求9所述的信元調(diào)度輸出裝置,其特征在干,所述輸出調(diào)度模塊還用于,當(dāng)有高優(yōu)先級(jí)隊(duì)列有信元等待調(diào)度輸出時(shí),輸出調(diào)度模塊以最高調(diào)度優(yōu)先權(quán)調(diào)度輸出高優(yōu)先級(jí)隊(duì)列的信元,直至高優(yōu)先級(jí)隊(duì)列為空。
11.根據(jù)權(quán)利要求10所述的信元調(diào)度輸出裝置,其特征在干,進(jìn)ー步包括ー緩存管理模塊, 所述緩存管理模塊用干,為各輸出端ロ維護(hù)高優(yōu)先級(jí)隊(duì)列和低優(yōu)先級(jí)隊(duì)列,根據(jù)信元入隊(duì)和出隊(duì)更新隊(duì)列鏈表和空閑鏈表。
12.根據(jù)權(quán)利要求11所述的信元調(diào)度輸出裝置,其特征在干,進(jìn)ー步包括一信元入隊(duì)模塊, 所述信元入隊(duì)模塊,用于接收來自輸入端ロ的信元,根據(jù)信元類型及目的輸出端ロ確定對(duì)應(yīng)高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列,并將信元存儲(chǔ)在由所述緩存管理模塊分配給對(duì)應(yīng)的高優(yōu)先級(jí)隊(duì)列或低優(yōu)先級(jí)隊(duì)列的共享緩存地址中。
13.根據(jù)權(quán)利要求9所述的信元調(diào)度輸出裝置,其特征在于,所述信元調(diào)度器具體用于,判斷高優(yōu)先級(jí)隊(duì)列是否空,若不為空,以最高調(diào)度優(yōu)先權(quán)調(diào)度輸出高優(yōu)先級(jí)隊(duì)列的信元,直至為空; 并當(dāng)高優(yōu)先級(jí)隊(duì)列為空時(shí),輪循調(diào)度輸出赤字計(jì)數(shù)器值不為O的低優(yōu)先級(jí)隊(duì)列的隊(duì)首信元,同時(shí)輪循的低優(yōu)先活動(dòng)隊(duì)列的赤字計(jì)數(shù)器值減1,直至輪循的低優(yōu)先級(jí)活動(dòng)隊(duì)列的赤字計(jì)數(shù)器值減到O。
全文摘要
本發(fā)明提供了一種信元調(diào)度的方法和裝置。本發(fā)明調(diào)度方法包括根據(jù)各低優(yōu)先級(jí)隊(duì)列需要的預(yù)約帶寬為各低優(yōu)先級(jí)隊(duì)列分配服務(wù)量子Qi,并初始化低優(yōu)先級(jí)隊(duì)列的赤字計(jì)數(shù)器值為Qi;當(dāng)高優(yōu)先級(jí)隊(duì)列有信元等待調(diào)度輸出時(shí),輸出調(diào)度模塊以最高調(diào)度優(yōu)先權(quán)調(diào)度輸出高優(yōu)先級(jí)隊(duì)列的信元,直至高優(yōu)先級(jí)隊(duì)列為空;當(dāng)高優(yōu)先級(jí)隊(duì)列為空時(shí),輸出調(diào)度模塊輪循調(diào)度赤字計(jì)數(shù)器值不為0的低優(yōu)先級(jí)活動(dòng)隊(duì)列的隊(duì)首信元。本發(fā)明的方法和裝置實(shí)現(xiàn)信元的公平調(diào)度和均衡輸出。
文檔編號(hào)H04L12/54GK102684983SQ201110062158
公開日2012年9月19日 申請(qǐng)日期2011年3月15日 優(yōu)先權(quán)日2011年3月15日
發(fā)明者喬艷明, 劉華瑞 申請(qǐng)人:中興通訊股份有限公司