欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多播調(diào)度中緩存權(quán)重的處理方法

文檔序號(hào):7621245閱讀:161來源:國知局
專利名稱:多播調(diào)度中緩存權(quán)重的處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及通訊設(shè)備中的多播技術(shù),具體地說,涉及多播調(diào)度中存儲(chǔ)多播數(shù)據(jù)的緩存(buffer)的權(quán)重處理方法。
背景技術(shù)
在通訊設(shè)備中,多播應(yīng)用非常廣泛,比如二層多播的數(shù)字用戶線接入復(fù)用器(DSLAM)、三層多播的邊緣服務(wù)路由器(ESR),通常多播處理的示意圖如圖1所示。
報(bào)文的多播過程為報(bào)文輸入時(shí),先緩存在輸入緩存中;向空閑緩存管理單元(FBM)申請(qǐng)包緩存隨機(jī)存取存儲(chǔ)器(RAM)的緩存,然后將輸入緩存的報(bào)文數(shù)據(jù)存入所申請(qǐng)的包緩存RAM緩存中,并將報(bào)文信息寫入幀控制塊(FCB),送至多播復(fù)制單元;多播復(fù)制單元復(fù)制多份FCB送到接入速率限制(CAR)和隊(duì)列調(diào)度(QM)單元,CAR針對(duì)端口或者用戶以及優(yōu)先級(jí)來設(shè)置帶寬門限,超過帶寬限制的FCB將被丟棄,QM通常針對(duì)端口以及優(yōu)先級(jí)把FCB分為多個(gè)隊(duì)列進(jìn)行調(diào)度,保證高優(yōu)先級(jí)的FCB優(yōu)先輸出,隊(duì)列擁塞時(shí)低優(yōu)先級(jí)的FCB先被丟棄;封裝輸出單元根據(jù)FCB信息從包緩存RAM中找到相應(yīng)緩存并讀出報(bào)文數(shù)據(jù),針對(duì)用戶的協(xié)議類型,編輯封裝輸出;在封裝輸出單元完成報(bào)文轉(zhuǎn)發(fā)后,F(xiàn)BM單元釋放包緩存RAM中存儲(chǔ)該報(bào)文的緩存。
如圖2所示,實(shí)際應(yīng)用中,F(xiàn)CB可由多播復(fù)制單元復(fù)制到n個(gè)輸出端口,并且每個(gè)端口可復(fù)制到多個(gè)用戶FCB*x1,F(xiàn)CB*x2,...,F(xiàn)CB*xn,經(jīng)過CAR和QM單元,每個(gè)端口輸出多個(gè)用戶FCB*y1,F(xiàn)CB*y2,...,F(xiàn)CB*yn,其余的被丟棄,其中xi代表第i個(gè)端口復(fù)制的用戶數(shù)、yi代表第i個(gè)端口經(jīng)過CAR和QM單元處理后剩余的用戶數(shù)。為了簡(jiǎn)化描述,在圖2和以后的表述中,所有端口的x和y被認(rèn)為是相同的。
為了保證報(bào)文內(nèi)容一致,必須等從同一buffr讀取的最后一份報(bào)文輸出后才回收該buffr。為此FBM單元采用權(quán)重(weight)方式回收buffer累加從同一個(gè)buffr讀取的報(bào)文的權(quán)重并將累加的值作為該buffer權(quán)重,只有buffer權(quán)重達(dá)到最大值才進(jìn)行回收。上述的buffer權(quán)重是這樣計(jì)算的根據(jù)“端口數(shù)×每端口復(fù)制最大的用戶數(shù)”確定buffer權(quán)重最大值,即為(n×max_customer),如果共復(fù)制了z份報(bào)文,則這z份報(bào)文的權(quán)重值分別記為1,1,...,1,(n×max_customer-z+1),F(xiàn)BM單元把CAR和QM單元所丟棄的報(bào)文的權(quán)重、封裝輸出單元轉(zhuǎn)發(fā)報(bào)文的權(quán)重累加到對(duì)應(yīng)buffer的權(quán)重,當(dāng)權(quán)重累加到n×max_customer后,釋放該buffer。
現(xiàn)有技術(shù)的緩存權(quán)重的處理需占用大量的存儲(chǔ)資源。例如,假設(shè)輸出端口數(shù)n=4,每個(gè)端口復(fù)制最大客戶數(shù)max_customer=1k,QM隊(duì)列深度=512,F(xiàn)BM單元所管理的包緩存RAM中buffer總數(shù)=4k。則1、權(quán)重最大值為4×1k=4k,因此權(quán)重占用的bit數(shù)12。
2、因?yàn)樗袌?bào)文權(quán)重需要傳到封裝輸出單元以釋放buffer,所以每份復(fù)制報(bào)文的權(quán)重信息都需要入隊(duì),隊(duì)列中權(quán)重占用512×12bit=6k bit。
3、FBM單元維護(hù)buffer的權(quán)重4k×12bit=48k bit。
綜上,共需要54k bit的存儲(chǔ)資源。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種多播調(diào)度中緩存權(quán)重的處理方法,以減少現(xiàn)有技術(shù)多播調(diào)度中緩存權(quán)重處理有關(guān)的數(shù)據(jù)量,節(jié)省存儲(chǔ)資源。
本發(fā)明通過以下技術(shù)方案實(shí)現(xiàn)一種多播調(diào)度中緩存權(quán)重的處理方法,該方法包括,a)根據(jù)輸出端口數(shù)設(shè)定緩存權(quán)重最大值;b)在復(fù)制幀控制塊時(shí),在每份復(fù)制的幀控制塊中設(shè)置用以標(biāo)識(shí)當(dāng)前輸出端口最后一份幀控制塊的最后標(biāo)志;c)幀控制塊復(fù)制完成后,設(shè)置緩存權(quán)重為權(quán)重最大值減去步驟b中參與復(fù)制的端口數(shù);d)根據(jù)最后標(biāo)志,判斷當(dāng)前被轉(zhuǎn)發(fā)的幀控制塊是否為當(dāng)前輸出端口的最后一份幀控制塊,如果是,則執(zhí)行步驟e;否則返回執(zhí)行步驟d;e)將緩存權(quán)重累加1,然后判斷當(dāng)前權(quán)重是否達(dá)到最大值,如果是,則結(jié)束,否則返回執(zhí)行步驟d。
所述步驟d之前進(jìn)一步包括,d1)對(duì)復(fù)制后的幀控制塊進(jìn)行接入速率限制和隊(duì)列調(diào)度處理,在對(duì)幀控制塊進(jìn)行丟棄處理時(shí),判斷該幀控制塊是否為當(dāng)前輸出端口的最后一份幀控制塊,如果是,則執(zhí)行步驟e;否則返回執(zhí)行步驟d1,直至所有幀控制塊的接入速率限制和隊(duì)列調(diào)度處理完畢。
所述步驟b之前進(jìn)一步包括,對(duì)幀控制塊進(jìn)行接入速率限制處理,將丟棄的幀控制塊打上丟棄標(biāo)志,多播復(fù)制時(shí)丟棄具有丟棄標(biāo)志的幀控制塊并釋放緩存。
所述步驟b進(jìn)一步包括,在每份復(fù)制的幀控制塊中還設(shè)置參與復(fù)制的端口的端口權(quán)重,其所需位數(shù)由緩存權(quán)重最大值決定。
所述的端口權(quán)重的設(shè)置方法為設(shè)置前m-1個(gè)參與復(fù)制的端口的端口權(quán)重為1,第m個(gè)參與復(fù)制的端口的端口權(quán)重為緩存權(quán)重最大值-m+1;其中m為參與復(fù)制的端口數(shù);所述步驟c進(jìn)一步包括,根據(jù)所設(shè)置的端口權(quán)重獲取參與復(fù)制的端口數(shù),然后刪除幀控制塊中端口權(quán)重。
所述最后標(biāo)志占用1位數(shù)據(jù)。
步驟d1中所述對(duì)復(fù)制后的幀控制塊進(jìn)行接入速率限制和隊(duì)列調(diào)度處理包括在隊(duì)列中預(yù)留一個(gè)空間,在端口的非最后一份幀控制塊入隊(duì)后,將端口的最后一份幀控制塊存入該預(yù)留空間。
在所述輸出端口處增加多個(gè)內(nèi)部端口時(shí),所述緩存權(quán)重最大值設(shè)置為輸出端口數(shù)與內(nèi)部端口數(shù)之和。
本發(fā)明為多播調(diào)度中buffer權(quán)重的處理方法,假設(shè)參數(shù)如下輸出端口數(shù)n=4,每個(gè)端口復(fù)制最大客戶數(shù)max_customer=1k,QM隊(duì)列深度=512,F(xiàn)BM單元buffer總數(shù)=4k,其積極效果是根據(jù)輸出端口數(shù)設(shè)定緩存權(quán)重最大值,由于權(quán)重最大值等于端口數(shù)4,緩存權(quán)重僅占用2bit,F(xiàn)BM單元維護(hù)buffer的權(quán)重共需4k×2bit=8k bit;在復(fù)制幀控制塊時(shí),在每份復(fù)制的幀控制塊中設(shè)置最后標(biāo)志,最后標(biāo)志占1bit,在入隊(duì)時(shí),幀控制塊中僅有最后標(biāo)志而無權(quán)重,隊(duì)列中占用512×1bit=0.5k bit。綜上,本發(fā)明的多播調(diào)度中buffer權(quán)重的處理方法共需要8.5k bit的存儲(chǔ)資源,而且多播復(fù)制后續(xù)單元不必關(guān)心權(quán)重,簡(jiǎn)化了buffer釋放操作。


