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

數(shù)據(jù)輸出控制方法和裝置的制作方法

文檔序號:7695171閱讀:109來源:國知局
專利名稱:數(shù)據(jù)輸出控制方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)傳輸技術(shù),具體涉及數(shù)據(jù)輸出控制方法和數(shù)據(jù)輸出控制 裝置。
背景技術(shù)
在數(shù)據(jù)流轉(zhuǎn)發(fā)設(shè)備中,為了控制數(shù)據(jù)出口流量,目前已經(jīng)出現(xiàn)了很多對
輸出流量進(jìn)行控制的方法,例如約定訪問速率(CAR , Committed Access Rate )技術(shù)。該CAR技術(shù)按用戶設(shè)定的速度向令牌桶(Token Bucket Policing ) 注入令牌,需要接受數(shù)據(jù)輸出控制的報文進(jìn)入令牌桶接受處理。如果令牌桶 中有足夠的令牌可以用來發(fā)送報文,則允許報文通過,通過令牌桶的報文將 在數(shù)據(jù)出口的緩存隊列中緩存,等待被發(fā)送出去。如果令牌桶中的令牌不能 滿足報文的發(fā)送條件,則報文被丟棄。
但是,CAR技術(shù)的缺點是,令牌注入速度是固定的,只要令牌足夠就 允許報文通過,并向緩存隊列發(fā)送。但是,如果數(shù)據(jù)出口發(fā)送滯緩,緩存隊 列中的數(shù)據(jù)不能被及時發(fā)送出去,那么,被允許通過的報文將由于緩存隊列 滿而被丟棄。因令牌不能滿足報文的發(fā)送條件而丟棄報文,以及因緩存隊列 滿而丟棄報文都將導(dǎo)致斷流現(xiàn)象的發(fā)生。而斷流在視頻數(shù)據(jù)傳輸?shù)葓龊鲜遣?適用的。
比較常見的流量控制還包括各種調(diào)度策略,例如公平調(diào)度(RR)和權(quán) 重調(diào)度(WRR)。調(diào)度策略適用于具有多個數(shù)據(jù)出口的數(shù)據(jù)流轉(zhuǎn)發(fā)設(shè)備。 調(diào)度策略旨在按照某種策略對各數(shù)據(jù)出口進(jìn)行調(diào)度,使得所有數(shù)據(jù)出口均有 機(jī)會分享設(shè)備數(shù)據(jù)流轉(zhuǎn)發(fā)的總出口帶寬。當(dāng)調(diào)度到某個數(shù)據(jù)出口時,直接將 該數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)緩存到該數(shù)據(jù)出口對應(yīng)的緩存隊列中,或者,在緩存之前,采用CAR技術(shù)確定該數(shù)據(jù)出口對應(yīng)的待發(fā)送數(shù)據(jù)是否允許發(fā)送。
無論是直接緩存或是CAR技術(shù)處理后的緩存,都可能因數(shù)據(jù)出口發(fā)送滯緩
導(dǎo)致的前述斷流現(xiàn)象的產(chǎn)生。
此外,現(xiàn)有調(diào)度策略中的公平調(diào)度方案采用公平輪詢各數(shù)據(jù)出口的方 式,無法對各數(shù)據(jù)出口進(jìn)行區(qū)分,導(dǎo)致各數(shù)據(jù)出口的流量分配不合理。而, 權(quán)重調(diào)度方案能夠為不同數(shù)據(jù)出口設(shè)置不同權(quán)重,權(quán)重越大,被調(diào)度的次數(shù) 越多,獲得的帶寬越大。但是,權(quán)重設(shè)置是人為的,且權(quán)重固定,因此各數(shù) 據(jù)出口的出口帶寬固定,無法根據(jù)實際情況動態(tài)變化。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種數(shù)據(jù)輸出控制方法,能夠避免斷流現(xiàn)象的 發(fā)生。
該方法包括獲取數(shù)據(jù)出口對應(yīng)的緩存隊列的空閑位長度;
在獲取的空閑位長度大于或等于所述數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)的長度時, 將所述待發(fā)送數(shù)據(jù)調(diào)度到所述數(shù)據(jù)出口對應(yīng)的緩存隊列中。
較佳地,所述數(shù)據(jù)出口對應(yīng)的緩存隊列的空閑位長度用令牌桶中的令牌 數(shù)目表示,具體包括
為所述數(shù)據(jù)出口設(shè)置令牌桶;
對所述數(shù)據(jù)出口的實際發(fā)送數(shù)據(jù)量進(jìn)行計數(shù),在每次計數(shù)值達(dá)到預(yù)設(shè)閾 值時,向所述令牌桶注入與所述預(yù)設(shè)閾值相等的令牌數(shù)目;
所述將所述待發(fā)送數(shù)據(jù)調(diào)度到所述數(shù)據(jù)出口對應(yīng)的緩存隊列中之后,進(jìn) 一步包括從所述令牌桶中減去與被調(diào)度的待發(fā)送數(shù)據(jù)長度相等的令牌數(shù) 目。
本發(fā)明提供了另 一種數(shù)據(jù)輸出控制方法,能夠避免斷流現(xiàn)象的發(fā)生。 該方法包括獲取各數(shù)據(jù)出口對應(yīng)的緩存隊列的空閑位長度; 根據(jù)各個等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口對應(yīng)的空閑位長度,確定當(dāng)前數(shù)據(jù)出 口;所述當(dāng)前數(shù)據(jù)出口的空閑位長度大于或等于該當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)長度;
將所述當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù)出口對應(yīng)的緩存 隊列中。
較佳地,所述各數(shù)據(jù)出口對應(yīng)的緩存隊列的空閑位長度用令牌桶中的令
牌數(shù)目表示,具體包括
為每個數(shù)據(jù)出口對應(yīng)設(shè)置令牌桶;
對各數(shù)據(jù)出口的實際發(fā)送數(shù)據(jù)量進(jìn)行計數(shù),在每次計數(shù)值達(dá)到預(yù)設(shè)閾值 時,向發(fā)送數(shù)據(jù)量達(dá)到預(yù)設(shè)閾值的數(shù)據(jù)出口的令牌桶注入與預(yù)設(shè)閾值相等的 令牌數(shù)目;
所述將當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù)出口對應(yīng)的緩存 隊列中之后,進(jìn)一步包括從所述當(dāng)前數(shù)據(jù)出口對應(yīng)的令牌桶中減去與被調(diào) 度的待發(fā)送數(shù)據(jù)長度相等的令牌數(shù)目。
其中,所述確定當(dāng)前數(shù)據(jù)出口具體為
按照空閑位長度從長到短的順序,對各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口進(jìn)行排 序,得到空閑位長度最長的數(shù)據(jù)出口;
如果當(dāng)前所述空閑位最長的數(shù)據(jù)出口對應(yīng)的空閑位長度大于或等于其 待發(fā)送數(shù)據(jù)的長度,則將該空閑位最長的數(shù)據(jù)出口確定為所述當(dāng)前數(shù)據(jù)出 口 。
較佳地,該方法進(jìn)一步包括在所述空閑位最長的數(shù)據(jù)出口對應(yīng)的空閑 位長度小于其待發(fā)送數(shù)量的長度時,返回執(zhí)行所述對各等待發(fā)送數(shù)據(jù)的數(shù)據(jù) 出口進(jìn)行排序的操作。
其中,所述確定當(dāng)前數(shù)據(jù)出口具體為
從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空閑位長度大于或等于待發(fā)送數(shù) 據(jù)長度的數(shù)據(jù)出口;
按照空閑位長度從長到短的順序,對獲取的各數(shù)據(jù)出口進(jìn)行排序,將空 閑位長度最長者確定為所述當(dāng)前數(shù)據(jù)出口。
較佳地,所述將當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù)出口對應(yīng)的緩存隊列中之后,該方法進(jìn)一步包括
返回執(zhí)行所述從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空閑位長度大于或
等于待發(fā)送數(shù)據(jù)長度的數(shù)據(jù)出口的步驟;
或者,按所排順序,將除所述空閑位長度最長者以外的其他數(shù)據(jù)出口依 次作為所述當(dāng)前數(shù)據(jù)出口 ,將當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù) 出口對應(yīng)的緩存隊列中,然后返回執(zhí)行所述從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口 中,獲取空閑位長度大于或等于待發(fā)送數(shù)據(jù)長度的數(shù)據(jù)出口的步驟。
其中,所述確定當(dāng)前數(shù)據(jù)出口具體為
從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空閑位長度大于或等于待發(fā)送數(shù) 據(jù)長度的數(shù)據(jù)出口;
計算獲取的各數(shù)據(jù)出口的空閑位長度與待發(fā)送數(shù)據(jù)長度之間的差值;
按照差值從大到小的順序,對所獲取的各數(shù)據(jù)出口進(jìn)行排序,將差值最 大者確定為所述當(dāng)前數(shù)據(jù)出口 。
較佳地,所述將當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù)出口對應(yīng) 的緩存隊列中之后,該方法進(jìn)一步包括
返回執(zhí)行所述從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空閑位長度大于或 等于待發(fā)送數(shù)據(jù)長度的數(shù)據(jù)出口的步驟;
或者,按所排順序,將除所述差值最大者以外的各數(shù)據(jù)出口依次作為所 述當(dāng)前數(shù)據(jù)出口 ,將當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù)出口對應(yīng) 的緩存隊列中,然后返回執(zhí)行所述從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空 閑位長度大于或等于待發(fā)送數(shù)據(jù)長度的數(shù)據(jù)出口的步驟。
本發(fā)明還提供了一種數(shù)據(jù)輸出控制裝置,能夠避免斷流現(xiàn)象的發(fā)生。
該裝置包括輸出控制單元和數(shù)據(jù)出口單元;
所述輸出控制單元,用于獲取所述數(shù)據(jù)出口單元中緩存隊列的空閑位長 度,在所述空閑位長度大于或等于所述數(shù)據(jù)出口單元的待發(fā)送數(shù)據(jù)的長度 時,將所述待發(fā)送數(shù)據(jù)調(diào)度到所述數(shù)據(jù)出口單元的緩存隊列中;
所述數(shù)據(jù)出口單元,用于向外部發(fā)送緩存在其緩存隊列中的數(shù)據(jù)。本發(fā)明還提供了 一種數(shù)據(jù)輸出控制裝置,能夠避免斷流現(xiàn)象的發(fā)生。
該裝置包括輸出控制單元和多個數(shù)據(jù)出口單元; 所述輸出控制單元,用于獲取各數(shù)據(jù)出口單元中緩存隊列的空閑位長 度,根據(jù)各個等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口單元對應(yīng)的空閑位長度,確定當(dāng)前數(shù)
據(jù)出口單元;將所述當(dāng)前數(shù)據(jù)出口單元的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù)出口
的緩存隊列中;其中,所述當(dāng)前數(shù)據(jù)出口的空閑位長度大于或等于所述當(dāng)前
數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)長度;
所述數(shù)據(jù)出口單元,用于向外部發(fā)送緩存在其緩存隊列中的數(shù)據(jù)。 其中,所述輸出控制單元包括空閑位獲取模塊、調(diào)度模塊和輸出模塊; 所述空閑位獲取模塊,用于根據(jù)各數(shù)據(jù)出口單元反饋的流量信息,獲取
各數(shù)據(jù)出口單元中緩存隊列的空閑位長度,并提供給所述調(diào)度模塊;
所述調(diào)度模塊,用于根據(jù)所述空閑位獲取模塊獲取的空閑位長度,確定 當(dāng)前數(shù)據(jù)出口單元;所述當(dāng)前數(shù)據(jù)出口單元的空閑位長度大于或等于所述當(dāng) 前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)長度;
所述輸出模塊,用于將所述當(dāng)前數(shù)據(jù)出口單元的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng) 前數(shù)據(jù)出口單元的緩存隊列中;
所述數(shù)據(jù)出口單元進(jìn)一 步用于向輸出控制單元反饋流量信息。
其中,所述調(diào)度模塊包括排序子模塊和確定子模塊;
所述排序子模塊,用于按照空閑位長度從長到短的順序,對各等待發(fā)送 數(shù)據(jù)的數(shù)據(jù)出口進(jìn)行排序,得到空閑位長度最長的數(shù)據(jù)出口;
所述確定子模塊,用于在所述排序子模塊得到的所述空閑位最長的數(shù)據(jù) 出口對應(yīng)的空閑位長度大于或等于其待發(fā)送數(shù)據(jù)長度時,將空閑位最長的數(shù) 據(jù)出口確定為所述當(dāng)前數(shù)據(jù)出口。
其中,所述調(diào)度模塊包括排序子模塊和確定子模塊;
所述排序子模塊,用于從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空閑位長 度大于或等于待發(fā)送數(shù)據(jù)長度的數(shù)據(jù)出口;按照空閑位長度從長到短的順 序,對獲取的各數(shù)據(jù)出口進(jìn)行排序;所述確定子模塊,用于根據(jù)所述排序子模塊的排序結(jié)果,將空閑位長度 最長的數(shù)據(jù)出口確定為所述當(dāng)前數(shù)據(jù)出口。
其中,所述調(diào)度模塊包括排序子模塊和確定子模塊;
所述排序子模塊,用于從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空閑位長
度大于或等于待發(fā)送數(shù)據(jù)長度的數(shù)據(jù)出口;計算獲取的各數(shù)據(jù)出口的空閑位 長度與其待發(fā)送數(shù)據(jù)長度之間的差值;按照差值從大到小的順序,對獲取的 各數(shù)據(jù)出口進(jìn)行排序;
所述確定子模塊,用于根據(jù)所述排序子模塊的排序結(jié)果,將差值最大的 數(shù)據(jù)出口確定為所述當(dāng)前數(shù)據(jù)出口 。
其中,所述數(shù)據(jù)出口單元包括數(shù)據(jù)出口、緩存隊列、計數(shù)器和脈沖生成
器;
所述計數(shù)器,用于對所述數(shù)據(jù)出口發(fā)送的數(shù)據(jù)進(jìn)行計數(shù),當(dāng)計數(shù)值達(dá)到 預(yù)設(shè)閾值時,通知脈沖生成器,并從零開始計數(shù);
所述脈沖生成器,用于在接到通知后,生成脈沖,作為所述流量信息反 饋給輸出控制單元;
所述數(shù)據(jù)出口,用于向所在裝置外部發(fā)送數(shù)據(jù);
所述緩存隊列,用于緩存來自輸出控制單元的等待向所在裝置外部發(fā)送 的數(shù)據(jù);
所述空閑位獲取模塊包括對應(yīng)每個數(shù)據(jù)出口單元的令牌桶和令牌桶維 護(hù)子模塊;
所述令牌桶維護(hù)子模塊,用于在接收到脈沖后,向發(fā)送該脈沖的數(shù)據(jù)出 口單元的令牌桶中注入與所述閾值相等的令牌,將各數(shù)據(jù)出口單元的令牌數(shù) 目作為空閑位長度提供給所述調(diào)度模塊;在所述輸出模塊將所述待發(fā)送數(shù)據(jù) 調(diào)度到當(dāng)前數(shù)據(jù)出口單元的緩存隊列中時,從當(dāng)前數(shù)據(jù)出口單元的令牌桶中 減去與被調(diào)度的待發(fā)送數(shù)據(jù)長度相等的令牌數(shù)目。
根據(jù)以上技術(shù)方案可見,本發(fā)明實施例根據(jù)數(shù)據(jù)出口對應(yīng)的緩存隊列的 空閑情況判斷是否調(diào)度待發(fā)送數(shù)據(jù),只有在緩存隊列能夠容納待發(fā)送數(shù)據(jù)時,才將待發(fā)送數(shù)據(jù)調(diào)度到緩存隊列中。當(dāng)數(shù)據(jù)出口發(fā)送滯緩,其空閑位很 小且不能容納待轉(zhuǎn)發(fā)數(shù)據(jù),此時,不會執(zhí)行將待發(fā)送數(shù)據(jù)緩存到數(shù)據(jù)出口的 操作,避免了因緩存隊列滿而丟棄報文的情況,保證了數(shù)據(jù)流的連續(xù)性。
當(dāng)數(shù)據(jù)出口為1個以上時,獲取每個數(shù)據(jù)出口對應(yīng)的緩存隊列的空閑位 長度;調(diào)度時,根據(jù)各個等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口對應(yīng)的空閑位長度,確定 當(dāng)前數(shù)據(jù)出口 ,且所確定的當(dāng)前數(shù)據(jù)出口的緩存隊列必須具備容納待發(fā)送數(shù) 據(jù)的能力,從而避免了因緩存隊列滿而丟棄報文的情況,保證了數(shù)據(jù)流的連 續(xù)性。
此外,在具體確定當(dāng)前數(shù)據(jù)出口時,當(dāng)前數(shù)據(jù)出口不僅需要滿足具有容 納數(shù)據(jù)能力的條件,與其它數(shù)據(jù)出口相比,當(dāng)前數(shù)據(jù)出口具有更多的空閑位, 表示該數(shù)據(jù)出口的緩存隊列急切地需要新數(shù)據(jù)的填補(bǔ)??梢?,具有較多空閑 位的數(shù)據(jù)出口能夠優(yōu)先被調(diào)度,被調(diào)度次數(shù)越多,其出口帶寬越大,從而使 得本發(fā)明實施例能夠根據(jù)數(shù)據(jù)出口的實際數(shù)據(jù)輸出情況,動態(tài)調(diào)整各個出口 帶寬,避免了現(xiàn)有技術(shù)中公平調(diào)度或根據(jù)固定權(quán)重進(jìn)行調(diào)度帶來的帶寬無法 調(diào)節(jié)的缺陷。
此外,本發(fā)明實施例采用令牌數(shù)目表示數(shù)據(jù)出口緩存隊列的空閑位大 小,從而精確的反映出各數(shù)據(jù)出口的緩存隊列能夠容納的數(shù)據(jù)長度,實現(xiàn)對 數(shù)據(jù)輸出的精確控制。


