專利名稱:一種隊(duì)列管理方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,特別涉及一種隊(duì)列管理方法、裝置及系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)用戶數(shù)量的持續(xù)增長(zhǎng)和網(wǎng)絡(luò)業(yè)務(wù)的不斷豐富,用戶和運(yùn)營(yíng)商都希望能夠提供區(qū)分用戶和用戶業(yè)務(wù)的服務(wù),以便獲得更好的服務(wù)質(zhì)量和更多的利潤(rùn),于是 HQoS(Hierarchical Quality of krvice,層次化服務(wù)質(zhì)量)應(yīng)運(yùn)而生。HQoS既能為高級(jí)用戶提供精細(xì)化的服務(wù)質(zhì)量保證,又能夠從整體上節(jié)約網(wǎng)絡(luò)運(yùn)行維護(hù)成本,具有很高的市場(chǎng)需求。HQoS是包含了多級(jí)調(diào)度的QoS架構(gòu),依次為高級(jí)用戶提供精細(xì)化的服務(wù)質(zhì)量保證。HQoS中的每級(jí)調(diào)度所對(duì)應(yīng)的隊(duì)列可以為實(shí)體隊(duì)列或虛擬隊(duì)列。實(shí)體隊(duì)列存在實(shí)際的隊(duì)列緩存模塊,例如RAM (Random Access Memory,隨機(jī)存取存儲(chǔ)器),可以存儲(chǔ)報(bào)文;虛擬隊(duì)列不存在實(shí)際的隊(duì)列緩存單元,不暫存數(shù)據(jù),僅作為層次化調(diào)度的其中一級(jí)隊(duì)列參與輸出調(diào)度。對(duì)于實(shí)體隊(duì)列而言,在進(jìn)行隊(duì)列管理時(shí),報(bào)文都必須先寫入RAM,然后再讀出,即報(bào)文需要對(duì)RAM進(jìn)行至少一寫一讀兩次RAM操作。在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題現(xiàn)有技術(shù)中報(bào)文進(jìn)入某級(jí)調(diào)度對(duì)應(yīng)的實(shí)體隊(duì)列進(jìn)行隊(duì)列管理時(shí),都必須先寫入RAM中進(jìn)行緩存,然后再讀出,即報(bào)文對(duì)RAM進(jìn)行至少兩次操作,使得RAM的功耗大且延時(shí)大。
發(fā)明內(nèi)容
為了降低功耗和延時(shí),本發(fā)明實(shí)施例提供了一種隊(duì)列管理方法、裝置及系統(tǒng)。所述技術(shù)方案如下一種隊(duì)列管理方法,應(yīng)用于實(shí)體隊(duì)列,所述方法包括獲取報(bào)文;判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列,以及判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)是否大于零;如果所述報(bào)文對(duì)應(yīng)的隊(duì)列是空隊(duì)列,且所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)大于零, 則發(fā)送所述報(bào)文;如果所述報(bào)文對(duì)應(yīng)的隊(duì)列非空,或者所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)小于或等于零,則將所述報(bào)文送入所述報(bào)文對(duì)應(yīng)的隊(duì)列進(jìn)行緩存。一種隊(duì)列管理裝置,應(yīng)用于實(shí)體隊(duì)列,包括獲取模塊,用于獲取報(bào)文;判斷模塊,用于判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列,以及判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)是否大于零;報(bào)文發(fā)送模塊,用于當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列是空隊(duì)列,且所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)大于零時(shí),發(fā)送所述報(bào)文;報(bào)文緩存模塊,用于當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列非空,或者所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)小于或等于零時(shí),將所述報(bào)文送入所述報(bào)文對(duì)應(yīng)的隊(duì)列進(jìn)行緩存。一種隊(duì)列管理系統(tǒng),用于實(shí)體隊(duì)列,其特征在于,包括上述隊(duì)列管理裝置和報(bào)文解析模塊;所述報(bào)文解析模塊用于發(fā)送所述報(bào)文至所述隊(duì)列管理裝置。本發(fā)明實(shí)施例提供的技術(shù)方案帶來(lái)的有益效果是本發(fā)明實(shí)施例通過(guò)判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列,且所述隊(duì)列現(xiàn)有的令牌數(shù)大于零時(shí)發(fā)送所述報(bào)文,則不需要將所述報(bào)文寫入實(shí)體隊(duì)列的RAM,也就不涉及讀RAM的操作,相比較現(xiàn)有技術(shù)而言,降低了 RAM的功耗,同時(shí)也降低了延時(shí)。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例1提供的一種隊(duì)列管理方法實(shí)施例的流程圖;圖2是本發(fā)明實(shí)施例2提供的一種隊(duì)列管理方法實(shí)施例的流程圖;圖3是本發(fā)明實(shí)施例3提供的一種隊(duì)列管理方法實(shí)施例的流程圖;圖4是本發(fā)明實(shí)施例4提供的一種隊(duì)列管理裝置實(shí)施例的結(jié)構(gòu)示意圖;圖5是本發(fā)明實(shí)施例5提供的一種隊(duì)列管理裝置實(shí)施例的第一結(jié)構(gòu)示意圖;圖6是本發(fā)明實(shí)施例5提供的一種隊(duì)列管理裝置實(shí)施例的第二結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例5提供的一種隊(duì)列管理裝置實(shí)施例的第三結(jié)構(gòu)示意圖;圖8是本發(fā)明實(shí)施例6提供的一種隊(duì)列管理系統(tǒng)實(shí)施例的第一結(jié)構(gòu)示意圖;圖9是本發(fā)明實(shí)施例6提供的一種隊(duì)列管理系統(tǒng)實(shí)施例的第二結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供一種隊(duì)列管理方法、裝置及系統(tǒng)。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。實(shí)施例1參考圖1,圖1是本發(fā)明實(shí)施例1提供的一種隊(duì)列管理方法實(shí)施例的流程圖。本實(shí)施例應(yīng)用于實(shí)體隊(duì)列,所述隊(duì)列管理方法包括SlOl 獲取報(bào)文。S102 判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列,以及判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)是否大于零,如果所述報(bào)文對(duì)應(yīng)的隊(duì)列是空隊(duì)列,且所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)大于零,則發(fā)送所述報(bào)文。S103:如果所述報(bào)文對(duì)應(yīng)的隊(duì)列非空,或者所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)小于或等于零,則將所述報(bào)文送入所述報(bào)文對(duì)應(yīng)的隊(duì)列進(jìn)行緩存。本實(shí)施例中,當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列為空隊(duì)列,且所述隊(duì)列現(xiàn)有的令牌數(shù)大于零時(shí)直接發(fā)送所述報(bào)文,不需要將所述報(bào)文寫入實(shí)體隊(duì)列的RAM進(jìn)行緩存,也就不涉及讀RAM 的操作,可以直接透?jìng)魉鰣?bào)文,相比較現(xiàn)有技術(shù)而言,降低了 RAM的功耗,同時(shí)也降低了延時(shí)。實(shí)施例2參考圖2,圖2是本發(fā)明實(shí)施例2提供的一種隊(duì)列管理方法實(shí)施例的流程圖。本實(shí)施例應(yīng)用于實(shí)體隊(duì)列,所述隊(duì)列管理方法包括S201 獲取報(bào)文。實(shí)際應(yīng)用中,接收PP (Packet Parse,報(bào)文解析)模塊發(fā)送的報(bào)文,從而獲取了報(bào)文。所述報(bào)文可以為各種應(yīng)用類型的網(wǎng)絡(luò)報(bào)文,如IPdnternet Protocol,互聯(lián)網(wǎng)協(xié)議)報(bào)文、Eth(Ethernet,以太網(wǎng))報(bào)文和PPP(Point-to-Point Protocol,點(diǎn)到點(diǎn)協(xié)議)報(bào)文等。接收所述PP模塊發(fā)送的報(bào)文的同時(shí),還接收所述PP模塊發(fā)送的所述報(bào)文的隊(duì)列號(hào)。所述PP模塊獲取所述報(bào)文的隊(duì)列號(hào)的方法具體如下以IP報(bào)文為例,所述PP模塊接收入口側(cè)的IP報(bào)文,對(duì)所述IP報(bào)文的報(bào)文頭進(jìn)行解析,獲取所述報(bào)文的源IP和目的 IP,還可以獲取所述報(bào)文的報(bào)文長(zhǎng)度,根據(jù)所述源IP和目的IP,查找流分類表獲取所述報(bào)文對(duì)應(yīng)的隊(duì)列號(hào)。PP模塊獲取報(bào)文的隊(duì)列號(hào)的方法并不局限于此,此部分為現(xiàn)有技術(shù),在此不再贅述。S202 判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列,以及判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的
令牌數(shù)是否大于零。實(shí)際應(yīng)用中,所述報(bào)文對(duì)應(yīng)的隊(duì)列即為所述報(bào)文的隊(duì)列號(hào)對(duì)應(yīng)的隊(duì)列。判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列,可以通過(guò)以下方式中的任一種實(shí)現(xiàn),包括1)判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的隊(duì)列長(zhǎng)度是否為零;2)判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的頭指針和尾指針是否相等。判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列的方法并不局限于上述兩種方法,對(duì)于本領(lǐng)域的技術(shù)人員而言,只要能判斷隊(duì)列是否為空隊(duì)列的方法都在本發(fā)明的保護(hù)范圍之內(nèi), 在此不再進(jìn)行過(guò)多描述。S203:當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列是空隊(duì)列,且所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)大于零時(shí),發(fā)送所述報(bào)文。所述報(bào)文對(duì)應(yīng)的隊(duì)列為空,表示此隊(duì)列不擁塞。根據(jù)所述隊(duì)列號(hào)索引出所述隊(duì)列的令牌(credit)數(shù),所述隊(duì)列的令牌數(shù)為所述隊(duì)列現(xiàn)有的credit數(shù),判斷所述現(xiàn)有的credit數(shù)是否大于零,如果是,即所述現(xiàn)有的 credit數(shù)大于零,表示此隊(duì)列可以發(fā)送報(bào)文;當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列為空隊(duì)列,且所述隊(duì)列現(xiàn)有的令牌數(shù)大于零時(shí),則經(jīng)輸出端口直接透?jìng)魉鰣?bào)文至下級(jí)模塊,同時(shí)從所述現(xiàn)有的credit數(shù)中減去所述報(bào)文的報(bào)文長(zhǎng)度對(duì)應(yīng)的credit數(shù),其中所述下級(jí)模塊可以是下一級(jí)發(fā)送接口模塊,但并不局限于此。S204:當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列非空,或者所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)小于或等于零時(shí),將所述報(bào)文送入所述報(bào)文對(duì)應(yīng)的隊(duì)列進(jìn)行緩存。實(shí)際應(yīng)用中,當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列非空,或者所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)小于或等于零,將所述報(bào)文送入所述報(bào)文對(duì)應(yīng)的隊(duì)列進(jìn)行緩存的處理流程以及緩存后的處理流程均與現(xiàn)有技術(shù)類似,在此不再贅述。
所述隊(duì)列管理方法還包括當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列為空隊(duì)列,且所述隊(duì)列現(xiàn)有的令牌數(shù)小于等于零時(shí),將所述報(bào)文送入所述報(bào)文對(duì)應(yīng)的隊(duì)列進(jìn)行緩存;如果所述現(xiàn)有的credit數(shù)小于等于零,表示此隊(duì)列現(xiàn)在還不能發(fā)送報(bào)文;于是將所述報(bào)文送入所述隊(duì)列進(jìn)行緩存。發(fā)送所述隊(duì)列的隊(duì)列長(zhǎng)度和所述隊(duì)列的credit數(shù)至SC(schedule Controller, 調(diào)度控制器),其中,本實(shí)施例中所述隊(duì)列的隊(duì)列長(zhǎng)度為所述報(bào)文的報(bào)文長(zhǎng)度,可以通過(guò)接收PP模塊發(fā)送的報(bào)文長(zhǎng)度來(lái)獲??;SC根據(jù)所述隊(duì)列的隊(duì)列長(zhǎng)度和所述隊(duì)列的credit數(shù)之間的對(duì)應(yīng)關(guān)系,生成預(yù)定數(shù)目的credit,其中,所述預(yù)定數(shù)目的下限為所述現(xiàn)有的credit 數(shù)的絕對(duì)值+1 ;接收所述SC發(fā)送的預(yù)定數(shù)目的令牌,將所述預(yù)定數(shù)目的令牌與所述隊(duì)列的 credit數(shù)執(zhí)行相加運(yùn)算,生成運(yùn)算結(jié)果,其中,所述預(yù)定數(shù)目的令牌的設(shè)置使得所述運(yùn)算結(jié)果大于零;將所述運(yùn)算結(jié)果設(shè)置為最新的隊(duì)列的credit數(shù),此時(shí)所述隊(duì)列的credit數(shù)大于零,表示此隊(duì)列可以發(fā)送報(bào)文了,則發(fā)送所述報(bào)文至下級(jí)模塊,同時(shí)從所述隊(duì)列的credit 數(shù)中減去所述報(bào)文的報(bào)文長(zhǎng)度對(duì)應(yīng)的credit數(shù)。將所述報(bào)文送入所述隊(duì)列進(jìn)行緩存后的處理流程與現(xiàn)有技術(shù)類似,在此不做贅述。其中,本實(shí)施例中的SC是基于令牌(credit_base)設(shè)計(jì)的調(diào)度器。其中,credit數(shù)與字節(jié)數(shù)具有預(yù)設(shè)的對(duì)應(yīng)的關(guān)系,1個(gè)credit可以對(duì)應(yīng)1個(gè)字節(jié), 1個(gè)credit可以對(duì)應(yīng)10個(gè)字節(jié),具體地,可以由網(wǎng)絡(luò)管理人員對(duì)credit數(shù)與字節(jié)數(shù)的對(duì)應(yīng)關(guān)系進(jìn)行預(yù)設(shè)。本實(shí)施例中,所述預(yù)定數(shù)目的credit也可以為恰能發(fā)送所述報(bào)文的credit數(shù)。本實(shí)施例中,當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列是空隊(duì)列,且所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)大于零時(shí),直接透?jìng)魉鰣?bào)文;但是此時(shí)有可能與現(xiàn)有技術(shù)中入隊(duì)緩存的報(bào)文出隊(duì)相沖突, 于是本實(shí)施例可以對(duì)直接透?jìng)鞯膱?bào)文和入隊(duì)緩存的出隊(duì)報(bào)文采用預(yù)定調(diào)度來(lái)解決相沖突的問(wèn)題。本實(shí)施例中,當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列為空隊(duì)列,且所述隊(duì)列的令牌數(shù)大于零時(shí)直接透?jìng)魉鰣?bào)文,不需要將所述報(bào)文寫入實(shí)體隊(duì)列的RAM,也就不涉及讀RAM的操作,相比較現(xiàn)有技術(shù)而言,降低了 RAM的功耗,同時(shí)也降低了延時(shí)。實(shí)施例3參考圖3,圖3是本發(fā)明實(shí)施例3提供的一種隊(duì)列管理方法實(shí)施例的流程圖。本實(shí)施例應(yīng)用于實(shí)體隊(duì)列,所述隊(duì)列管理方法包括S301 獲取報(bào)文和所述報(bào)文的隊(duì)列號(hào)。實(shí)際應(yīng)用中,接收PP模塊發(fā)送的報(bào)文和所述報(bào)文的隊(duì)列號(hào),從而獲取了報(bào)文和所述報(bào)文的隊(duì)列號(hào)。所述報(bào)文可以為各種應(yīng)用類型的網(wǎng)絡(luò)報(bào)文,如IPanternet Protocol,互聯(lián)網(wǎng)協(xié)議)報(bào)文、Eth(Ethernet,以太網(wǎng))報(bào)文和PPP(Point-to-Point Protocol,點(diǎn)到點(diǎn)協(xié)議)報(bào)文等。具體地,以IP報(bào)文為例,所述PP模塊接收入口側(cè)的IP報(bào)文,對(duì)所述IP報(bào)文的報(bào)文頭進(jìn)行解析,獲取所述報(bào)文的源IP和目的IP,還可以獲取所述報(bào)文的報(bào)文長(zhǎng)度,根據(jù)所述源IP和目的IP,查找流分類表獲取所述報(bào)文對(duì)應(yīng)的隊(duì)列號(hào)。PP模塊獲取報(bào)文的隊(duì)列號(hào)的方法并不局限于此,此部分為現(xiàn)有技術(shù),在此不再贅述。
7
S302 判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列,如果是,執(zhí)行S303,如果否,執(zhí)行 S304。實(shí)際應(yīng)用中,所述報(bào)文對(duì)應(yīng)的隊(duì)列即為所述報(bào)文的隊(duì)列號(hào)對(duì)應(yīng)的隊(duì)列。判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列,可以通過(guò)以下方式中的任一種實(shí)現(xiàn),包括1)判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的隊(duì)列長(zhǎng)度是否為零;2)判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的頭指針和尾指針是否相等。判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列的方法并不局限于上述兩種方法,對(duì)于本領(lǐng)域的技術(shù)人員而言,只要能判斷隊(duì)列是否為空隊(duì)列的方法都在本發(fā)明的保護(hù)范圍之內(nèi), 在此不再進(jìn)行過(guò)多描述。S303 判斷所述隊(duì)列現(xiàn)有的令牌數(shù)是否大于零,如果是,發(fā)送所述報(bào)文,結(jié)束。當(dāng)所述隊(duì)列號(hào)對(duì)應(yīng)的隊(duì)列為空時(shí),表示此隊(duì)列不擁塞。根據(jù)所述隊(duì)列號(hào)索引出所述隊(duì)列現(xiàn)有的令牌(credit)數(shù),判斷所述現(xiàn)有的 credit數(shù)是否大于零,如果是,即所述現(xiàn)有的credit數(shù)大于零,表示此隊(duì)列可以發(fā)送報(bào)文, 則直接透?jìng)魉鰣?bào)文至下級(jí)模塊,同時(shí)從所述現(xiàn)有的credit數(shù)中減去所述報(bào)文的報(bào)文長(zhǎng)度對(duì)應(yīng)的credit數(shù)。如果所述隊(duì)列現(xiàn)有的令牌數(shù)不大于零,即所述現(xiàn)有的credit數(shù)小于等于零,表示此隊(duì)列現(xiàn)在還不能發(fā)送報(bào)文,將所述報(bào)文送入所述隊(duì)列進(jìn)行緩存;發(fā)送所述隊(duì)列的隊(duì)列長(zhǎng)度和所述現(xiàn)有的credit數(shù)至SC(schedule Controller,調(diào)度控制器),其中,本實(shí)施例中所述隊(duì)列的隊(duì)列長(zhǎng)度為所述報(bào)文的報(bào)文長(zhǎng)度,可以通過(guò)接收PP模塊發(fā)送的報(bào)文長(zhǎng)度來(lái)獲??;SC根據(jù)所述隊(duì)列的隊(duì)列長(zhǎng)度和所述現(xiàn)有的credit數(shù)之間的對(duì)應(yīng)關(guān)系,生成預(yù)定數(shù)目的 credit,其中,所述預(yù)定數(shù)目的下限為所述現(xiàn)有的credit數(shù)的絕對(duì)值+1 ;接收所述SC發(fā)送的預(yù)定數(shù)目的令牌,將所述預(yù)定數(shù)目的令牌與所述現(xiàn)有的credit數(shù)執(zhí)行相加運(yùn)算,生成運(yùn)算結(jié)果,則所述運(yùn)算結(jié)果大于零;將所述運(yùn)算結(jié)果設(shè)置為最新的現(xiàn)有的credit數(shù),此時(shí)所述現(xiàn)有的credit數(shù)大于零,表示此隊(duì)列可以發(fā)送報(bào)文了,則發(fā)送所述報(bào)文至下級(jí)模塊,同時(shí)從所述現(xiàn)有的credit數(shù)中減去所述報(bào)文的報(bào)文長(zhǎng)度對(duì)應(yīng)的credit數(shù)。將所述報(bào)文送入所述隊(duì)列進(jìn)行緩存后的處理流程與現(xiàn)有技術(shù)類似,在此不做贅述。其中,本實(shí)施例中的SC是基于令牌(credit_base)設(shè)計(jì)的調(diào)度器。其中,credit與字節(jié)具有預(yù)設(shè)的對(duì)應(yīng)的關(guān)系,1個(gè)credit可以對(duì)應(yīng)1個(gè)字節(jié),1個(gè) credit可以對(duì)應(yīng)10個(gè)字節(jié),具體地,可以由網(wǎng)絡(luò)管理人員對(duì)credit與字節(jié)的對(duì)應(yīng)關(guān)系進(jìn)行預(yù)設(shè)。本實(shí)施例中,優(yōu)選的所述預(yù)定數(shù)目的credit可以為恰能發(fā)送所述報(bào)文的credit 數(shù),具體地,假設(shè)1個(gè)credit對(duì)應(yīng)m個(gè)字節(jié),所述報(bào)文的報(bào)文長(zhǎng)度為n,所述預(yù)定數(shù)目為[n/ m]+l,其中[]表示取整運(yùn)算。S304:根據(jù)所述隊(duì)列號(hào)將所述報(bào)文寫入隊(duì)列緩存模塊,通知調(diào)度控制器更新所述隊(duì)列狀態(tài);接收所述調(diào)度控制器發(fā)送的調(diào)度結(jié)果,根據(jù)所述調(diào)度結(jié)果向隊(duì)列緩存模塊讀取所述報(bào)文;接收所述隊(duì)列緩存模塊發(fā)送的報(bào)文,發(fā)送所述報(bào)文至下級(jí)模塊。實(shí)際應(yīng)用中,當(dāng)所述隊(duì)列號(hào)對(duì)應(yīng)的隊(duì)列不是空隊(duì)列時(shí),即所述隊(duì)列擁塞,所述報(bào)文需要進(jìn)行排隊(duì)才能發(fā)送。根據(jù)所述隊(duì)列號(hào)將所述報(bào)文先寫入QB (Queue Buffer,隊(duì)列緩存) 模塊,同時(shí)將所述隊(duì)列的隊(duì)列長(zhǎng)度和所述隊(duì)列現(xiàn)有的credit數(shù)發(fā)送至SC,通知SC更新所述隊(duì)列的隊(duì)列狀態(tài),其中所述QB模塊為RAM ;所述SC根據(jù)所述隊(duì)列長(zhǎng)度和現(xiàn)有的credit數(shù), 生成調(diào)度結(jié)果,所述調(diào)度結(jié)果為credit數(shù)。接收所述SC發(fā)送的credit數(shù),根據(jù)所述credit 數(shù)向RAM發(fā)起讀取報(bào)文的操作,讀取所述報(bào)文。接收所述RAM發(fā)送的報(bào)文,發(fā)送所述報(bào)文至下級(jí)模塊。此部分與現(xiàn)有技術(shù)類似,在此不再贅述。本實(shí)施例中,當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列為空隊(duì)列,且所述隊(duì)列現(xiàn)有的令牌數(shù)大于零時(shí)直接透?jìng)魉鰣?bào)文,不需要將所述報(bào)文寫入實(shí)體隊(duì)列的RAM,也就不涉及讀RAM的操作, 相比較現(xiàn)有技術(shù)而言,降低了 RAM的功耗,同時(shí)也降低了延時(shí)。實(shí)施例4參考圖4,圖4是本發(fā)明實(shí)施例4提供的一種隊(duì)列管理裝置實(shí)施例的結(jié)構(gòu)示意圖。 本實(shí)施例應(yīng)用于實(shí)體隊(duì)列,所述隊(duì)列管理裝置包括獲取模塊401,用于獲取報(bào)文。判斷模塊402,用于判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列,以及判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)是否大于零。報(bào)文發(fā)送模塊403,用于當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列是空隊(duì)列,且所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)大于零時(shí)時(shí),發(fā)送所述報(bào)文。報(bào)文緩存模塊404,用于當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列非空,或者所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)小于或等于零時(shí),將所述報(bào)文送入所述報(bào)文對(duì)應(yīng)的隊(duì)列進(jìn)行緩存。本實(shí)施例中,當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列為空隊(duì)列,且所述隊(duì)列的令牌數(shù)是否大于零時(shí)直接透?jìng)魉鰣?bào)文,不需要將所述報(bào)文寫入實(shí)體隊(duì)列的RAM,也就不涉及讀RAM的操作, 相比較現(xiàn)有技術(shù)而言,降低了 RAM的功耗,同時(shí)也降低了延時(shí)。實(shí)施例5參考圖5,圖5是本發(fā)明實(shí)施例5提供的一種隊(duì)列管理裝置實(shí)施例的第一結(jié)構(gòu)示意圖。本實(shí)施例應(yīng)用于實(shí)體隊(duì)列,所述隊(duì)列管理裝置包括獲取模塊401、判斷模塊402、報(bào)文發(fā)送模塊403和報(bào)文緩存模塊404 ;所述獲取模塊401、報(bào)文發(fā)送模塊403和報(bào)文緩存模塊 404與實(shí)施例4中所述獲取模塊401、報(bào)文發(fā)送模塊403和報(bào)文緩存模塊404類似,在此不再贅述,詳見實(shí)施例4中相關(guān)描述。所述判斷模塊402包括空隊(duì)列判斷子模塊4021,用于判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列。令牌判斷子模塊4022,用于判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)是否大于零。所述空隊(duì)列判斷子模塊4021包括第一判斷單元4021a,如圖6所示,其中圖6是本發(fā)明實(shí)施例5提供的一種隊(duì)列管理裝置實(shí)施例的第二結(jié)構(gòu)示意圖。所述第一判斷單元4021a,用于判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的隊(duì)列長(zhǎng)度是否為零?;蛘撸隹贞?duì)列判斷子模塊4021包括第二判斷單元4021b,如圖7所示,其中圖 7是本發(fā)明實(shí)施例5提供的一種隊(duì)列管理裝置實(shí)施例的第三結(jié)構(gòu)示意圖。所述第二判斷單元4021b,用于判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的頭指針和尾指針是否相等。所述隊(duì)列管理裝置進(jìn)一步包括入隊(duì)緩存模塊,用于當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列為空隊(duì)列,且所述隊(duì)列的令牌數(shù)小于等于零時(shí),將所述報(bào)文送入所述報(bào)文對(duì)應(yīng)的隊(duì)列進(jìn)行緩存;
第一發(fā)送模塊,用于發(fā)送所述隊(duì)列的隊(duì)列長(zhǎng)度和所述隊(duì)列令牌數(shù)目至調(diào)度控制器。
接收模塊,用于接收所述調(diào)度控制器發(fā)送的預(yù)定數(shù)目的令牌。計(jì)算模塊,用于將所述隊(duì)列的令牌數(shù)和所述預(yù)定數(shù)目的令牌進(jìn)行相加運(yùn)算,生成運(yùn)算結(jié)果,所述預(yù)定數(shù)目的令牌的設(shè)置使得所述運(yùn)算結(jié)果大于零。設(shè)置模塊,用于將所述運(yùn)算結(jié)果作為所述隊(duì)列的令牌數(shù)。第二發(fā)送模塊,用于發(fā)送所述報(bào)文。本實(shí)施例中,當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列是空隊(duì)列,且所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)大于零時(shí),直接經(jīng)隊(duì)列管理裝置的輸出端口透?jìng)魉鰣?bào)文;但是此時(shí)有可能現(xiàn)有技術(shù)中入隊(duì)緩存的報(bào)文也需經(jīng)隊(duì)列管理裝置的輸出端口出隊(duì),輸出端口只有一個(gè),于是便會(huì)存在沖突;于是本實(shí)施例可以對(duì)直接透?jìng)鞯膱?bào)文和入隊(duì)緩存的出隊(duì)報(bào)文采用預(yù)定調(diào)度來(lái)解決相沖突的問(wèn)題。所述預(yù)定調(diào)度的具體實(shí)現(xiàn)方法與現(xiàn)有技術(shù)類似,在此不再贅述。本實(shí)施例中,當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列為空隊(duì)列,且所述隊(duì)列的令牌數(shù)大于零時(shí)直接透?jìng)魉鰣?bào)文,不需要將所述報(bào)文寫入實(shí)體隊(duì)列的RAM,也就不涉及讀RAM的操作,相比較現(xiàn)有技術(shù)而言,降低了 RAM的功耗,同時(shí)也降低了延時(shí)。實(shí)施例6參考圖8,圖8是本發(fā)明實(shí)施例6提供的一種隊(duì)列管理系統(tǒng)實(shí)施例的第一結(jié)構(gòu)示意圖。本實(shí)施例應(yīng)用于實(shí)體隊(duì)列,所述隊(duì)列管理系統(tǒng)包括報(bào)文解析模塊801和隊(duì)列管理裝置 802。所述隊(duì)列管理裝置802與實(shí)施例5中所述隊(duì)列管理裝置類似,在此不再贅述,具體可參見實(shí)施例5的描述。所述報(bào)文解析模塊801,用于發(fā)送所述報(bào)文至所述隊(duì)列管理裝置802。所述報(bào)文解析模塊801還用于對(duì)報(bào)文進(jìn)行解析,獲取報(bào)文的隊(duì)列號(hào),發(fā)送所述報(bào)文的隊(duì)列號(hào)至所述隊(duì)列管理裝置802。所述隊(duì)列管理系統(tǒng)進(jìn)一步包括調(diào)度控制器803,如圖9所示,圖9是本發(fā)明實(shí)施例6提供的一種隊(duì)列管理系統(tǒng)實(shí)施例的第二結(jié)構(gòu)示意圖。所述調(diào)度控制器803,用于根據(jù)所述隊(duì)列管理裝802發(fā)送的所述隊(duì)列的隊(duì)列長(zhǎng)度和所述隊(duì)列的令牌數(shù)目,發(fā)送預(yù)訂數(shù)目的令牌至所述隊(duì)列管理裝置802。本實(shí)施例中,隊(duì)列管理裝置當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列為空隊(duì)列,且所述隊(duì)列現(xiàn)有的令牌數(shù)大于零時(shí)直接透?jìng)魉鰣?bào)文,不需要將所述報(bào)文寫入實(shí)體隊(duì)列的RAM,也就不涉及讀 RAM的操作,相比較現(xiàn)有技術(shù)而言,降低了 RAM的功耗,同時(shí)也降低了延時(shí)。需要說(shuō)明的是,本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。 對(duì)于裝置類實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說(shuō)明即可。需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器、磁盤或光盤等。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種隊(duì)列管理方法,應(yīng)用于實(shí)體隊(duì)列,其特征在于,所述方法包括 獲取報(bào)文;判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列,以及判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)是否大于零;如果所述報(bào)文對(duì)應(yīng)的隊(duì)列是空隊(duì)列,且所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)大于零,則發(fā)送所述報(bào)文;如果所述報(bào)文對(duì)應(yīng)的隊(duì)列非空,或者所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)小于或等于零,則將所述報(bào)文送入所述報(bào)文對(duì)應(yīng)的隊(duì)列進(jìn)行緩存。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列包括判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的隊(duì)列長(zhǎng)度是否為零。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列包括判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的頭指針和尾指針是否相等。
4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的方法,其特征在于,當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列為空隊(duì)列,且所述隊(duì)列的令牌數(shù)小于等于零時(shí),將所述報(bào)文送入所述報(bào)文對(duì)應(yīng)的隊(duì)列進(jìn)行緩存;發(fā)送所述隊(duì)列的隊(duì)列長(zhǎng)度和所述隊(duì)列的令牌數(shù)至調(diào)度控制器; 接收所述調(diào)度控制器發(fā)送的預(yù)定數(shù)目的令牌;將所述隊(duì)列的令牌數(shù)和所述預(yù)定數(shù)目的令牌進(jìn)行相加運(yùn)算,生成運(yùn)算結(jié)果,所述預(yù)定數(shù)目的令牌的設(shè)置使得所述運(yùn)算結(jié)果大于零; 將所述運(yùn)算結(jié)果設(shè)置為所述隊(duì)列的令牌數(shù); 發(fā)送所述報(bào)文。
5.一種隊(duì)列管理裝置,應(yīng)用于實(shí)體隊(duì)列,其特征在于,包括 獲取模塊,用于獲取報(bào)文;判斷模塊,用于判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列,以及判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)是否大于零;報(bào)文發(fā)送模塊,用于當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列是空隊(duì)列,且所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)大于零時(shí),發(fā)送所述報(bào)文;報(bào)文緩存模塊,用于當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列非空,或者所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)小于或等于零時(shí),將所述報(bào)文送入所述報(bào)文對(duì)應(yīng)的隊(duì)列進(jìn)行緩存。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述判斷模塊包括 空隊(duì)列判斷子模塊,用于判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列;令牌判斷子模塊,用于判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)是否大于零。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述空隊(duì)列判斷子模塊包括 第一判斷單元,用于判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的隊(duì)列長(zhǎng)度是否為零;或者, 第二判斷單元,用于判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的頭指針和尾指針是否相等。
8.根據(jù)權(quán)利要求5-7任一項(xiàng)所述的裝置,其特征在于,進(jìn)一步包括入隊(duì)緩存模塊,用于當(dāng)所述報(bào)文對(duì)應(yīng)的隊(duì)列為空隊(duì)列,且所述隊(duì)列的令牌數(shù)小于等于零時(shí),將所述報(bào)文送入所述報(bào)文對(duì)應(yīng)的隊(duì)列進(jìn)行緩存;第一發(fā)送模塊,用于發(fā)送所述隊(duì)列的隊(duì)列長(zhǎng)度和所述隊(duì)列的令牌數(shù)目至調(diào)度控制器;接收模塊,用于接收所述調(diào)度控制器發(fā)送的預(yù)定數(shù)目的令牌; 計(jì)算模塊,用于將所述隊(duì)列的令牌數(shù)和所述預(yù)定數(shù)目的令牌進(jìn)行相加運(yùn)算,生成運(yùn)算結(jié)果,所述預(yù)定數(shù)目的令牌的設(shè)置使得所述運(yùn)算結(jié)果大于零; 設(shè)置模塊,用于將所述運(yùn)算結(jié)果設(shè)置為所述隊(duì)列的令牌數(shù); 第二發(fā)送模塊,用于發(fā)送所述報(bào)文。
9.一種隊(duì)列管理系統(tǒng),用于實(shí)體隊(duì)列,其特征在于,包括如上述5-8任一項(xiàng)所述的隊(duì)列管理裝置和報(bào)文解析模塊;所述報(bào)文解析模塊用于發(fā)送所述報(bào)文至所述隊(duì)列管理裝置。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,進(jìn)一步包括調(diào)度控制器,用于根據(jù)所述隊(duì)列管理裝置發(fā)送的所述隊(duì)列的隊(duì)列長(zhǎng)度和所述隊(duì)列的令牌數(shù)目,發(fā)送預(yù)訂數(shù)目的令牌至所述隊(duì)列管理裝置。
全文摘要
本發(fā)明公開了一種隊(duì)列管理方法、裝置及系統(tǒng),屬于通信領(lǐng)域。所述隊(duì)列管理方法應(yīng)用于實(shí)體隊(duì)列,包括獲取報(bào)文;判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列是否為空隊(duì)列,以及判斷所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)是否大于零;如果所述報(bào)文對(duì)應(yīng)的隊(duì)列是空隊(duì)列,且所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)大于零,則發(fā)送所述報(bào)文;如果所述報(bào)文對(duì)應(yīng)的隊(duì)列非空,或者所述報(bào)文對(duì)應(yīng)的隊(duì)列的令牌數(shù)小于或等于零,則將所述報(bào)文送入所述報(bào)文對(duì)應(yīng)的隊(duì)列進(jìn)行緩存。所述隊(duì)列管理裝置包括獲取模塊、判斷模塊、報(bào)文發(fā)送模塊和報(bào)文緩存模塊。所述隊(duì)列管理系統(tǒng)包括隊(duì)列管理裝置和報(bào)文解析模塊。本發(fā)明實(shí)施例降低了RAM的功耗,同時(shí)也降低了延時(shí)。
文檔編號(hào)H04L12/54GK102308537SQ201180001101
公開日2012年1月4日 申請(qǐng)日期2011年7月19日 優(yōu)先權(quán)日2011年7月19日
發(fā)明者劉宇, 屈仁杰, 杜文華 申請(qǐng)人:華為技術(shù)有限公司