圖1為多播的處理流程框圖。
圖2為現(xiàn)有技術(shù)多播buffer釋放示意圖。
圖3為本發(fā)明多播buffer釋放示意圖。
圖4為緩存權(quán)重計(jì)算的流程圖。
圖5為FCB數(shù)據(jù)結(jié)構(gòu)改進(jìn)示意圖。
圖6為多播Last報(bào)文入隊(duì)處理示意圖。
具體實(shí)施例方式
為了減少現(xiàn)有技術(shù)多播調(diào)度中buffer權(quán)重處理有關(guān)的數(shù)據(jù)量,節(jié)省系統(tǒng)存儲(chǔ)資源,考慮到實(shí)際上多播報(bào)文的隊(duì)列調(diào)度只是輸出端口之間的優(yōu)先級(jí)調(diào)度,即不保證各端口之間輸出報(bào)文的順序,但是同一端口的多播報(bào)文的優(yōu)先級(jí)通常是一致的,復(fù)制到同一端口的多播報(bào)文可以保證是順序輸出的。這樣就可以按照輸出端口數(shù)來確定buffer權(quán)重值,只要保證每端口的最后一份復(fù)制報(bào)文輸出(或者丟棄)后再回收buffer即可。
在本發(fā)明中,緩存權(quán)重最大值被設(shè)定為與輸出端口數(shù)相同,參見圖3本發(fā)明多播buffer釋放示意圖。在FCB復(fù)制完成后,設(shè)置復(fù)制緩存報(bào)文的端口的權(quán)重為1,設(shè)置緩存權(quán)重為權(quán)重最大值減去復(fù)制緩存報(bào)文的端口數(shù),這樣在后續(xù)單元中就不需要考慮權(quán)重,權(quán)重也不需要進(jìn)入隊(duì)列,在接入速率限制和隊(duì)列調(diào)度單元丟棄報(bào)文時(shí),累加所有報(bào)文被丟棄的端口的權(quán)重,在封裝輸出單元轉(zhuǎn)發(fā)報(bào)文時(shí),累加所有報(bào)文被轉(zhuǎn)發(fā)的端口的權(quán)重,當(dāng)緩存的權(quán)重累加到最大值后,釋放該緩存。
如圖4所示,以下說明具體步驟步驟1根據(jù)多播復(fù)制單元的輸出端口數(shù),即圖3中多播復(fù)制單元的輸出端口數(shù),確定包緩存RAM中緩存權(quán)重最大值,權(quán)重最大值等于輸出端口數(shù);步驟2多播復(fù)制單元在復(fù)制幀控制塊時(shí),在每份復(fù)制的幀控制塊中設(shè)置端口權(quán)重和最后標(biāo)志,其中端口權(quán)重?cái)?shù)值所需位數(shù)由權(quán)重最大值決定,具體求法是 最后標(biāo)志用以標(biāo)識(shí)輸出端口的最后一份幀控制塊,占用1位數(shù)據(jù),端口的最后一份幀控制塊中的最后標(biāo)志為1,該端口其余幀控制塊中的最后標(biāo)志為0。設(shè)置的端口權(quán)重分別為1,1,...,1,(緩存權(quán)重最大值-參與復(fù)制的端口數(shù)+1),這樣就可根據(jù)端口權(quán)重獲得參與復(fù)制的端口數(shù)。例如,多播復(fù)制單元的輸出端口數(shù)為6,如果參與復(fù)制的端口數(shù)為4,則各FCB的端口權(quán)重為1,1,1,3;這時(shí)FBM根據(jù)端口權(quán)重的規(guī)律可知當(dāng)前參與復(fù)制的端口數(shù)為4。
步驟3在多播復(fù)制單元將FCB復(fù)制完成后,設(shè)置緩存權(quán)重為權(quán)重最大值減去參與復(fù)制的端口數(shù),F(xiàn)CB中的端口權(quán)重都設(shè)為1,由于端口權(quán)重在以后的處理中都為1,因此無需再保留在幀控制塊中,刪除幀控制塊中的端口權(quán)重;步驟4接入速率限制和隊(duì)列管理單元在對(duì)FCB進(jìn)行丟棄處理時(shí),如果如果該幀控制塊中最后標(biāo)志為0,繼續(xù)處理下一個(gè)FCB,如果為1,說明此FCB是其所屬端口的最后一份FCB,該端口的所有FCB已全部處理完畢,這時(shí)把緩存權(quán)重累加1,空閑緩存管理單元判斷當(dāng)前緩存權(quán)重是否達(dá)到最大值,如果是,則釋放該緩存,如果沒有達(dá)到最大值,判斷接入速率限制和隊(duì)列管理單元是否已經(jīng)處理完所有FCB,如果沒有,接入速率限制和隊(duì)列管理單元繼續(xù)處理下一個(gè)FCB,如果已經(jīng)處理完,封裝輸出單元開始轉(zhuǎn)發(fā)報(bào)文;封裝輸出單元在轉(zhuǎn)發(fā)報(bào)文時(shí),如果該幀控制塊中最后標(biāo)志為0,繼續(xù)處理下一個(gè)FCB,如果該幀控制塊中最后標(biāo)志為1,說明該端口的所有報(bào)文在此報(bào)文轉(zhuǎn)發(fā)后已經(jīng)全部被轉(zhuǎn)發(fā),把緩存權(quán)重累加1,空閑緩存管理單元判斷當(dāng)前緩存權(quán)重是否達(dá)到最大值,如果是,則釋放該緩存,如果沒有達(dá)到最大值,封裝輸出單元繼續(xù)處理下一個(gè)FCB。
本發(fā)明幀控制塊中所增加的端口權(quán)重和最后標(biāo)志如圖5所示。例如,假設(shè)輸出端口數(shù)n=4,每個(gè)端口復(fù)制最大客戶數(shù)max_customer=1k,QM隊(duì)列深度=512,F(xiàn)BM單元所維護(hù)的buffer總數(shù)=4k;在現(xiàn)有技術(shù)中,幀控制塊中報(bào)文權(quán)重占用bit數(shù)為12,且這一數(shù)據(jù)在幀控制塊中始終保持不變。本發(fā)明中,多播復(fù)制單元復(fù)制完成前,幀控制塊中端口權(quán)重由其最大值即端口數(shù)4決定,占2bit,最后標(biāo)志占1bit,共占用3bit,而在多播復(fù)制單元復(fù)制完成后,設(shè)置緩存權(quán)重為權(quán)重最大值減去復(fù)制緩存報(bào)文的端口數(shù),復(fù)制緩存報(bào)文的端口的權(quán)重都設(shè)為1,刪除幀控制塊中端口權(quán)重僅保留最后標(biāo)志,此時(shí)FCB中緩存權(quán)重處理所需數(shù)據(jù)僅占1bit。
如圖6所示,在本發(fā)明中,接入速率限制和隊(duì)列管理單元需要進(jìn)行下述處理在隊(duì)列中預(yù)留一個(gè)空間,存放最后標(biāo)志為1的幀控制塊,以確保對(duì)于同一端口的幀控制塊,只要有最后標(biāo)志為0的幀控制塊入隊(duì)了,最后標(biāo)志為1的幀控制塊也入隊(duì),即接入速率限制和隊(duì)列管理單元不能提前丟棄最后標(biāo)志為1的報(bào)文,以免引起先前入隊(duì)的報(bào)文在封裝輸出單元讀緩存出錯(cuò)。
本發(fā)明的多播調(diào)度中緩存權(quán)重的處理方法還適用在輸出端口處增加多個(gè)內(nèi)部端口(比如交CPU)的情況,此時(shí)權(quán)重最大值為端口數(shù)+內(nèi)部端口數(shù),增加的內(nèi)部端口的權(quán)重也設(shè)為1,在轉(zhuǎn)發(fā)給各內(nèi)部端口后,把緩存權(quán)重累加1,其余的過程與步驟4相同。
在上述實(shí)施例中,可不需要帶寬接入限制,也可改變帶寬接入限制、多播處理的順序。例如,先進(jìn)行帶寬接入限制,再進(jìn)行多播復(fù)制,這時(shí),對(duì)于CAR單元丟棄的FCB打上丟棄標(biāo)志,在多播單元直接丟棄并釋放緩存。由于本發(fā)明的緩存權(quán)重只與多播單元復(fù)制時(shí)的輸出端口數(shù)有關(guān),因此無論以何種順序處理,本發(fā)明提供的緩存權(quán)重處理方法均可適用。
權(quán)利要求
1.一種多播調(diào)度中緩存權(quán)重的處理方法,其特征在于,該方法包括以下步驟a)根據(jù)輸出端口數(shù)設(shè)定緩存權(quán)重最大值;b)在復(fù)制幀控制塊時(shí),在每份復(fù)制的幀控制塊中設(shè)置用以標(biāo)識(shí)當(dāng)前輸出端口最后一份幀控制塊的最后標(biāo)志;c)幀控制塊復(fù)制完成后,設(shè)置緩存權(quán)重為權(quán)重最大值減去步驟b中參與復(fù)制的端口數(shù);d)根據(jù)最后標(biāo)志,判斷當(dāng)前被轉(zhuǎn)發(fā)的幀控制塊是否為當(dāng)前輸出端口的最后一份幀控制塊,如果是,則執(zhí)行步驟e;否則返回執(zhí)行步驟d;e)將緩存權(quán)重累加1,然后判斷當(dāng)前權(quán)重是否達(dá)到最大值,如果是,則釋放該緩存,否則返回執(zhí)行步驟d。
2.根據(jù)權(quán)利要求1所述的多播調(diào)度中緩存權(quán)重的處理方法,其特征在于,所述步驟d之前進(jìn)一步包括,d1)對(duì)復(fù)制后的幀控制塊進(jìn)行接入速率限制和隊(duì)列調(diào)度處理,在對(duì)幀控制塊進(jìn)行丟棄處理時(shí),判斷該幀控制塊是否為當(dāng)前輸出端口的最后一份幀控制塊,如果是,則執(zhí)行步驟e;否則返回執(zhí)行步驟d1,直至所有幀控制塊的接入速率限制和隊(duì)列調(diào)度處理完畢。
3.根據(jù)權(quán)利要求1所述的多播調(diào)度中緩存權(quán)重的處理方法,其特征在于,所述步驟b之前進(jìn)一步包括,對(duì)幀控制塊進(jìn)行接入速率限制處理,將丟棄的幀控制塊打上丟棄標(biāo)志,多播復(fù)制時(shí)丟棄具有丟棄標(biāo)志的幀控制塊并釋放緩存。
4.根據(jù)權(quán)利要求1,2或3所述的多播調(diào)度中緩存權(quán)重的處理方法,其特征在于,所述步驟b進(jìn)一步包括,在每份復(fù)制的幀控制塊中還設(shè)置參與復(fù)制的端口的端口權(quán)重,其所需位數(shù)由緩存權(quán)重最大值決定。
5.根據(jù)權(quán)利要求4所述的多播調(diào)度中緩存權(quán)重的處理方法,其特征在于,設(shè)置前m-1個(gè)參與復(fù)制的端口的端口權(quán)重為1,第m個(gè)參與復(fù)制的端口的端口權(quán)重為緩存權(quán)重最大值-m+1;其中m為參與復(fù)制的端口數(shù)。
6.根據(jù)權(quán)利要求1所述的多播調(diào)度中緩存權(quán)重的處理方法,步驟c進(jìn)一步包括,根據(jù)所設(shè)置的端口權(quán)重獲取參與復(fù)制的端口數(shù),然后刪除幀控制塊中端口權(quán)重。
7.根據(jù)權(quán)利要求1所述的多播調(diào)度中緩存權(quán)重的處理方法,其特征在于,所述最后標(biāo)志占用1位數(shù)據(jù)。
8.根據(jù)權(quán)利要求2所述的多播調(diào)度中緩存權(quán)重的處理方法,其特征在于,步驟d1中所述對(duì)復(fù)制后的幀控制塊進(jìn)行接入速率限制和隊(duì)列調(diào)度處理包括在隊(duì)列中預(yù)留一個(gè)空間,在端口的非最后一份幀控制塊入隊(duì)后,將該端口的最后一份幀控制塊存入該預(yù)留空間。
9.根據(jù)權(quán)利要求1所述的多播調(diào)度中緩存權(quán)重的處理方法,其特征在于,在所述輸出端口處增加多個(gè)內(nèi)部端口時(shí),所述緩存權(quán)重最大值設(shè)置為輸出端口數(shù)與內(nèi)部端口數(shù)之和。
全文摘要
本發(fā)明公開了一種多播調(diào)度中緩存權(quán)重的處理方法,該方法的緩存權(quán)重最大值與輸出端口數(shù)相同,在多播復(fù)制單元完成復(fù)制后設(shè)置緩存權(quán)重為權(quán)重最大值減去復(fù)制緩存報(bào)文的端口數(shù),復(fù)制緩存報(bào)文的端口的權(quán)重都設(shè)為1,在接入速率限制(CAR)和隊(duì)列調(diào)度(QM)單元丟棄報(bào)文時(shí)累加所有報(bào)文被丟棄的端口的權(quán)重,在封裝輸出單元轉(zhuǎn)發(fā)報(bào)文時(shí)累加所有報(bào)文被轉(zhuǎn)發(fā)的端口的權(quán)重,當(dāng)緩存的權(quán)重累加到最大值后,釋放該緩存。本發(fā)明通過多播調(diào)度緩存權(quán)重與輸出端口數(shù)的匹配,把緩存的權(quán)重分配給每個(gè)端口而不是每個(gè)端口的每份報(bào)文,大大減少了多播調(diào)度緩存權(quán)重處理所需存儲(chǔ)資源,同時(shí)也簡(jiǎn)化了緩存釋放處理。
文檔編號(hào)H04L12/56GK1852225SQ200510087200
公開日2006年10月25日 申請(qǐng)日期2005年7月27日 優(yōu)先權(quán)日2005年7月27日
發(fā)明者梅柳波, 范嘉旗, 張玉泉, 李星 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
庆元县| 南汇区| 峡江县| 元谋县| 沈丘县| 拜泉县| 阿拉尔市| 赤水市| 宽甸| 巴林右旗| 宁晋县| 苏尼特右旗| 神木县| 灌南县| 崇左市| 松江区| 西乡县| 商南县| 连江县| 唐山市| 元阳县| 彩票| 友谊县| 交口县| 方山县| 通州区| 桐梓县| 双辽市| 宁阳县| 昆山市| 阳新县| 武强县| 莱州市| 泸定县| 广昌县| 巴彦淖尔市| 蒙阴县| 白朗县| 濮阳县| 陆河县| 上蔡县|