圖1為本發(fā)明實施例中數(shù)據(jù)輸出控制方法的流程圖。
圖2為本發(fā)明中數(shù)據(jù)發(fā)送控制裝置的結(jié)構(gòu)示意圖。
圖3為具有1個以上數(shù)據(jù)出口單元22的數(shù)據(jù)發(fā)送控制裝置的結(jié)構(gòu)示意圖。
圖4為圖3中數(shù)據(jù)出口單元22的結(jié)構(gòu)示意圖。 圖5為圖2中輸出控制單元20的結(jié)構(gòu)示意圖。 圖6為圖3中輸出控制單元21的結(jié)構(gòu)示意圖。圖7為圖6中調(diào)度模塊212的結(jié)構(gòu)示意圖。 圖8為圖6中輸出模塊213的結(jié)構(gòu)示意圖。
具體實施例方式
本發(fā)明實施例提供了一種數(shù)據(jù)輸出控制方法,其基本思想為獲取數(shù)據(jù) 出口對應(yīng)的緩存隊列的空閑位長度;在數(shù)據(jù)出口對應(yīng)的空閑位長度大于或等 于該數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)的長度時,將該待發(fā)送數(shù)據(jù)調(diào)度到其數(shù)據(jù)出口對 應(yīng)的緩存隊列中。
本發(fā)明實施例根據(jù)數(shù)據(jù)出口對應(yīng)的援存隊列的空閑情況判斷是否發(fā)送 待發(fā)送數(shù)據(jù),并只有在緩存隊列能夠容納待發(fā)送數(shù)據(jù)時,對待發(fā)送數(shù)據(jù)進(jìn)行 處理,才將待發(fā)送數(shù)據(jù)調(diào)度到緩存隊列中。當(dāng)數(shù)據(jù)出口發(fā)送滯緩,其空閑位 很小且不能容納待轉(zhuǎn)發(fā)數(shù)據(jù),此時,不會執(zhí)行將待發(fā)送數(shù)據(jù)緩存到數(shù)據(jù)出口 的操作,避免了因緩存隊列滿而丟棄報文的情況,保證了數(shù)據(jù)流的連續(xù)性。
本發(fā)明可以應(yīng)用于包括一個或一個以上數(shù)據(jù)出口的數(shù)據(jù)流轉(zhuǎn)發(fā)設(shè)備,當(dāng) 數(shù)據(jù)流轉(zhuǎn)發(fā)設(shè)備同時包括多個數(shù)據(jù)出口時,每個數(shù)據(jù)出口的帶寬可能不同, 那么各數(shù)據(jù)出口的數(shù)據(jù)發(fā)送速率就不同。在這種情況下,需要首先對各數(shù)據(jù) 出口進(jìn)行調(diào)度,從而確定當(dāng)前數(shù)據(jù)出口。
在本發(fā)明實施例中,當(dāng)數(shù)據(jù)出口為l個以上時,獲取每個數(shù)據(jù)出口對應(yīng) 的緩存隊列的空閑位長度;實際上,空閑位長度能夠顯示出數(shù)據(jù)出口的緩存 隊列對新數(shù)據(jù)的容納能力。在調(diào)度時,根據(jù)各個等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口對 應(yīng)的空閑位長度,確定當(dāng)前數(shù)據(jù)出口,且所確定的當(dāng)前數(shù)據(jù)出口的緩存隊列 必須具備容納待發(fā)送數(shù)據(jù)的能力,即當(dāng)前數(shù)據(jù)出口中緩存隊列的空閑位長度 大于或等于其待發(fā)送數(shù)據(jù)長度,從而避免了因緩存隊列滿而丟棄報文的情 況,保證了數(shù)據(jù)流的連續(xù)性。
本發(fā)明的技術(shù)方案可以適用于交換機(jī)、路由器、多媒體網(wǎng)關(guān)、視頻網(wǎng)關(guān) 等數(shù)據(jù)流轉(zhuǎn)發(fā)設(shè)備。對于交換機(jī)和路由器,本發(fā)明描述的數(shù)據(jù)出口為出端口 , 對于多媒體網(wǎng)關(guān)和視頻網(wǎng)關(guān)本發(fā)明描述的數(shù)據(jù)出口為網(wǎng)關(guān)內(nèi)部的視頻端口(VP, Video Port)。本發(fā)明實施例的數(shù)據(jù)輸出控制可以采用現(xiàn)場可編程門 陣列(FPGA, Field Programmable Gate Array)或?qū)S眉呻奮各(ASIC, Application Specific Integrated Circuit)實現(xiàn)。
以下以將本發(fā)明數(shù)據(jù)輸出控制方法應(yīng)用于視頻網(wǎng)關(guān)為例,結(jié)合附圖并舉 實施例,對本發(fā)明的數(shù)據(jù)發(fā)送控制方法進(jìn)行詳細(xì)描述。
視頻網(wǎng)關(guān)為設(shè)置在局端的視頻圖像轉(zhuǎn)發(fā)設(shè)備。在視頻網(wǎng)關(guān)中,待發(fā)送的 視頻圖像數(shù)據(jù)經(jīng)圖像處理后,通過與待發(fā)送的視頻圖像數(shù)據(jù)對應(yīng)的VP,按 照一定幀率發(fā)送到數(shù)字信號處理器(DSP, Digital Signal Processor)進(jìn)行編 碼,然后經(jīng)封裝發(fā)送出去。每個VP對應(yīng)一個緩存隊列,稱為發(fā)送數(shù)據(jù)隊列 (TXQ),該TXQ中緩存已經(jīng)經(jīng)過圖像處理的視頻圖像數(shù)據(jù)。VP的數(shù)據(jù)發(fā) 送帶寬與DSP處理資源有關(guān),不同VP對應(yīng)的DSP處理能力不同,因此, 不同VP向?qū)?yīng)DSP發(fā)送數(shù)據(jù)的帶寬也不同。在多個VP共用一個DSP的情 況下,當(dāng)VP A的數(shù)據(jù)發(fā)送完畢,被VP A占用的DSP編碼資源被釋放,此 時,釋放的DSP資源可以用于處理其它VP輸出的數(shù)據(jù),那么其它VP發(fā)送 隊列中的數(shù)據(jù)可以以更快的速度發(fā)給DSP,即VP的可用帶寬增加了。采用 本發(fā)明實施例可以根據(jù)VP的實際帶寬進(jìn)行調(diào)度,還可以在檢測到帶寬的變 化時,根據(jù)變化對VP進(jìn)行調(diào)度,從而調(diào)節(jié)各個VP的實際數(shù)據(jù)發(fā)送帶寬。
圖1為本發(fā)明實施例中數(shù)據(jù)輸出控制方法的流程圖。本流程中仍將VP 稱為數(shù)據(jù)出口,將VP對應(yīng)的TXQ稱為緩存隊列。如圖1所示,該方法包 括以下步驟
步驟101:為每個數(shù)據(jù)出口分別對應(yīng)設(shè)置一個令牌桶,對各令牌桶的令 牌數(shù)目進(jìn)行初始化。
其中,對各令牌桶的令牌數(shù)目進(jìn)行初始化為將各令牌桶的令牌數(shù)目初
始化為對應(yīng)數(shù)據(jù)出口的緩存隊列長度;或者,初始化為對應(yīng)數(shù)據(jù)出口的緩存 隊列長度乘以預(yù)設(shè)百分比得到的長度;或者,初始化為固定的預(yù)設(shè)值,該值 小于或等于對應(yīng)數(shù)據(jù)出口的緩存隊列長度。
本發(fā)明實施例中的令牌桶是指能夠接受賦值,進(jìn)行簡單加減計算且記錄數(shù)值的記錄設(shè)備,例如,可以采用一個寄存器和一個運算器實現(xiàn)該令牌桶, 那么在本步驟中對寄存器賦值為預(yù)設(shè)的初始值,在后續(xù)步驟向令牌桶注入令 牌或減去令牌時,運算器根據(jù)寄存器記錄的數(shù)值進(jìn)行運算,將得到的數(shù)值存 入寄存器中。再例如,可以采用計數(shù)器實現(xiàn)該令牌桶,那么在本步驟中,為 計數(shù)器賦值為預(yù)設(shè)的初始值,在后續(xù)步驟向令牌桶注入令牌或減去令牌時, 計數(shù)器根據(jù)當(dāng)前計數(shù)值進(jìn)行增計數(shù)或減計數(shù)。
步驟102:對各數(shù)據(jù)出口的實際發(fā)送數(shù)據(jù)量進(jìn)行計數(shù),每次計數(shù)值達(dá)到
預(yù)設(shè)閾值時,向該發(fā)送數(shù)據(jù)量達(dá)到閾值的數(shù)據(jù)出口的令牌桶注入與預(yù)設(shè)閾值 相等的令牌。
本步驟中,每次計數(shù)值達(dá)到預(yù)設(shè)閾值的判定方式為在某個數(shù)據(jù)出口, 例如數(shù)據(jù)出口 1的計數(shù)值達(dá)到預(yù)設(shè)閾值時,產(chǎn)生一個脈沖,在^r測到該脈沖 時,確定產(chǎn)生脈沖的數(shù)據(jù)出口 1的計數(shù)值達(dá)到預(yù)設(shè)閾值。此時,向數(shù)據(jù)出口 1對應(yīng)的令牌桶中注入與設(shè)定閾值相等的令牌。令牌桶中令牌數(shù)目的增加會 增加數(shù)據(jù)出口l被調(diào)度的幾率。
其中,各數(shù)據(jù)出口的閾值可以相同,也可以不同。
本步驟102實時反復(fù)執(zhí)行。
步驟103:判斷是否開始本輪調(diào)度,如果是,則執(zhí)行步驟104;否則, 繼續(xù)執(zhí)行本步驟。
在視頻網(wǎng)關(guān)中,往往在指定時刻發(fā)送指定數(shù)量的數(shù)據(jù),例如,通常每隔 1/30秒(s)發(fā)送一幀數(shù)據(jù),該幀數(shù)據(jù)可以在1/30s中的任何時刻發(fā)送。因此, 本步驟中,每隔1/30s判定開始本輪調(diào)度。
步驟104:對等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口對應(yīng)的令牌桶令牌數(shù)目進(jìn)行排序, 得到令牌數(shù)目最多的數(shù)據(jù)出口 。
其中,等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口的確定方式為從所有數(shù)據(jù)出口中過濾 出使能的數(shù)據(jù)出口 ,從使能的數(shù)據(jù)出口中過濾出存在待發(fā)送數(shù)據(jù)的數(shù)據(jù)出 口 ,這些有發(fā)送數(shù)據(jù)需要的數(shù)據(jù)出口為等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口 。
步驟105:判斷步驟104得到的令牌數(shù)目最多的數(shù)據(jù)出口的令牌數(shù)目是否大于或等于該數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)長度,如果是,則將令牌數(shù)目最多的
數(shù)據(jù)出口確定為當(dāng)前數(shù)據(jù)出口,執(zhí)行步驟106;否則,判定調(diào)度失敗,執(zhí)行 步驟107。
其中,令牌數(shù)目越多表示對應(yīng)的數(shù)據(jù)出口越需要數(shù)據(jù),需要優(yōu)先被調(diào)度。 步驟106:對當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)進(jìn)行發(fā)送前的相應(yīng)處理,然后 緩存到當(dāng)前數(shù)據(jù)出口對應(yīng)的緩存隊列中,將當(dāng)前數(shù)據(jù)出口對應(yīng)的令牌桶中減 去與被調(diào)度的待發(fā)送數(shù)據(jù)長度相等的令牌數(shù),進(jìn)入下一輪調(diào)度,返回步驟 103。
在視頻網(wǎng)關(guān)中,對當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)進(jìn)行發(fā)送前的相應(yīng)處理, 然后緩存到當(dāng)前數(shù)據(jù)出口對應(yīng)的緩存隊列中的操作具體包括以下步驟
1 、 生成待發(fā)送數(shù)據(jù)的發(fā)送命令,將發(fā)送命令緩存到發(fā)送命令隊列中。 其中,發(fā)送命令中包括待發(fā)送數(shù)據(jù)的存儲地址和數(shù)據(jù)長度。
2、 依次處理發(fā)送命令隊列中的發(fā)送命令,將根據(jù)發(fā)送命令獲取的待 發(fā)送數(shù)據(jù)緩存到數(shù)據(jù)隊列中。
3、 依次對數(shù)據(jù)隊列中的待發(fā)送數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,例如圖像處理, 然后將經(jīng)過數(shù)據(jù)處理的待發(fā)送數(shù)據(jù)緩存到相應(yīng)VP的TXQ中,等 待發(fā)送給DSP進(jìn)行處理。
步驟107:判斷是否退出本輪調(diào)度,如果是,則進(jìn)行下一輪調(diào)度,返回 執(zhí)行步驟103;否則,返回步驟104。
對于視頻網(wǎng)關(guān),每隔1/30s開始一輪調(diào)度。在本步驟中,如果本輪調(diào)度 的1/30s結(jié)束,則判定退出本輪調(diào)度,進(jìn)行下一輪調(diào)度,返回步驟103;如 果本輪調(diào)度的1/30s沒有結(jié)束,則判定不退出本輪調(diào)度,返回步驟104,重 新進(jìn)行當(dāng)前數(shù)據(jù)出口的遴選。
在實際中,當(dāng)判定返回步驟104時,可以等待5ns再返回,從而給各數(shù) 據(jù)出口留出一段積累令牌的時間。當(dāng)采用FPGA實現(xiàn)本發(fā)明數(shù)據(jù)輸出控制方 法時,由于FPGA采用硬件實現(xiàn)返回步驟104的操作,該返回過程需要一'J、 段時間,大約為5ns,因此可以直接返回步驟104,無需等待5ns。至此,本流程結(jié)束。
從圖l所示的流程可以看出,調(diào)度時,當(dāng)前數(shù)據(jù)出口不僅需滿足具有容 納數(shù)據(jù)能力的條件,而且與其它數(shù)據(jù)出口相比,當(dāng)前數(shù)據(jù)出口具有更多的空 閑位,表示該數(shù)據(jù)出口的緩存隊列急切地需要新數(shù)據(jù)的填補(bǔ)??梢?,具有較 多空閑位的數(shù)據(jù)出口能夠優(yōu)先被調(diào)度,被調(diào)度次數(shù)越多,其出口帶寬越大。 使得本發(fā)明實施例能夠根據(jù)數(shù)據(jù)出口的實際數(shù)據(jù)輸出情況,動態(tài)調(diào)整各個出 口帶寬,使其適應(yīng)實時變化,避免了現(xiàn)有技術(shù)中公平調(diào)度或根據(jù)固定權(quán)重進(jìn) 行調(diào)度帶來的帶寬無法調(diào)節(jié)的缺陷。
同時,圖1所示的流程采用令牌數(shù)目表示數(shù)據(jù)出口緩存隊列的空閑位大 小,且實時根據(jù)接收的脈沖調(diào)整令牌數(shù)目,從而精確的反映出各數(shù)據(jù)出口的 緩存隊列能夠容納的數(shù)據(jù)長度,即緩存隊列的空閑位數(shù)據(jù)量,從而增加了調(diào) 度準(zhǔn)確性。
圖l所示的流程中,對實際發(fā)送數(shù)據(jù)量計數(shù),并在計數(shù)值達(dá)到預(yù)設(shè)閾值 時,更新令牌桶。這種方式屬于根據(jù)數(shù)據(jù)出口的流量信息更新令牌桶,流量 信息間接反映緩存隊列變化。在實際中,還可以采用其它方式獲取緩存隊列 的空閑位長度。
例如,實時或定期獲取各緩存隊列中空閑位占緩存隊列長度的百分比, 或數(shù)據(jù)位占緩存隊列長度的百分比,然后將百分比換算為空閑位長度值。這 種方式屬于根據(jù)緩存隊列變化信息更新令牌桶。
再例如,分別對各數(shù)據(jù)出口的實際發(fā)送數(shù)量進(jìn)行計數(shù),在計數(shù)時間達(dá)到 預(yù)設(shè)時間時,將所計數(shù)值換算為令牌數(shù)目,注入相應(yīng)令牌桶。這種方式下, 所有令牌桶同時更新,每個令牌桶注入數(shù)據(jù)量根據(jù)數(shù)據(jù)出口實際發(fā)送量而不 同。這種方式屬于根據(jù)數(shù)據(jù)出口的流量信息更新令牌桶。
圖1示出的流程中,在步驟105判定調(diào)度失敗且步驟107判定未到達(dá)本 次調(diào)度時限時,返回步驟104再次進(jìn)行數(shù)據(jù)出口遴選。在實際中,也可以在 步驟107判定未到達(dá)本次調(diào)度時限時,將步驟104確定的令牌數(shù)第二多的數(shù) 據(jù)出口確定為當(dāng)前數(shù)據(jù)出口 ,然后比較該數(shù)據(jù)出口的令牌數(shù)目和其待發(fā)送數(shù)據(jù)長度,進(jìn)而決定是否調(diào)度,如果確定調(diào)度,則在調(diào)度后,返回步驟103; 如果令牌數(shù)第二多的數(shù)據(jù)出口也調(diào)度失敗,則將步驟104確定的令牌數(shù)第三 多的數(shù)據(jù)出口確定為當(dāng)前數(shù)據(jù)出口,依此類推,直到調(diào)度成功或者判斷本次 調(diào)度時間到,再返回步驟103,進(jìn)入下一輪的調(diào)度。
交換機(jī)和路由器沒有定時調(diào)度的限制,因此對于交換機(jī)和路由器來說, 不需要等待定時發(fā)送時刻的到來,因此在步驟102,只要有待發(fā)送數(shù)據(jù)就判 定開始本輪調(diào)度并執(zhí)行圖1示出的步驟103到105。在步驟105中,當(dāng)判定 當(dāng)前數(shù)據(jù)出口的令牌數(shù)目大于或等于該數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)長度時,執(zhí)行 步驟106,這與圖l是相同的;與圖l不同之處在于,步驟105在判定當(dāng)前 數(shù)據(jù)出口的令牌數(shù)目小于該數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)長度時,返回步驟104; 也可以在判定當(dāng)前數(shù)據(jù)出口的令牌數(shù)目小于該數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)長度 時,將步驟104確定的令牌數(shù)第二多的數(shù)據(jù)出口確定為當(dāng)前數(shù)據(jù)出口 ,然后 比較該數(shù)據(jù)出口的令牌數(shù)目和待發(fā)送數(shù)據(jù)長度,如果令牌數(shù)第二多的數(shù)據(jù)出 口也調(diào)度失敗,則將步驟104確定的令牌數(shù)第三多的數(shù)據(jù)出口確定為當(dāng)前數(shù) 據(jù)出口 ,依此類推,直到調(diào)度成功或者處理完所有數(shù)據(jù)出口 ,返回步驟103。 但是,依次處理所有數(shù)據(jù)出口會耗費大量設(shè)備資源,而且在處理令牌并非最 多的數(shù)據(jù)出口時,令牌最多的數(shù)據(jù)出口可能已經(jīng)湊齊了令牌,因此,可以設(shè) 置一輪調(diào)度中的調(diào)度失敗次數(shù),例如設(shè)置為2,則如果令牌數(shù)第二多的數(shù)據(jù) 出口也調(diào)度失敗,則返回步驟103執(zhí)行下一輪調(diào)度。
圖1中的步驟104到步驟105示出了一種確定當(dāng)前數(shù)據(jù)出口的方式。在 實際中,還可以采用如下調(diào)度方式二或調(diào)度方式三確定當(dāng)前數(shù)據(jù)出口
調(diào)度方式二、包括以下步驟
al、從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,過濾出令牌數(shù)目大于或等于待發(fā) 送數(shù)據(jù)長度的各數(shù)據(jù)出口;這些數(shù)據(jù)出口對應(yīng)的緩存隊列具有容納新數(shù)據(jù)的 能力。當(dāng)然,如果任何一個數(shù)據(jù)出口都不具有容納新數(shù)據(jù)能力,則直接確定 調(diào)度失敗。a2、按照令牌數(shù)目從多到少的順序,將過濾出的數(shù)據(jù)出口進(jìn)行排 序,將令牌數(shù)目最多者確定為當(dāng)前數(shù)據(jù)出口。將步驟a2確定的當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)調(diào)度到緩存隊列之后,可 以返回執(zhí)行步驟al;或者,按步驟a2所排順序,將除已經(jīng)調(diào)度過的令牌數(shù) 目最多者以外的其他數(shù)據(jù)出口 ,依次作為當(dāng)前數(shù)據(jù)出口,完成調(diào)度后再返回 步驟al。
調(diào)度方式三、包括以下步驟
bl、從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,過濾出令牌數(shù)目大于或等于待發(fā) 送數(shù)據(jù)長度的各數(shù)據(jù)出口;當(dāng)然,如果任何一個數(shù)據(jù)出口都不具有容納新數(shù) 據(jù)能力,則直接確定調(diào)度失敗。b2、計算所獲取的各數(shù)據(jù)出口的令牌數(shù)目與 其待發(fā)送數(shù)據(jù)長度之間的差值。b3、按照差值從大到小的順序,對所獲取的 各數(shù)據(jù)出口進(jìn)行排序,將差值最大者確定為當(dāng)前數(shù)據(jù)出口 。
將步驟b3確定的當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)調(diào)度到緩存隊列之后,可 以返回執(zhí)行步驟bl;或者,按步驟b3所排順序,將除已經(jīng)調(diào)度過的差值最 大者以外的其他數(shù)據(jù)出口,依次作為當(dāng)前數(shù)據(jù)出口,完成調(diào)度后再返回步驟 bl。
為了實現(xiàn)上述數(shù)據(jù)發(fā)送控制方法,本發(fā)明實施例還提供了一種數(shù)據(jù)發(fā)送 控制裝置。圖2為本發(fā)明中數(shù)據(jù)發(fā)送控制裝置的結(jié)構(gòu)示意圖,如圖2所示, 該裝置包括輸出控制單元20和數(shù)據(jù)出口單元22;其中,
輸出控制單元20,用于對數(shù)據(jù)出口單元22進(jìn)行監(jiān)控,根據(jù)數(shù)據(jù)出口單 元22反饋的信息,獲取數(shù)據(jù)出口單元22中緩存隊列的空閑位長度,在數(shù)據(jù) 出口單元22中緩存隊列的空閑位長度大于或等于該數(shù)據(jù)出口單元22的待發(fā) 送數(shù)據(jù)長度時,將待發(fā)送數(shù)據(jù)調(diào)度到數(shù)據(jù)出口單元22的緩存隊列中。 數(shù)據(jù)出口單元22,用于向外部發(fā)送緩存在其緩存隊列中的數(shù)據(jù)。 圖3示出了具有l(wèi)個以上數(shù)據(jù)出口單元的數(shù)據(jù)發(fā)送控制裝置的結(jié)構(gòu)示意 圖。如圖3所示,該裝置包括輸出控制單元21和n個數(shù)據(jù)出口單元22。 n 為大于1的整數(shù)。
下面對輸出控制單元和數(shù)據(jù)出口單元的具體實現(xiàn)進(jìn)行詳細(xì)描述。
圖4示出了圖3中數(shù)據(jù)出口單元22的結(jié)構(gòu)。該數(shù)據(jù)出口單元22的結(jié)構(gòu)同樣適用于圖2中的數(shù)據(jù)出口單元22。如圖3所示,數(shù)據(jù)出口單元22包括 數(shù)據(jù)出口221、緩存隊列222、計數(shù)器223和脈沖生成器224;其中, 數(shù)據(jù)出口221,用于從緩存隊列222獲取數(shù)據(jù),向外部發(fā)送。 緩存隊列222,用于緩存來自輸出控制單元的等待向所在裝置外部發(fā)送 的數(shù)據(jù)。
計數(shù)器223,用于對數(shù)據(jù)出口 221發(fā)送的數(shù)據(jù)進(jìn)行計數(shù),當(dāng)計數(shù)值達(dá)到預(yù) 設(shè)閾值時,通知力永沖生成器224,并,人零開始計數(shù)。
脈沖生成器224,用于在接到計數(shù)器223的通知后,生成脈沖,反饋給 輸出控制單元。
上文還提到一種定時反饋發(fā)送數(shù)據(jù)量的方式,采用這種方式時,數(shù)據(jù)出 口單元22不包括脈沖生成器224,進(jìn)一步包括計時器,在計數(shù)器223開始 計數(shù)時,計時器啟動,當(dāng)計時器計時值達(dá)到預(yù)設(shè)時間時,通知計數(shù)器223將 當(dāng)前計數(shù)值反饋給輸出控制單元。以上兩種方式數(shù)據(jù)出口單元22反饋的信 息屬于流量信息。
圖5示出了圖2中輸出控制單元20的結(jié)構(gòu),如圖5所示,該輸出控制單元 20包括空閑位獲取模塊51和輸出模塊52;其中,
空閑位獲取模塊51中設(shè)置有令牌桶,該令牌桶中的令牌數(shù)目表示數(shù)據(jù)出口 單元22中緩存對列的空閑位長度??臻e位獲取模塊51在接收到來自數(shù)據(jù)出口 單元22的脈沖后,將該脈沖換算為令牌數(shù)目,注入令牌桶。在輸出模塊52將 數(shù)據(jù)出口單元22的待發(fā)送數(shù)據(jù)調(diào)度到數(shù)據(jù)出口單無22的緩存隊列時,從令牌 桶中減去與調(diào)度的待發(fā)送數(shù)據(jù)長度相等的令牌數(shù)目。
輸出模塊52,用于在令牌桶中的令牌數(shù)目大于或等于待發(fā)送數(shù)據(jù)時,將待 發(fā)送數(shù)據(jù)調(diào)度到對應(yīng)的緩存隊列中。
圖6示出了圖3中輸出控制單元21的結(jié)構(gòu),如圖6所示,該輸出控制單元 21包括空閑位獲取模塊211、調(diào)度;f莫塊212和輸出模塊213;其中,
空閑位獲取模塊211,用于根據(jù)各數(shù)據(jù)出口單元22反饋的流量信息,獲取 各數(shù)據(jù)出口單元22中緩存隊列的空閑位長度,并提供給調(diào)度模塊212。如前所述,流量信息可以為數(shù)據(jù)出口單元22發(fā)送的脈沖。
具體來說,該空閑位獲取模塊211包括對應(yīng)每個數(shù)據(jù)出口單元的令牌桶和
令牌桶維護(hù)子模塊(令牌桶和令牌桶維護(hù)子模塊在圖5中未示出);其中,令牌 桶維護(hù)子模塊對各令牌桶進(jìn)行初始化;在接收到來自數(shù)據(jù)出口單元22脈沖后, 將脈沖換算為與該脈沖對應(yīng)的數(shù)據(jù)出口單元22使用的閾值相等的令牌數(shù),然后 向?qū)?yīng)的數(shù)據(jù)出口單元22的令牌桶中注入,將各數(shù)據(jù)出口單元的令牌數(shù)目作為 空閑位長度提供給調(diào)度模塊212;該空閑位獲取模塊211還在才全測到輸出才莫塊 213將待發(fā)送數(shù)據(jù)調(diào)度到當(dāng)前數(shù)據(jù)出口單元22的緩存隊列中時,從當(dāng)前數(shù)據(jù)出 口單元22的令牌桶中減去與調(diào)度的待發(fā)送數(shù)據(jù)長度相等的令牌數(shù)目。
調(diào)度模塊212,用于接收空閑位獲取模塊211提供的空閑位長度,即各數(shù) 據(jù)出口的令牌數(shù)目,根據(jù)各個等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口單元22對應(yīng)的空閑位長 度,確定當(dāng)前數(shù)據(jù)出口單元;所確定的當(dāng)前數(shù)據(jù)出口單元的空閑位長度大于或 等有其待發(fā)送數(shù)據(jù)長度。
該調(diào)度模塊212可以采用前述不同的調(diào)度方式。圖7為圖6中調(diào)度模塊212 的一種結(jié)構(gòu)示意圖。如圖7所示,該調(diào)度模塊212包括排序子才莫塊71和確定子 模塊72;其中,
排序子模塊71,用于按照令牌數(shù)目從多到少的順序,對各等待發(fā)送數(shù)據(jù)的 數(shù)據(jù)出口單元進(jìn)行排序,得到令牌數(shù)目最多的數(shù)據(jù)出口單元。
確定子模塊72,用于在排序子模塊71得到的令牌數(shù)目最多的數(shù)據(jù)出口單 元對應(yīng)的令牌數(shù)目大于或等于其待發(fā)送數(shù)據(jù)的長度時,將該令牌數(shù)目最多的數(shù) 據(jù)出口單元確定為當(dāng)前凄史據(jù)出口單元。
上文所述調(diào)度方式二和調(diào)度方式三仍可以采用圖7所示的調(diào)度模塊212結(jié) 構(gòu)。只是排序子模塊71和確定子模塊72的功能有所不同。
采用調(diào)度方式二時,排序子模塊71和確定子模塊72的功能如下
排序子模塊71,用于從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口單元中,獲取令牌數(shù)目 大于或等于待發(fā)送數(shù)據(jù)長度的各數(shù)據(jù)出口單元;按照令牌數(shù)目從多到少的順序, 對所獲取的各數(shù)據(jù)出口單元進(jìn)行排序。確定子模塊72,用于根據(jù)排序子模塊71的排序結(jié)果,將令牌數(shù)目最多者 確定為當(dāng)前數(shù)據(jù)出口單元。
采用調(diào)度方式三時,排序子模塊71和確定子模塊72的功能如下
排序子模塊71,用于從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口單元中,獲取令牌數(shù)目 大于或等于待發(fā)送數(shù)據(jù)長度的各數(shù)據(jù)出口單元;計算所獲取的各數(shù)據(jù)出口單元 的令牌數(shù)目與其待發(fā)送數(shù)據(jù)長度之間的差值,按照差值從大到小的順序,對所 獲取的各數(shù)據(jù)出口單元進(jìn)行排序。
確定子模塊72,用于根據(jù)排序子模塊71的排序結(jié)果,將差值最大者確定 為當(dāng)前凄t據(jù)出口單元。
以上就是調(diào)度模塊212的組成和功能。
輸出控制單元21中的輸出模塊213,用于將調(diào)度模塊212確定的當(dāng)前數(shù)據(jù) 出口單元的待發(fā)送數(shù)據(jù)調(diào)度到當(dāng)前數(shù)據(jù)出口單元的緩存隊列中。
當(dāng)該數(shù)據(jù)發(fā)送控制裝置應(yīng)用于視頻網(wǎng)關(guān)時,數(shù)據(jù)出口單元22中的數(shù)據(jù)出口 221為VP,數(shù)據(jù)出口單元22中的緩存隊列222為TXQ。圖8示出了當(dāng)該數(shù)據(jù) 發(fā)送控制裝置應(yīng)用于視頻網(wǎng)關(guān)時輸出模塊213的結(jié)構(gòu)示意圖,如圖8所示,輸 出模塊213包括判斷子模塊、命令生成子模塊、用于緩存發(fā)送命令的發(fā)送命令 隊列,命令解析子模塊、用于緩存發(fā)送前待處理數(shù)據(jù)如待圖像處理數(shù)據(jù)的數(shù)據(jù) 隊列、數(shù)據(jù)處理子模塊和多路復(fù)用器。其中,
判斷子模塊,用于判斷調(diào)度模塊212確定的當(dāng)前數(shù)據(jù)出口單元的空閑位長 度是否大于或等于當(dāng)前數(shù)據(jù)出口單元的待發(fā)送數(shù)據(jù)的長度,并在判定結(jié)果為是 的情況下,通知命令生成子模塊;
命令生成子模塊,用于生成待發(fā)送數(shù)據(jù)的發(fā)送命令,將發(fā)送命令緩存到發(fā) 送命令隊列中,其中,發(fā)送命令中包括待發(fā)送數(shù)據(jù)的存儲地址和數(shù)據(jù)長度。
命令解析子模塊,用于依次處理發(fā)送命令隊列中的發(fā)送命令,將根據(jù)發(fā)送 命令獲取的待發(fā)送數(shù)據(jù)緩存到數(shù)據(jù)隊列中;
數(shù)據(jù)子處理模塊,用于依次對數(shù)據(jù)隊列中的待發(fā)送數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,例 如圖像處理,然后將經(jīng)過數(shù)據(jù)處理的待發(fā)送數(shù)據(jù)通過多路復(fù)用器發(fā)送到相應(yīng)VP的TXQ中,等待發(fā)送。
綜上所述,以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的 保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改 進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種數(shù)據(jù)輸出控制方法,其特征在于,該方法包括獲取數(shù)據(jù)出口對應(yīng)的緩存隊列的空閑位長度;在獲取的空閑位長度大于或等于所述數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)的長度時,將所述待發(fā)送數(shù)據(jù)調(diào)度到所述數(shù)據(jù)出口對應(yīng)的緩存隊列中。
2、 如權(quán)利要求l所述的方法,其特征在于,所述數(shù)據(jù)出口對應(yīng)的緩存隊列 的空閑位長度用令牌桶中的令牌數(shù)目表示,具體包括為所述數(shù)據(jù)出口設(shè)置令牌桶;對所述數(shù)據(jù)出口的實際發(fā)送數(shù)據(jù)量進(jìn)行計數(shù),在每次計數(shù)值達(dá)到預(yù)設(shè)閾值 時,向所述令牌桶注入與所述預(yù)設(shè)閾值相等的令牌數(shù)目;所述將所述待發(fā)送數(shù)據(jù)調(diào)度到所述數(shù)據(jù)出口對應(yīng)的緩存隊列中之后,進(jìn)一 步包括從所述令牌桶中減去與被調(diào)度的待發(fā)送數(shù)據(jù)長度相等的令牌數(shù)目。
3、 一種數(shù)據(jù)輸出控制方法,其特征在于,該方法包括 獲取各數(shù)據(jù)出口對應(yīng)的緩存隊列的空閑位長度;根據(jù)各個等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口對應(yīng)的空閑位長度,確定當(dāng)前數(shù)據(jù)出口 ; 所述當(dāng)前數(shù)據(jù)出口的空閑位長度大于或等于該當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)長 度;將所述當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù)出口對應(yīng)的緩存隊列中。
4、 如權(quán)利要求3所述的方法,其特征在于,所述各數(shù)據(jù)出口對應(yīng)的緩存隊 列的空閑位長度用令牌桶中的令牌數(shù)目表示,具體包括為每個數(shù)據(jù)出口對應(yīng)設(shè)置令牌桶;對各數(shù)據(jù)出口的實際發(fā)送數(shù)據(jù)量進(jìn)行計數(shù),在每次計數(shù)值達(dá)到預(yù)設(shè)閾值時, 向發(fā)送數(shù)據(jù)量達(dá)到預(yù)設(shè)闞值的數(shù)據(jù)出口的令牌桶注入與預(yù)設(shè)閾值相等的令牌數(shù) 目5所述將當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù)出口對應(yīng)的緩存隊列中之后,進(jìn)一步包括從所述當(dāng)前數(shù)據(jù)出口對應(yīng)的令牌桶中減去與被調(diào)度的待 發(fā)送數(shù)據(jù)長度相等的令牌數(shù)目。
5、 如權(quán)利要求3所述的方法,其特征在于,所述確定當(dāng)前數(shù)據(jù)出口具體為 按照空閑位長度從長到短的順序,對各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口進(jìn)行排序,得到空閑位長度最長的數(shù)據(jù)出口 ;如果當(dāng)前所述空閑位最長的數(shù)據(jù)出口對應(yīng)的空閑位長度大于或等于其待發(fā) 送數(shù)據(jù)的長度,則將該空閑位最長的數(shù)據(jù)出口確定為所述當(dāng)前數(shù)據(jù)出口。
6、 如權(quán)利要求5所述的方法,其特征在于,該方法進(jìn)一步包括在所述空 閑位最長的數(shù)據(jù)出口對應(yīng)的空閑位長度小于其待發(fā)送數(shù)量的長度時,返回執(zhí)行 所述對各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口進(jìn)行排序的操作。
7、 如權(quán)利要求3所述的方法,其特征在于,所述確定當(dāng)前數(shù)據(jù)出口具體為 從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空閑位長度大于或等于待發(fā)送數(shù)據(jù)長度的婆U居出口;按照空閑位長度從長到短的順序,對獲取的各數(shù)據(jù)出口進(jìn)行排序,將空閑 位長度最長者確定為所述當(dāng)前數(shù)據(jù)出口 。
8、 如權(quán)利要求7所述的方法,其特征在于,所述將當(dāng)前數(shù)據(jù)出口的待發(fā)送 數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù)出口對應(yīng)的緩存隊列中之后,該方法進(jìn)一步包括返回執(zhí)行所述從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空閑位長度大于或等 于待發(fā)送數(shù)據(jù)長度的數(shù)據(jù)出口的步驟;或者,按所排順序,將除所述空閑位長度最長者以外的其他數(shù)據(jù)出口依次 作為所述當(dāng)前數(shù)據(jù)出口 ,將當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù)出口 對應(yīng)的緩存隊列中,然后返回執(zhí)行所述從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取 空閑位長度大于或等于待發(fā)送數(shù)據(jù)長度的數(shù)據(jù)出口的步驟。
9、 如權(quán)利要求3所述的方法,其特征在于,所述確定當(dāng)前數(shù)據(jù)出口具體為 從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空閑位長度大于或等于待發(fā)送數(shù)據(jù)長度的iy居出口;計算獲取的各數(shù)據(jù)出口的空閑位長度與待發(fā)送數(shù)據(jù)長度之間的差值;按照差值從大到小的順序,對所獲取的各數(shù)據(jù)出口進(jìn)行排序,將差值最大者確定為所述當(dāng)前邀:據(jù)出口。
10、 如權(quán)利要求9所述的方法,其特征在于,所述將當(dāng)前數(shù)據(jù)出口的待發(fā) 送數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù)出口對應(yīng)的緩存隊列中之后,該方法進(jìn)一步包括返回執(zhí)行所述從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空閑位長度大于或等 于待發(fā)送數(shù)據(jù)長度的數(shù)據(jù)出口的步驟;或者,按所排順序,將除所述差值最大者以外的各數(shù)據(jù)出口依次作為所述 當(dāng)前數(shù)據(jù)出口 ,將當(dāng)前數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù)出口對應(yīng)的緩 存隊列中,然后返回執(zhí)行所述從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空閑位長 度大于或等于待發(fā)送數(shù)據(jù)長度的數(shù)據(jù)出口的步驟。
11、 一種數(shù)據(jù)輸出控制裝置,其特征在于該裝置包括輸出控制單元和 數(shù)據(jù)出口單元;所述輸出控制單元,用于獲取所述數(shù)據(jù)出口單元中緩存隊列的空閑位長度, 在所述空閑位長度大于或等于所述數(shù)據(jù)出口單元的待發(fā)送數(shù)據(jù)的長度時,將所 述待發(fā)送數(shù)據(jù)調(diào)度到所述數(shù)據(jù)出口單元的緩存隊列中;所述數(shù)據(jù)出口單元,用于向外部發(fā)送緩存在其緩存隊列中的數(shù)據(jù)。
12、 如權(quán)利要求11所述的裝置,其特征在于,所述數(shù)據(jù)出口單元包括數(shù)據(jù) 出口、緩存隊列、計數(shù)器和脈沖生成器;所述計數(shù)器,用于對所述數(shù)據(jù)出口發(fā)送的數(shù)據(jù)量進(jìn)行計數(shù),當(dāng)計數(shù)值達(dá)到 預(yù)設(shè)閾值時,通知脈沖生成器,并從零開始計數(shù);所述脈沖生成器,用于在接到通知后,生成脈沖并反^t貴給所述輸出控制單元;所述數(shù)據(jù)出口,用于向所在裝置外部發(fā)送數(shù)據(jù);所述緩存隊列,用于緩存來自輸出控制單元的等待向所在裝置外部發(fā)送的 數(shù)據(jù);所述輸出控制單元,進(jìn)一步用于設(shè)置表示所述空閑位長度的令牌桶;在接 收到所述脈沖后,向所述令牌桶注入與所述閾值相等的令牌數(shù)目,在將所述待發(fā)送數(shù)據(jù)調(diào)度到所述數(shù)據(jù)出口單元的緩存隊列中時,從所述令牌桶中減去與被 調(diào)度的待發(fā)送數(shù)據(jù)長度相等的令牌數(shù)目。
13、 一種數(shù)據(jù)輸出控制裝置,其特征在于該裝置包括輸出控制單元和 多個數(shù)據(jù)出口單元;所述輸出控制單元,用于獲取各數(shù)據(jù)出口單元中緩存隊列的空閑位長度, 根據(jù)各個等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口單元對應(yīng)的空閑位長度,確定當(dāng)前數(shù)據(jù)出口單元;將所述當(dāng)前數(shù)據(jù)出口單元的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng)前數(shù)據(jù)出口的緩存隊 列中;其中,所述當(dāng)前數(shù)據(jù)出口的空閑位長度大于或等于所述當(dāng)前數(shù)據(jù)出口的 待發(fā)送數(shù)據(jù)長度;所述數(shù)據(jù)出口單元,用于向外部發(fā)送緩存在其緩存隊列中的li:據(jù)。
14、 如權(quán)利要求13所述的裝置,其特征在于,所述輸出控制單元包括空閑 位獲取模塊、調(diào)度模塊和輸出模塊;所述空閑位獲取模塊,用于根據(jù)各數(shù)據(jù)出口單元反饋的流量信息,獲取各 數(shù)據(jù)出口單元中緩存隊列的空閑位長度,并提供給所述調(diào)度模塊;所述調(diào)度模塊,用于根據(jù)所述空閑位獲取模塊獲取的空閑位長度,確定當(dāng) 前數(shù)據(jù)出口單元;所述當(dāng)前數(shù)據(jù)出口單元的空閑位長度大于或等于所述當(dāng)前數(shù) 據(jù)出口的待發(fā)送數(shù)據(jù)長度;所述輸出模塊,用于將所述當(dāng)前數(shù)據(jù)出口單元的待發(fā)送數(shù)據(jù)調(diào)度到該當(dāng)前 數(shù)據(jù)出口單元的緩存隊列中;所述數(shù)據(jù)出口單元進(jìn)一步用于向輸出控制單元反饋流量信息。
15、 如權(quán)利要求14所述的裝置,其特征在于,所述調(diào)度模塊包括排序子模 塊和確定子模塊;所述排序子模塊,用于按照空閑位長度從長到短的順序,對各等待發(fā)送數(shù) 據(jù)的數(shù)據(jù)出口進(jìn)行排序,得到空閑位長度最長的數(shù)據(jù)出口 ;所述確定子模塊,用于在所述排序子模塊得到的所述空閑位最長的數(shù)據(jù)出 口對應(yīng)的空閑位長度大于或等于其待發(fā)送數(shù)據(jù)長度時,將空閑位最長的數(shù)據(jù)出 口確定為所述當(dāng)前#:據(jù)出口 。
16、 如權(quán)利要求14所述的裝置,其特征在于,所述調(diào)度模塊包括排序子模 塊和確定子模塊;所述排序子模塊,用于從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空閑位長度 大于或等于待發(fā)送數(shù)據(jù)長度的數(shù)據(jù)出口;按照空閑位長度從長到短的順序,對 獲取的各數(shù)據(jù)出口進(jìn)行排序;所述確定子模塊,用于根據(jù)所述排序子模塊的排序結(jié)果,將空閑位長度最 長的數(shù)據(jù)出口確定為所述當(dāng)前數(shù)據(jù)出口 。
17、 如權(quán)利要求14所述的裝置,其特征在于,所述調(diào)度模塊包括排序子模 塊和確定子模塊;所述排序子模塊,用于從各等待發(fā)送數(shù)據(jù)的數(shù)據(jù)出口中,獲取空閑位長度 大于或等于待發(fā)送數(shù)據(jù)長度的數(shù)據(jù)出口 ;計算獲取的各數(shù)據(jù)出口的空閑位長度 與其待發(fā)送數(shù)據(jù)長度之間的差值;按照差值從大到小的順序,對獲取的各數(shù)據(jù) 出口進(jìn)行排序;所述確定子模塊,用于根據(jù)所述排序子模塊的排序結(jié)果,將差值最大的數(shù) 據(jù)出口確定為所述當(dāng)前凄史據(jù)出口。
18、 如權(quán)利要求14所述的裝置,其特征在于,所述數(shù)據(jù)出口單元包括數(shù)據(jù) 出口、緩存隊列、計^t器和脈沖生成器;所述計數(shù)器,用于對所述數(shù)據(jù)出口發(fā)送的數(shù)據(jù)進(jìn)行計數(shù),當(dāng)計數(shù)值達(dá)到預(yù) 設(shè)閾值時,通知脈沖生成器,并從零開始計數(shù);所述脈沖生成器,用于在接到通知后,生成脈沖,作為所述流量信息反饋 給輸出控制單元;所述數(shù)據(jù)出口,用于向所在裝置外部發(fā)送數(shù)據(jù);所述緩存隊列,用于緩存來自輸出控制單元的等待向所在裝置外部發(fā)送的 數(shù)據(jù);所述空閑位獲取模塊包括對應(yīng)每個數(shù)據(jù)出口單元的令牌桶和令牌桶維護(hù)子 模塊;所述令牌桶維護(hù)子模塊,用于在接收到脈沖后,向發(fā)送該脈沖的數(shù)據(jù)出口單元的令牌桶中注入與所述閾值相等的令牌,將各數(shù)據(jù)出口單元的令牌數(shù)目作 為空閑位長度提供給所述調(diào)度模塊;在所述輸出模塊將所述待發(fā)送數(shù)據(jù)調(diào)度到 當(dāng)前數(shù)據(jù)出口單元的緩存隊列中時,從當(dāng)前數(shù)據(jù)出口單元的令牌桶中減去與被 調(diào)度的待發(fā)送數(shù)據(jù)長度相等的令牌數(shù)目。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)輸出控制方法,該方法包括獲取數(shù)據(jù)出口對應(yīng)的緩存隊列的空閑位長度;在獲取的空閑位長度大于或等于所述數(shù)據(jù)出口的待發(fā)送數(shù)據(jù)的長度時,將所述待發(fā)送數(shù)據(jù)調(diào)度到所述數(shù)據(jù)出口對應(yīng)的緩存隊列中。本發(fā)明還公開了另一種數(shù)據(jù)輸出控制方法和兩種數(shù)據(jù)輸出控制裝置。使用本發(fā)明能夠避免斷流現(xiàn)象的發(fā)生。
文檔編號H04L12/56GK101286947SQ200810114079
公開日2008年10月15日 申請日期2008年5月30日 優(yōu)先權(quán)日2008年5月30日
發(fā)明者侯新宇, 強(qiáng) 劉, 晉兆虎 申請人:杭州華三通信技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
屏南县| 枣强县| 潼关县| 尼勒克县| 手游| 饶阳县| 闵行区| 咸宁市| 资阳市| 通山县| 彭泽县| 泸西县| 广宁县| 石河子市| 许昌县| 塔城市| 博爱县| 重庆市| 莱阳市| 贵港市| 盘锦市| 延吉市| 昭觉县| 迁安市| 昭苏县| 莱阳市| 禄劝| 松滋市| 米易县| 巴彦淖尔市| 遂平县| 昭苏县| 武宁县| 阜平县| 林西县| 北安市| 昭平县| 长子县| 浠水县| 台中县| 永胜县|