專利名稱:報文入隊和出隊調度的裝置及方法
技術領域:
本發(fā)明涉及通信領域,特別涉及一種報文入隊和出隊調度的裝置及方法。
背景技術:
隨著IP業(yè)務的發(fā)展,語音業(yè)務也在逐步IP化。語音業(yè)務的特點是流量低,但是對延時有很高的要求。對一個用戶來講,上網(wǎng)時可能有多種業(yè)務在同時運行,比如視頻業(yè)務和數(shù)據(jù)業(yè)務。如果不對語音業(yè)務的帶寬加以保證,其帶寬可能會被大流量業(yè)務搶占,導致語音業(yè)務產(chǎn)生延遲,從而導致語音時斷時續(xù),影響了通話質量。因而,需要保證用戶的語音業(yè)務的帶寬和降低延時。
參見圖1,現(xiàn)有技術提供了一種報文入隊和出隊調度的裝置,該裝置包括入隊管理單元101,用于將接收到的報文的包描述符放入隊列緩存單元102的對應隊列,更新存儲單元103的隊列信息表中該隊列的隊列狀態(tài)。
隊列緩存單元102,用于存放入隊管理單元101發(fā)送的包描述符。
為了對不同業(yè)務差別處理,隊列緩存單元102包括多個隊列,一般可以按照不同的用戶,不同的業(yè)務進行隊列分組。
存儲單元103,用于存儲隊列信息表,該隊列信息表包括隊列深度,隊列中剩余信用值(Credit)等信息。隊列深度是指隊列緩存的所有包的總字節(jié)數(shù)。剩余信用值用字節(jié)數(shù)表示,它來源于調度器104的調度,可以是負值。
調度器104,用于根據(jù)隊列信息表中的隊列狀態(tài)向出隊管理單元105發(fā)送出隊請求,例如發(fā)送需要出隊的包描述符的隊列號。調度器104每次可以調度256個字節(jié),表示出隊管理單元105可以發(fā)出256個字節(jié)的數(shù)據(jù)。
出隊管理單元105,用于接收調度器104發(fā)送的出隊請求,根據(jù)出隊請求更新存儲單元103中的隊列信息表,進行出隊判斷,對符合出隊條件的隊列實施出隊操作,包出隊后,更新隊列信息表中對應的隊列狀態(tài)。
通過上述裝置,當包入隊時,先將包描述符寫入隊列緩存單元102中對應的隊列。同時,更新隊列信息表中的隊列深度。其中,包描述符包含指示包存放在隊列緩存單元102中的隊列號QID,包長和包在緩存中存放的地址。
隊列信息表中隊列深度更新的方法是包入隊時,從隊列信息表中讀出隊列深度,加上當前入隊的包長作為新的隊列深度,再將新的隊列深度寫回隊列信息表中。包出隊時,從隊列信息表中讀出隊列深度,減去當前出隊的包長作為新的隊列深度,再將新的隊列深度寫回隊列信息表中。
包入隊后,入隊管理單元101將隊列信息表更新為非空狀態(tài)。調度器104輪詢到該隊列時,如果該隊列為空就略過,如果該隊列非空,向出隊管理單元105發(fā)送出隊請求,即該隊列的隊列號QID,出隊管理單元105根據(jù)隊列號QID進行出隊操作。
出隊管理單元105收到調度器104出隊請求后,從隊列信息表中讀出請求隊列的剩余信用值,再加上當前這一次的調度請求代表的256字節(jié)。如果結果大于等于0,表示隊列中對應的數(shù)據(jù)包可以出隊,出隊管理單元105從隊列緩存單元中讀出該隊列的包描述符。如果結果小于0,則對應的數(shù)據(jù)包不能出隊,只將該隊列的剩余信用值加上256后的結果寫回隊列信息表。
出隊管理單元105進行出隊時是整包發(fā)送的,包出隊后,讀出隊列信息表中該隊列的剩余信用值和隊列深度,用讀出的剩余信用值減去包長,并將結果寫回到隊列信息表中,同時將讀出的隊列深度減去包長得到新的隊列深度,將新的隊列深度寫回到隊列信息表中。
上述現(xiàn)有技術中,包入隊后先要在隊列中等待,只有調度器104將該包的剩余信用值填充到正值時,包才能出隊。對于大包,出隊后帶來很大的剩余信用值。后面的包又要走相同的過程。那么,這期間等待的時間很長,而低流量報文需要等待的時間更長。這樣,就造成低流量報文的延時比較大,對于語音等業(yè)務,會影響該業(yè)務的通話質量。對于小于256個字節(jié)的數(shù)據(jù)包,每次出隊后都有剩余的Credit累積,會造成Credit溢出,用戶帶寬減小。
發(fā)明內容
為了提高低流量業(yè)務的服務質量,本發(fā)明實施例提供了一種報文入隊和出隊調度的裝置及方法。所述技術方案如下一種報文入隊和出隊調度的裝置,所述裝置包括報文接收單元,用于接收報文;隊列緩存單元,用于存放所述報文接收單元接收到的報文的包描述符;存儲單元,用于存儲隊列狀態(tài),并根據(jù)所述報文接收單元接收到的報文或根據(jù)接收的通知更新對應的隊列狀態(tài);隊列狀態(tài)獲取單元,用于在所述存儲單元中獲取所述報文接收單元接收到的報文對應的隊列狀態(tài);隊列號入隊緩存單元,用于緩存所述隊列狀態(tài)獲取單元中隊列狀態(tài)滿足隊列的剩余信用值大于一個負的閾值,且隊列深度小于預設值的隊列號;調度器,用于根據(jù)所述存儲單元中的隊列狀態(tài)發(fā)送出隊請求;出隊管理單元,用于接收所述調度器的出隊請求,根據(jù)所述出隊請求中的隊列號對所述隊列緩存單元中對應的包描述符進行出隊操作;在所述調度器空閑期間,從所述隊列號入隊緩存單元中取出隊列號,根據(jù)所取出的隊列號對所述隊列緩存單元中對應的包描述符進行出隊操作,并通知所述存儲單元更新進行出隊操作的隊列的隊列狀態(tài)。
本發(fā)明實施例還提供了一種報文入隊和出隊調度的方法,所述方法包括收到報文后,將報文的包描述符放入隊列緩存的對應隊列,并更新所述對應隊列的隊列狀態(tài);判斷所述對應隊列的隊列狀態(tài)是否滿足隊列的剩余信用值大于一個負的閾值,且隊列深度小于預設值的條件,如果是,將對應的隊列號寫入隊列號入隊緩存中;調度器空閑時,根據(jù)所述隊列號入隊緩存中的隊列號對所述隊列緩存中對應的包描述符進行出隊操作;出隊操作后,更新進行出隊的隊列的隊列狀態(tài)。
本發(fā)明實施例提供的技術方案的有益效果是通過在入隊時緩存部分隊列號,當調度器空閑時,使緩存的部分隊列號對應的流量先出隊,實現(xiàn)了在小流量時保持高優(yōu)先級的低延時,提高了低流量業(yè)務的服務質量。
圖1是現(xiàn)有技術中報文入隊和出隊調度的裝置的結構示意圖;圖2是本發(fā)明實施例1提供的報文入隊和出隊調度的裝置的結構示意圖;圖3是本發(fā)明實施例2提供的入隊管理單元收到報文后的處理方法流程圖;圖4是本發(fā)明實施例2提供的出隊管理單元進行出隊處理的方法流程圖。
具體實施例方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。
本發(fā)明實施通過在報文入隊和出隊調度的裝置中填加隊列號入隊緩存和隊列號出隊緩存,在調度器空閑時,從隊列號入隊緩存或隊列號出隊緩存中取出隊列號,進行出隊操作,保證了低流量報文的服務質量。
實施例1參見圖2,本發(fā)明實施例提供了一種報文入隊和出隊調度的裝置,包括報文接收單元201,用于接收報文。
隊列緩存單元202,用于存放報文接收單元201接收到的報文的包描述符。
存儲單元203,用于存儲隊列狀態(tài),并根據(jù)報文接收單元201接收到的報文或根據(jù)接收的通知更新對應的隊列狀態(tài);其中,本實施例中的隊列狀態(tài)以隊列信息表的形式存放。
隊列狀態(tài)獲取單元204,用于在存儲單元203中獲取報文接收單元201接收到的報文對應的隊列狀態(tài)。
隊列號入隊緩存單元205,用于緩存隊列狀態(tài)獲取單元204中隊列狀態(tài)滿足隊列的剩余信用值大于一個負的閾值,且隊列深度小于預設值的隊列號;其中,閾值和預設值可以為任意正值。
調度器206,用于根據(jù)存儲單元203中的隊列狀態(tài)發(fā)送出隊請求;出隊管理單元207,用于接收調度器206的出隊請求,根據(jù)出隊請求中的隊列號對隊列緩存單元202中對應的包描述符進行出隊操作;在調度器206空閑期間,從隊列號入隊緩存單元205中取出隊列號,根據(jù)取出的隊列號對隊列緩存單元202中對應的包描述符進行出隊操作,并通知存儲單元203更新進行出隊操作的隊列的隊列狀態(tài)。
其中,出隊管理單元207包括請求處理子單元,用于接收調度器206的出隊請求,從存儲單元203中讀出該出隊請求中的隊列號對應的隊列狀態(tài),根據(jù)隊列狀態(tài)判斷該請求中的隊列號對應的隊列是否符合出隊條件;第一出隊管理子單元,用于當出隊請求中的隊列號對應的隊列狀態(tài)符合請求處理子單元中的出隊條件時,根據(jù)出隊請求中的隊列號對隊列緩存單元202中對應的包描述符進行出隊操作,以及通知存儲單元203更新上述請求中的隊列號對應的隊列的隊列狀態(tài);第二出隊管理子單元,用于在調度器206空閑期間,從隊列號入隊緩存單元205中取出隊列號,根據(jù)取出的隊列號對隊列緩存單元202中對應的包描述符進行出隊操作,并通知存儲單元203更新進行出隊操作的隊列的隊列狀態(tài)。
本實施例中的隊列號入隊緩存單元205為FIFO(First In First Out,先入先出緩存)單元。
進一步地,上述裝置還包括
隊列號出隊緩存單元,用于緩存存儲單元203中隊列的剩余信用值為正值,且隊列深度不為0的隊列號;相應地,出隊管理單元207還包括第三出隊管理子單元,用于在調度器206空閑期間,且隊列號入隊緩存單元205為空時,從隊列號出隊緩存單元中取出隊列號,根據(jù)取出的隊列號對隊列緩存單元202中對應的包描述符進行出隊操作,并通知存儲單元203更新進行出隊操作的隊列的隊列狀態(tài)。
本實施例中的隊列號出隊緩存單元為FIFO單元。
上述出隊條件可以為現(xiàn)有技術中的出隊條件,即收到調度器206出隊請求后,從隊列信息表中讀出請求中的隊列號對應的隊列的剩余信用值,再加上當前這一次的調度請求代表的256字節(jié)。如果結果大于等于0,表示隊列中對應的數(shù)據(jù)包可以出隊,出隊管理單元207從隊列緩存單元202中讀出該隊列的包描述符,進行出隊操作。如果結果小于0,則對應的數(shù)據(jù)包不能出隊,只將該隊列的剩余信用值加上256后的結果寫回隊列信息表。
上述隊列號入隊緩存單元和隊列號出隊緩存單元可以合成在一個隊列號緩存中,該隊列號緩存執(zhí)行先進先出策略。
本實施例在隊列號入隊緩存單元中緩存低流量業(yè)務的隊列號,當調度器空閑時,對隊列號入隊緩存單元中的隊列號對應的隊列進行出隊操作,實現(xiàn)了在小流量時保持高優(yōu)先級的低延時,提高了低流量業(yè)務的服務質量;同上,在進行出隊操作后,緩存剩余信用值為正值的隊列號,防止由于剩余信用值累加溢出導致的帶寬損失。
實施例2本發(fā)明實施例提供了一種報文入隊和出隊調度的方法,過程如下收到報文后,將報文的包描述符放入隊列緩存的對應隊列,并更新對應隊列的隊列狀態(tài),其中,隊列狀態(tài)包括隊列深度和隊列的剩余信用值;判斷上述對應隊列的隊列狀態(tài)是否滿足隊列的剩余信用值大于一個負的閾值,且隊列深度小于預設值的條件,如果是,將對應的隊列號寫入隊列號入隊緩存中;調度器空閑時,根據(jù)隊列號入隊緩存中的隊列號對隊列緩存中對應的包描述符進行出隊操作;出隊操作后,更新進行出隊的隊列的隊列狀態(tài)。
上述方法包括報文入隊調度和出隊調度,參見圖3,收到報文后的入隊調度處理過程如下步驟301收到報文后,將報文的包描述符放入隊列緩存的對應隊列。
步驟302判斷對應的隊列狀態(tài)是否滿足第一預設條件,如果是,執(zhí)行步驟303;否則,執(zhí)行步驟304。
第一預設條件是隊列信息表中該隊列的剩余信用值大于一個負的閾值(閾值可以為預先配置的),且隊列深度很小,例如為0。
步驟303將報文對應隊列的隊列號寫入隊列號入隊緩存中,并更新隊列信息表中對應的隊列狀態(tài)。
步驟304更新隊列信息表中該報文對應隊列的隊列狀態(tài)。該隊列信息表包括隊列深度,隊列中剩余信用值等信息。
包入隊時具體更新隊列狀態(tài)的過程為從隊列信息表中讀出隊列深度,加上當前入隊的包長作為新的隊列深度,再將新的隊列深度寫回隊列信息表中。
參見圖4,報文出隊的調度過程如下步驟401接收調度器發(fā)送的出隊請求后,根據(jù)出隊請求中的隊列號更新隊列信息表中該隊列號對應的剩余信用值。
出隊管理單元每收到一次調度器的請求,將會從隊列信息表中讀出該隊列號的剩余信用值,用剩余信用值加上256后得到新的剩余信用值,將新的剩余信用值寫回隊列信息表中。
步驟402判斷更新后的剩余信用值是否大于0,如果是,執(zhí)行步驟403;否則,執(zhí)行步驟406。
步驟403從隊列緩存中讀出該隊列號對應的包描述符,進行出隊操作,更新隊列信息表中對應的隊列狀態(tài)。
包出隊后,更新隊列信息表中對應的隊列狀態(tài)具體實現(xiàn)為讀出隊列信息表中該隊列的剩余信用值和隊列深度,用讀出的剩余信用值減去包長,并將結果寫回到隊列信息表中,同時將讀出的隊列深度減去包長得到新的隊列深度,將新的隊列深度寫回到隊列信息表中。
步驟404包出隊后,判斷隊列狀態(tài)是否滿足第二預設條件,如果是,執(zhí)行步驟405;否則,執(zhí)行步驟406。
第二預設條件是出隊管理單元往隊列信息表中寫回的該隊列的剩余信用值為正值,且隊列深度不為0。
步驟405;將該隊列號寫入隊列號出隊緩存中,然后執(zhí)行步驟406。
步驟406當調度器空閑時,從隊列號入隊緩存單元或隊列號出隊緩存單元中取出隊列號,根據(jù)該隊列號對隊列緩存中對應的包描述符進行出隊操作。
為了保證小流量時保持高優(yōu)先級的低延時,步驟406中可以優(yōu)先考慮隊列號入隊緩存單元中的隊列號,當隊列號入隊緩存為空時,再考慮隊列號出隊緩存中的隊列號。
上述隊列號入隊緩存和隊列號出隊緩存可以合成為一個隊列號緩存。
調度器為每個隊列分配一定的帶寬,帶寬由輪詢每個隊列的速率決定,每次調度代表256B。
以上實施例通過在入隊時緩存部分隊列號,當調度器空閑時,使緩存的部分隊列號對于的流量先出隊,補償了帶寬,實現(xiàn)了在小流量時保持高優(yōu)先級的低延時,提高了低流量業(yè)務的服務質量。同時,通過在隊列號出隊緩存中緩存部分隊列號,防止了剩余信用值Credit溢出,以防止帶寬損失。
上述方案中的全部或部分步驟可以通過指令控制相應的硬件完成,該指令可以存儲于存儲介質中,存儲介質,如計算機或服務器的硬盤和內存中。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種報文入隊和出隊調度的裝置,其特征在于,所述裝置包括報文接收單元,用于接收報文;隊列緩存單元,用于存放所述報文接收單元接收到的報文的包描述符;存儲單元,用于存儲隊列狀態(tài),并根據(jù)所述報文接收單元接收到的報文或根據(jù)接收的通知更新對應的隊列狀態(tài);隊列狀態(tài)獲取單元,用于在所述存儲單元中獲取所述報文接收單元接收到的報文對應的隊列狀態(tài);隊列號入隊緩存單元,用于緩存所述隊列狀態(tài)獲取單元獲取的隊列狀態(tài)滿足隊列的剩余信用值大于一個負的閾值,且隊列深度小于預設值的隊列號;調度器,用于根據(jù)所述存儲單元中的隊列狀態(tài)發(fā)送出隊請求;出隊管理單元,用于接收所述調度器的出隊請求,根據(jù)所述出隊請求中的隊列號對所述隊列緩存單元中對應的包描述符進行出隊操作;在所述調度器空閑期間,從所述隊列號入隊緩存單元中取出隊列號,根據(jù)所取出的隊列號對所述隊列緩存單元中對應的包描述符進行出隊操作,并通知所述存儲單元更新進行出隊操作的隊列的隊列狀態(tài)。
2.如權利要求1所述的報文入隊和出隊調度的裝置,其特征在于,所述出隊管理單元包括請求處理子單元,用于接收所述調度器的出隊請求,從所述存儲單元中讀出所述出隊請求中的隊列號對應的隊列狀態(tài),根據(jù)隊列狀態(tài)判斷所述請求中的隊列號對應的隊列是否符合出隊條件;第一出隊管理子單元,用于當所述出隊請求中的隊列號對應的隊列狀態(tài)符合所述請求處理子單元中的出隊條件時,根據(jù)所述出隊請求中的隊列號對所述隊列緩存單元中對應的包描述符進行出隊操作,并通知所述存儲單元更新所述請求中的隊列號對應的隊列的隊列狀態(tài);第二出隊管理子單元,用于在調度器空閑期間,從所述隊列號入隊緩存單元中取出隊列號,根據(jù)所述隊列號對所述隊列緩存單元中對應的包描述符進行出隊操作,并通知所述存儲單元更新進行出隊操作的隊列的隊列狀態(tài)。
3.如權利要求1所述的報文入隊和出隊調度的裝置,其特征在于,所述隊列號入隊緩存單元為先入先出緩存單元。
4.如權利要求1或2或3所述的報文入隊和出隊調度的裝置,其特征在于,所述裝置還包括隊列號出隊緩存單元,用于緩存經(jīng)所述出隊管理單元或所述第二出隊管理單元進行出隊操作后,隊列狀態(tài)滿足剩余信用值為正值,且隊列深度不為0的隊列對應的隊列號;所述出隊管理單元還包括第三出隊管理子單元,用于在所述調度器空閑期間,且所述隊列號入隊緩存單元為空時,從所述隊列號出隊緩存單元中取出隊列號,根據(jù)所取出的隊列號對所述隊列緩存單元中對應的包描述符進行出隊操作,并通知所述存儲單元更新進行出隊操作的隊列的隊列狀態(tài)。
5.如權利要求4所述的報文入隊和出隊調度的裝置,其特征在于,所述隊列號出隊緩存單元為先入先出緩存單元。
6.一種報文入隊和出隊調度的方法,其特征在于,所述方法包括接收報文,將接收到的報文的包描述符放入隊列緩存的對應隊列,并更新所述對應隊列的隊列狀態(tài);判斷所述對應隊列的隊列狀態(tài)是否滿足隊列的剩余信用值大于一個負的閾值,且隊列深度小于預設值的條件,如果是,將對應的隊列號寫入隊列號入隊緩存中;調度器空閑時,根據(jù)所述隊列號入隊緩存中的隊列號對所述隊列緩存中對應的包描述符進行出隊操作;出隊操作后,更新進行出隊的隊列的隊列狀態(tài)。
7.如權利要求6所述的報文入隊和出隊調度的方法,其特征在于,所述并更新所述對應隊列的隊列狀態(tài)的步驟包括將所述對應隊列的隊列深度加上所述報文的包長得到新的隊列深度,將所述對應隊列的剩余信用值減去所述報文的包長得到新的剩余信用值。
8.如權利要求6所述的報文入隊和出隊調度的方法,其特征在于,所述更新進行出隊的隊列的隊列狀態(tài)的步驟包括將出隊的隊列的隊列深度減去出隊的包長得到新的隊列深度,將出隊的隊列的剩余信用值加上包長得到新的剩余信用值。
9.如權利要求6所述的報文入隊和出隊調度的方法,其特征在于,所述方法還包括收到調度器的出隊請求后,判斷所述請求中的隊列號對應的隊列是否符合出隊條件;如果符合,根據(jù)所述請求中的隊列號對所述隊列緩存中對應的包描述符進行出隊操作,并更新所述請求中的隊列號對應的隊列狀態(tài);如果不符合,更新所述請求中的隊列號對應的隊列的剩余信用值。
10.如權利要求9所述的報文入隊和出隊調度的方法,其特征在于,所述出隊操作后,還包括判斷所述出隊的隊列的隊列狀態(tài)是否滿足隊列的剩余信用值為正值,且隊列深度不為0的條件,如果是,將滿足條件的隊列號寫入隊列號出隊緩存中;調度器空閑時,且所述隊列號入隊緩存為空時,根據(jù)所述隊列號出隊緩存中的隊列號對所述隊列緩存中對應的包描述符進行出隊操作,并更新進行出隊操作的隊列的隊列狀態(tài)。
全文摘要
本發(fā)明公開了一種報文入隊和出隊調度的裝置及方法,屬于通信領域。所述裝置包括報文接收單元、隊列緩存單元、調度器、存儲單元、隊列狀態(tài)獲取單元、出隊管理單元和隊列號入隊緩存單元。所述方法包括收到報文后,將報文的包描述符放入隊列緩存的對應隊列,并更新對應隊列的隊列狀態(tài);判斷是否需要緩存該隊列對應的隊列號,如果是,將對應的隊列號寫入隊列號入隊緩存中;調度器空閑時,對隊列號入隊緩存中的隊列號對應的包描述符進行出隊操作;出隊操作后,更新進行出隊的隊列的隊列狀態(tài)。本發(fā)明通過緩存部分隊列號,調度器空閑時,使緩存的隊列號對應的流量先出隊再補償帶寬,實現(xiàn)了在小流量時保持高優(yōu)先級的低延時。
文檔編號H04L12/56GK101094181SQ20071011948
公開日2007年12月26日 申請日期2007年7月25日 優(yōu)先權日2007年7月25日
發(fā)明者施雪峰, 劉月, 靳亮, 陶利春, 李強, 宋莉 申請人:華為技術有限公司