專(zhuān)利名稱(chēng):隨機(jī)先期檢測(cè)裝置及其硬件實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種IP通訊技術(shù),具體說(shuō),涉及一種QOS(服務(wù)質(zhì)量)中隨機(jī)先期檢測(cè)裝置及其硬件實(shí)現(xiàn)方法。
背景技術(shù):
近年來(lái),隨著信息技術(shù)的迅猛發(fā)展、網(wǎng)絡(luò)應(yīng)用的大量增加,使得原來(lái)已經(jīng)存在的、龐大的數(shù)據(jù)傳輸量成倍增長(zhǎng)。而優(yōu)化帶寬是滿(mǎn)足數(shù)據(jù)傳輸量增長(zhǎng)的重要手段。擁塞控制是優(yōu)化帶寬的重要通信手段。TCP基于窗口的端到端的擁塞控制對(duì)于Internet的穩(wěn)定性起到了關(guān)鍵作用,但是隨著Internet的迅猛發(fā)展,其網(wǎng)絡(luò)規(guī)模越來(lái)越龐大,結(jié)構(gòu)日益復(fù)雜,僅僅依靠端到端的擁塞控制是不夠的,網(wǎng)絡(luò)必須參與資源的控制工作。
隨機(jī)先期檢測(cè)(REDRandom Early Detection)監(jiān)視網(wǎng)上各點(diǎn)的通信負(fù)載,如果擁塞增多,就隨機(jī)丟棄一些分組,丟棄的結(jié)果是信息源將發(fā)現(xiàn)有流量丟失,從而降低其傳輸速率。RED主要是在IP互連網(wǎng)環(huán)境中與TCP協(xié)議共用。它可以在各連接之間獲得較好的公平性,對(duì)突發(fā)業(yè)務(wù)適應(yīng)性強(qiáng)。避免網(wǎng)絡(luò)發(fā)生全局同步。
加權(quán)隨機(jī)先期檢測(cè)(WREDWeighted Random Early Detection)是將隨機(jī)先期檢測(cè)與優(yōu)先級(jí)排隊(duì)結(jié)合起來(lái),這種結(jié)合為高優(yōu)先級(jí)分組提供了優(yōu)先通信處理能力。當(dāng)某個(gè)接口開(kāi)始出現(xiàn)擁塞時(shí),它有選擇的丟棄較低優(yōu)先級(jí)的通信,而不是簡(jiǎn)單的隨機(jī)丟棄分組。
現(xiàn)有技術(shù)中的關(guān)于RED的實(shí)現(xiàn)都是基于軟件的實(shí)現(xiàn),例如申請(qǐng)?zhí)朇N200510081707中,通過(guò)軟件實(shí)現(xiàn)RED,但是降低了網(wǎng)絡(luò)處理器或者CPU的處理能力,而且?guī)捰邢?,同時(shí)影響了其他業(yè)務(wù)的處理。
發(fā)明內(nèi)容
本發(fā)明所解決的技術(shù)問(wèn)題是提供一種隨機(jī)先期檢測(cè)裝置,可以實(shí)現(xiàn)RED算法的硬件實(shí)現(xiàn),提高了計(jì)算速度和處理帶寬。
技術(shù)方案如下一種隨機(jī)先期檢測(cè)裝置,包括數(shù)據(jù)接口模塊,用于接收數(shù)據(jù)流,并提取數(shù)據(jù)流標(biāo)識(shí),所述數(shù)據(jù)流標(biāo)識(shí)用作外掛的管理存儲(chǔ)器的索引;調(diào)取RED判斷模塊的判斷結(jié)果,將判斷結(jié)果是丟棄的當(dāng)前分組丟棄,或者將判斷結(jié)果為接收的當(dāng)前分組發(fā)送到分組存儲(chǔ)器控制模塊;管理存儲(chǔ)器控制模塊,和所述數(shù)據(jù)接口模塊接口,用于管理外掛的所述管理存儲(chǔ)器;RED判斷模塊,分別與所述數(shù)據(jù)接口模塊、管理存儲(chǔ)器控制模塊接口,以當(dāng)前的數(shù)據(jù)流標(biāo)識(shí)作為索引,調(diào)取外掛的所述管理存儲(chǔ)器中與當(dāng)前分組相關(guān)的信息,并通過(guò)該信息得出對(duì)所述當(dāng)前分組的判斷結(jié)果,所述判斷結(jié)果為丟棄或者接收,將判斷結(jié)果保存;分組存儲(chǔ)器控制模塊,與所述數(shù)據(jù)接口模塊接口,用于將判斷結(jié)果為接收的當(dāng)前分組寫(xiě)入到外掛的分組存儲(chǔ)器中。
優(yōu)選的,所述RED計(jì)算所需的信息包括當(dāng)前RED計(jì)算所需的參數(shù)及上一次RED計(jì)算的結(jié)果,所述RED判斷模塊用于生成起始脈沖。
優(yōu)選的,所述RED判斷模塊的判斷結(jié)果和數(shù)據(jù)數(shù)據(jù)流標(biāo)識(shí)保存在結(jié)果FIFO中。
優(yōu)選的,所述管理存儲(chǔ)器用于存儲(chǔ)與每個(gè)數(shù)據(jù)流相關(guān)的RED計(jì)算需要的配置參數(shù)、分組長(zhǎng)度或者中間計(jì)算結(jié)果。
本發(fā)明所解決的另一個(gè)技術(shù)問(wèn)題是提供一種隨機(jī)先期檢測(cè)的硬件實(shí)現(xiàn)方法,可以有效地節(jié)省硬件資源,提高計(jì)算速度和處理帶寬。
技術(shù)方案如下一種隨機(jī)先期檢測(cè)的硬件實(shí)現(xiàn)方法,步驟包括
(1)數(shù)據(jù)接口模塊接收數(shù)據(jù)流,根據(jù)數(shù)據(jù)流標(biāo)識(shí)字段提取數(shù)據(jù)流標(biāo)識(shí),并將該數(shù)據(jù)流標(biāo)識(shí)作為索引,將當(dāng)前分組相關(guān)的信息寫(xiě)入外部的管理存儲(chǔ)器;(2)RED判斷模塊以所述當(dāng)前數(shù)據(jù)流標(biāo)識(shí)作為索引,從所述管理存儲(chǔ)器獲得當(dāng)前分組相關(guān)的信息,并根據(jù)所述當(dāng)前分組相關(guān)的信息得出判斷結(jié)果,將所述判斷結(jié)果保存;(3)所述數(shù)據(jù)接口模塊讀出所述判斷結(jié)果,如果所述當(dāng)前分組的判斷結(jié)果為丟棄就將所述當(dāng)前分組丟棄,如果所述當(dāng)前分組的判斷結(jié)果為接收,將所述當(dāng)前分組寫(xiě)入外部的分組存儲(chǔ)器。
進(jìn)一步,步驟(1)中,所述當(dāng)前分組相關(guān)的信息包括RED計(jì)算需要的配置參數(shù)、分組長(zhǎng)度、中間計(jì)算結(jié)果,所述管理存儲(chǔ)器的索引從數(shù)據(jù)接口模塊取得。
進(jìn)一步,步驟(2)中,所述判斷結(jié)果根據(jù)當(dāng)前RED計(jì)算所需的參數(shù)及上一次RED計(jì)算的結(jié)果得出。
進(jìn)一步,步驟(2)中,將所述判斷結(jié)果保存在結(jié)果FIFO中。
進(jìn)一步,步驟(2)中,如果當(dāng)前隊(duì)列的深度達(dá)到或超過(guò)隊(duì)列深度的上限,則直接丟棄所述當(dāng)前分組;如果當(dāng)前隊(duì)列的深度大于隊(duì)列深度的下限,則判斷結(jié)果為接收。
進(jìn)一步,步驟(3)中,所述數(shù)據(jù)接口模塊從結(jié)果FIFO中讀出所述判斷結(jié)果,如果所述當(dāng)前分組的判斷結(jié)果為丟棄就將所述當(dāng)前分組丟棄;如果所述當(dāng)前分組的判斷結(jié)果為接收,將所述當(dāng)前分組發(fā)送到分組存儲(chǔ)器控制模塊,所述分組存儲(chǔ)器控制模塊將所述當(dāng)前分組寫(xiě)入外部的分組存儲(chǔ)器。
采用本發(fā)明技術(shù)方案可以實(shí)現(xiàn)RED算法的硬件實(shí)現(xiàn),并且提供獨(dú)立的硬件實(shí)現(xiàn)模塊,可以有效地節(jié)省硬件資源,提高計(jì)算速度和處理帶寬,并針對(duì)不同的數(shù)據(jù)流分組提供準(zhǔn)確的計(jì)算結(jié)果。
圖1是本發(fā)明的RED硬件實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖;
圖2是管理存儲(chǔ)器存儲(chǔ)結(jié)構(gòu)示意圖;圖3是RED判斷模塊的輸入接口時(shí)序;圖4是RED判斷模塊的輸出接口時(shí)序;圖5是RED判斷模塊的實(shí)現(xiàn)邏輯流程圖。
具體實(shí)施例方式
下面參照附圖,對(duì)本發(fā)明的優(yōu)選實(shí)施例做詳細(xì)描述。
參照?qǐng)D1所示,對(duì)本發(fā)明的RED硬件實(shí)現(xiàn)裝置做詳細(xì)描述。
RED硬件實(shí)現(xiàn)裝置包括數(shù)據(jù)接口模塊、管理存儲(chǔ)器控制模塊、RED判斷模塊、分組存儲(chǔ)器控制模塊。
數(shù)據(jù)接口模塊是數(shù)據(jù)流的總線(xiàn)接口,負(fù)責(zé)接收數(shù)據(jù)流,并提取數(shù)據(jù)流標(biāo)識(shí),作為管理存儲(chǔ)器的索引,并根據(jù)RED判斷模塊的計(jì)算結(jié)果將分組丟棄或?qū)⒎纸M存入外部的分組存儲(chǔ)器中。
管理存儲(chǔ)器控制模塊是外掛的管理存儲(chǔ)器的控制裝置,用來(lái)管理該管理存儲(chǔ)器的寫(xiě)入和讀出。
管理存儲(chǔ)器用來(lái)存儲(chǔ)與每個(gè)數(shù)據(jù)流相關(guān)的RED計(jì)算所需要的配置參數(shù)、分組長(zhǎng)度、中間計(jì)算結(jié)果等信息,管理存儲(chǔ)器的索引從數(shù)據(jù)接口模塊取得。
RED判斷模塊用于判斷每個(gè)數(shù)據(jù)流的當(dāng)前分組是應(yīng)該接收還是丟棄,判斷過(guò)程中所需的參數(shù)及中間結(jié)果從外掛的管理存儲(chǔ)器中讀出,將判斷結(jié)果存儲(chǔ)在結(jié)果FIFO(First In First Out)中。FIFO是一種具有先進(jìn)先出存儲(chǔ)功能的部件。
分組存儲(chǔ)器控制模塊負(fù)責(zé)將RED判斷模塊的判斷結(jié)果是接收的分組寫(xiě)入到外掛的分組存儲(chǔ)器當(dāng)中去。
RED硬件實(shí)現(xiàn)裝置中,數(shù)據(jù)接口模塊分別與管理存儲(chǔ)器控制模塊、RED判斷模塊和分組存儲(chǔ)器控制模塊接口,管理存儲(chǔ)器控制模塊分別與數(shù)據(jù)接口模塊、RED判斷模塊接口,RED判斷模塊分別與管理存儲(chǔ)器控制模塊、數(shù)據(jù)接口模塊接口。
RED算法的硬件實(shí)現(xiàn)的處理方法包括以下步驟步驟A、數(shù)據(jù)接口模塊接收數(shù)據(jù)包,根據(jù)數(shù)據(jù)流標(biāo)識(shí)字段提取數(shù)據(jù)流標(biāo)識(shí),并作為索引將RED計(jì)算需要的當(dāng)前分組的包長(zhǎng)等信息寫(xiě)入外部的管理存儲(chǔ)器中。
步驟B、以當(dāng)前數(shù)據(jù)流標(biāo)識(shí)作為索引從管理存儲(chǔ)器控制模塊獲得當(dāng)前RED計(jì)算所需的參數(shù)及上一次計(jì)算的結(jié)果,并生成一個(gè)分組判斷的起始標(biāo)志。
步驟C、RED判斷模塊根據(jù)從管理存儲(chǔ)器獲得的與該分組相關(guān)的參數(shù)及上一次計(jì)算結(jié)果,計(jì)算出當(dāng)前分組是丟棄還是接收,將丟棄和接收作為判斷結(jié)果存儲(chǔ)在一個(gè)結(jié)果FIFO中。
步驟D、數(shù)據(jù)控制模塊從結(jié)果FIFO中讀出判斷結(jié)果,如果判斷結(jié)果為丟棄就將當(dāng)前分組丟棄,如果判斷結(jié)果為接收,就將當(dāng)前分組通過(guò)分組存儲(chǔ)器控制模塊寫(xiě)入外部的分組存儲(chǔ)器中。
參照?qǐng)D2所示,管理存儲(chǔ)器存儲(chǔ)結(jié)構(gòu)做詳細(xì)描述。
管理存儲(chǔ)器用來(lái)存儲(chǔ)每個(gè)數(shù)據(jù)流對(duì)應(yīng)的RED計(jì)算的配置參數(shù)及上一次計(jì)算的中間結(jié)果,假設(shè)有n個(gè)數(shù)據(jù)流。
每個(gè)數(shù)據(jù)流的存儲(chǔ)結(jié)構(gòu)中,Q為隊(duì)列的當(dāng)前占用深度,Q_max為隊(duì)列的占用深度的上限,MAXth為RED計(jì)算的上限值,MINth為RED計(jì)算的下限值,AVG為當(dāng)前隊(duì)列的平均深度,MAXp為用戶(hù)配置的max_p經(jīng)過(guò)軟件轉(zhuǎn)換后的值,Wq為用戶(hù)配置的wq經(jīng)過(guò)軟件轉(zhuǎn)換后的值,count為上一次計(jì)算后得到的已接收分組的個(gè)數(shù),random為上一次計(jì)算得到的偽隨機(jī)值。管理存儲(chǔ)器的索引根據(jù)數(shù)據(jù)接口模塊中的數(shù)據(jù)流標(biāo)識(shí)獲得。
數(shù)據(jù)接口模塊接收分組數(shù)據(jù)流,單獨(dú)提供一個(gè)結(jié)果FIFO,該結(jié)果FIFO用于存儲(chǔ)數(shù)據(jù)數(shù)據(jù)流標(biāo)識(shí)和分組包長(zhǎng)等信息,并以此數(shù)據(jù)流標(biāo)識(shí)作為管理存儲(chǔ)器的索引,獲得與該數(shù)據(jù)流相關(guān)的RED計(jì)算參數(shù)和上一次計(jì)算的中間結(jié)果供本次計(jì)算使用,并生成一個(gè)起始脈沖。RED判斷模塊的輸入接口時(shí)序見(jiàn)圖3,不同的分組可以以流水線(xiàn)的方式依次進(jìn)入RED判斷模塊,有效提高了處理帶寬。
RED判斷模塊按照?qǐng)D3所示的接口時(shí)序獲得計(jì)算所需的配置參數(shù)和上一次的計(jì)算結(jié)果,按照?qǐng)D5所示的流程以流水線(xiàn)的方式進(jìn)行一個(gè)分組的一次計(jì)算。RED判斷模塊得到的判斷結(jié)果以圖4所示的時(shí)序?qū)懭胍粋€(gè)結(jié)果FIFO中,判斷結(jié)果如果是丟棄,指示是尾部丟棄還是RED丟棄。
參照?qǐng)D5所示,對(duì)以流水線(xiàn)的方式進(jìn)行一個(gè)分組的一次計(jì)算過(guò)程做詳細(xì)描述。
步驟S501接收分組數(shù)據(jù)流。
數(shù)據(jù)接口模塊是數(shù)據(jù)流的總線(xiàn)接口,負(fù)責(zé)接收數(shù)據(jù)流,并提取數(shù)據(jù)流標(biāo)識(shí),作為管理存儲(chǔ)器的索引。
步驟S502計(jì)算平均隊(duì)列長(zhǎng)度。
RED判斷模塊以當(dāng)前數(shù)據(jù)流標(biāo)識(shí)作為索引通過(guò)管理存儲(chǔ)器控制模塊從管理存儲(chǔ)器獲得當(dāng)前RED計(jì)算所需的參數(shù)及上一次計(jì)算的結(jié)果,并生成一個(gè)分組判斷的起始標(biāo)志。
隊(duì)列長(zhǎng)度單位為字節(jié),計(jì)算公式如下AVG=AVG+Wq(Q-AVG)其中,AVG為平均隊(duì)列深度,單位為字節(jié),Q為當(dāng)前隊(duì)列深度,單位為字節(jié),Wq=1/2n為計(jì)算平均隊(duì)列的權(quán)重,其中n的取值范圍為{1,2,3,...,m}。
例如,我們?nèi)為18,為方便硬件實(shí)現(xiàn)及提高計(jì)算精度,避免浮點(diǎn)運(yùn)算,將上面公式兩邊各乘以218,得到218*AVG=218*AVG+218*Wq(Q-AVG)218*Wq根據(jù)用戶(hù)對(duì)某個(gè)流的設(shè)置,由軟件做中間轉(zhuǎn)換,提供給該硬件實(shí)現(xiàn)模塊一個(gè)配置值Wq`=218*Wq,作為流的一個(gè)參數(shù)。
從而上面公式可以變換成218*AVG=218*AVG+Wq`*(Q-AVG)這樣,上面公式的右邊對(duì)于硬件實(shí)現(xiàn)來(lái)說(shuō),可以由一個(gè)移位運(yùn)算、一個(gè)乘法運(yùn)算、兩個(gè)加法運(yùn)算完成,得到218*AVG的結(jié)果,取其高18位進(jìn)而得到平均隊(duì)列深度AVG的值。
步驟S503判斷當(dāng)前隊(duì)列的深度是否達(dá)到或超過(guò)隊(duì)列深度的上限,根據(jù)得到的平均隊(duì)列深度判斷是否丟棄當(dāng)前分組,MINth、MAXth是為每個(gè)流配置的平均隊(duì)列的上、下限。
如果達(dá)到或超過(guò)這個(gè)上限,則執(zhí)行步驟S504,直接丟棄該分組,不做后續(xù)計(jì)算;如果未達(dá)到設(shè)置的上限,則執(zhí)行步驟S505,計(jì)算當(dāng)前數(shù)據(jù)流對(duì)應(yīng)的隊(duì)列的平均隊(duì)列長(zhǎng)度。
步驟S504當(dāng)AVG>MAXth時(shí),直接丟棄當(dāng)前分組(數(shù)據(jù)包),COUNT減1(COUNT<=-1)。
步驟S505判斷AVG是否小于MINth。
當(dāng)AVG<MINth時(shí),執(zhí)行步驟S506,否則執(zhí)行步驟S507。
步驟S506當(dāng)AVG<MINth時(shí),將當(dāng)前分組(數(shù)據(jù)包)入隊(duì),COUNT減1(COUNT<=-1)。
步驟S507當(dāng)MINth<AVG<MAXth時(shí),計(jì)算當(dāng)前分組的丟棄概率(計(jì)算丟包概率),給COUNT自加1(COUNT<=COUNT+1,即COUNT=COUNT+1)。
丟棄概率Pb=AGV*MAXp/(MAXth-MINth)-MAXp*MINth/(MAXth-MINth)。
考慮一個(gè)分組的長(zhǎng)度因素的分組丟棄概率,則Pb`=Pb*PacketSize/MaxPacketSize令Pa=Pb`/(1-COUNT*Pb`)COUNT表示一個(gè)分組被丟棄以后,到下一個(gè)分組被丟棄時(shí)已經(jīng)到達(dá)的分組數(shù)。
假設(shè)x表示一個(gè)分組被丟棄以后,到下一個(gè)分組被丟棄時(shí)已經(jīng)到達(dá)的分組數(shù),當(dāng)分組以概率Pa被丟棄時(shí),則x是服從離散均勻分布的,如果令x的分布函數(shù)F(x)=Y(jié),那么Y~U(0,1),這樣我們可以先產(chǎn)生服從U(0,1)的隨機(jī)數(shù)R,并且令R=F(n)=nPb`,那么有n=R/Pb`。也就是說(shuō),當(dāng)上一個(gè)分組被丟棄以后,后面的第n個(gè)分組如果滿(mǎn)足n>=[R/Pb`],則該分組就會(huì)被丟棄,同時(shí)產(chǎn)生一個(gè)新的隨機(jī)數(shù)作為下一次判斷的條件。
步驟S508判斷條件n>=[R/Pb`](COUNT>=[R/Pb`])是否滿(mǎn)足。
如果條件滿(mǎn)足執(zhí)行步驟S509,否則執(zhí)行步驟S510。
根據(jù)n>=[R/Pb`]這個(gè)判斷條件,將上面的公式代入,我們可以得到一個(gè)比較運(yùn)算R*MaxPacketSize*(MAXth-MINth)<MAXp*PacketSize*(AVG-MINth)*COUNT,其中MAXp用戶(hù)設(shè)置范圍為1~100,而其應(yīng)該是一個(gè)百分比概率,將其移到公式左邊,得到R*MaXPacketSize*(MAXth-MINth)/MAXp<PacketSize*(AVG-MINth)*COUNT,其中,MaxPacketSize*(MAXth-MINth)/MAXp可由軟件中間轉(zhuǎn)換作為與一個(gè)流相關(guān)的配置提供給該硬件實(shí)現(xiàn)模塊,令config_par=MaxPacketSize*(MAXth-MINth)/MAXp,則上面公式簡(jiǎn)化為R*config_par<PacketSize*(AVG-MINth)*COUNT,考慮到隨機(jī)數(shù)的生成方便,隨機(jī)數(shù)的取值范圍定為0-1023,這樣上面公式的兩邊各乘以1024,得到R*1024*config_ar<PacketSize*(AVG-MINth)*COUNT*1024,令R`=R*1024為
上的隨機(jī)數(shù),這樣得到R`*config_Par<PacketSize*(AVG-MINth)*COUNT*1024,上面公式左邊為一個(gè)乘法運(yùn)算,右邊為兩個(gè)乘法運(yùn)算,一個(gè)加法運(yùn)算,一個(gè)移位運(yùn)算,這樣就可以方便地由硬件實(shí)現(xiàn)了。
步驟S509如果滿(mǎn)足COUNT>=[R/Pb`],則丟棄該數(shù)據(jù)包。
如果判斷結(jié)果為丟棄,則COUNT的值為-1,下一次計(jì)算丟棄概率的時(shí)候需要重新生成一個(gè)偽隨機(jī)值。
隨機(jī)數(shù)的生成可以使用一個(gè)10位的線(xiàn)性移位寄存器(LSFR)實(shí)現(xiàn),產(chǎn)生
上的服從均勻分布的偽隨機(jī)數(shù),10級(jí)m序列,產(chǎn)生相同長(zhǎng)度m序列的反饋結(jié)構(gòu)不是唯一的,由所對(duì)應(yīng)的不同本原多項(xiàng)式?jīng)Q定。
乘法器的實(shí)現(xiàn)采用pipeline的方式為了提高計(jì)算的速度,根據(jù)乘法器的位寬的不同,計(jì)算的延遲不同。每一步計(jì)算需要在流水線(xiàn)操作中需要根據(jù)乘法器的延遲做不同的延遲處理,保證以流水線(xiàn)的方式準(zhǔn)確的對(duì)每個(gè)分組進(jìn)行RED判斷。
步驟S510入隊(duì)該數(shù)據(jù)包。
如果判斷結(jié)果為接收,則COUNT的值加1,保留生成的偽隨機(jī)值以供下次計(jì)算使用。
當(dāng)COUNT=0時(shí),產(chǎn)生新的隨機(jī)數(shù)(R=Random
)。
RED判斷模塊得到的判斷結(jié)果以圖4所示的時(shí)序?qū)懭胍粋€(gè)結(jié)果FIFO中,計(jì)算結(jié)果如果是丟棄,指示是尾部丟棄還是RED丟棄。
最后,數(shù)據(jù)接口模塊從結(jié)果FIFO中讀出RED的判斷結(jié)果,如果判斷結(jié)果為丟棄則將該分組丟棄;如果判斷結(jié)果為接收,則將該分組數(shù)據(jù)通過(guò)分組存儲(chǔ)器控制模塊寫(xiě)入外部的分組存儲(chǔ)器中。
權(quán)利要求
1.一種隨機(jī)先期檢測(cè)裝置,其特征在于,包括數(shù)據(jù)接口模塊,用于接收數(shù)據(jù)流,并提取數(shù)據(jù)流標(biāo)識(shí),所述數(shù)據(jù)流標(biāo)識(shí)用作外掛的管理存儲(chǔ)器的索引;調(diào)取RED判斷模塊的判斷結(jié)果,將判斷結(jié)果是丟棄的當(dāng)前分組丟棄,或者將判斷結(jié)果為接收的當(dāng)前分組發(fā)送到分組存儲(chǔ)器控制模塊;管理存儲(chǔ)器控制模塊,和所述數(shù)據(jù)接口模塊接口,用于管理外掛的所述管理存儲(chǔ)器;RED判斷模塊,分別與所述數(shù)據(jù)接口模塊、管理存儲(chǔ)器控制模塊接口,以當(dāng)前的數(shù)據(jù)流標(biāo)識(shí)作為索引,調(diào)取外掛的所述管理存儲(chǔ)器中與當(dāng)前分組相關(guān)的信息,并通過(guò)該信息得出對(duì)所述當(dāng)前分組的判斷結(jié)果,所述判斷結(jié)果為丟棄或者接收,將判斷結(jié)果保存;分組存儲(chǔ)器控制模塊,與所述數(shù)據(jù)接口模塊接口,用于將判斷結(jié)果為接收的當(dāng)前分組寫(xiě)入到外掛的分組存儲(chǔ)器中。
2.根據(jù)權(quán)利要求1所述的隨機(jī)先期檢測(cè)裝置,其特征在于,所述RED計(jì)算所需的信息包括當(dāng)前RED計(jì)算所需的參數(shù)及上一次RED計(jì)算的結(jié)果,所述RED判斷模塊用于生成起始脈沖。
3.根據(jù)權(quán)利要求1所述的隨機(jī)先期檢測(cè)裝置,其特征在于,所述RED判斷模塊的判斷結(jié)果和數(shù)據(jù)數(shù)據(jù)流標(biāo)識(shí)保存在結(jié)果FIFO中。
4.根據(jù)權(quán)利要求1所述的隨機(jī)先期檢測(cè)裝置,其特征在于,所述管理存儲(chǔ)器用于存儲(chǔ)與每個(gè)數(shù)據(jù)流相關(guān)的RED計(jì)算需要的配置參數(shù)、分組長(zhǎng)度或者中間計(jì)算結(jié)果。
5.一種隨機(jī)先期檢測(cè)的硬件實(shí)現(xiàn)方法,步驟包括(1)數(shù)據(jù)接口模塊接收數(shù)據(jù)流,根據(jù)數(shù)據(jù)流標(biāo)識(shí)字段提取數(shù)據(jù)流標(biāo)識(shí),并將該數(shù)據(jù)流標(biāo)識(shí)作為索引,將當(dāng)前分組相關(guān)的信息寫(xiě)入外部的管理存儲(chǔ)器;(2)RED判斷模塊以所述當(dāng)前數(shù)據(jù)流標(biāo)識(shí)作為索引,從所述管理存儲(chǔ)器獲得當(dāng)前分組相關(guān)的信息,并根據(jù)所述當(dāng)前分組相關(guān)的信息得出判斷結(jié)果,將所述判斷結(jié)果保存;(3)所述數(shù)據(jù)接口模塊讀出所述判斷結(jié)果,如果所述當(dāng)前分組的判斷結(jié)果為丟棄就將所述當(dāng)前分組丟棄,如果所述當(dāng)前分組的判斷結(jié)果為接收,將所述當(dāng)前分組寫(xiě)入外部的分組存儲(chǔ)器。
6.根據(jù)權(quán)利要求5所述的隨機(jī)先期檢測(cè)的硬件實(shí)現(xiàn)方法,其特征在于,步驟(1)中,所述當(dāng)前分組相關(guān)的信息包括RED計(jì)算需要的配置參數(shù)、分組長(zhǎng)度、中間計(jì)算結(jié)果,所述管理存儲(chǔ)器的索引從數(shù)據(jù)接口模塊取得。
7.根據(jù)權(quán)利要求5所述的隨機(jī)先期檢測(cè)的硬件實(shí)現(xiàn)方法,其特征在于,步驟(2)中,所述判斷結(jié)果根據(jù)當(dāng)前RED計(jì)算所需的參數(shù)及上一次RED計(jì)算的結(jié)果得出。
8.根據(jù)權(quán)利要求5所述的隨機(jī)先期檢測(cè)的硬件實(shí)現(xiàn)方法,其特征在于,步驟(2)中,將所述判斷結(jié)果保存在結(jié)果FIFO中。
9.根據(jù)權(quán)利要求5所述的隨機(jī)先期檢測(cè)的硬件實(shí)現(xiàn)方法,其特征在于,步驟(2)中,如果當(dāng)前隊(duì)列的深度達(dá)到或超過(guò)隊(duì)列深度的上限,則直接丟棄所述當(dāng)前分組;如果當(dāng)前隊(duì)列的深度大于隊(duì)列深度的下限,則判斷結(jié)果為接收。
10.根據(jù)權(quán)利要求5所述的隨機(jī)先期檢測(cè)的硬件實(shí)現(xiàn)方法,其特征在于,步驟(3)中,所述數(shù)據(jù)接口模塊從結(jié)果FIFO中讀出所述判斷結(jié)果,如果所述當(dāng)前分組的判斷結(jié)果為丟棄就將所述當(dāng)前分組丟棄;如果所述當(dāng)前分組的判斷結(jié)果為接收,將所述當(dāng)前分組發(fā)送到分組存儲(chǔ)器控制模塊,所述分組存儲(chǔ)器控制模塊將所述當(dāng)前分組寫(xiě)入外部的分組存儲(chǔ)器。
全文摘要
本發(fā)明公開(kāi)了一種隨機(jī)先期檢測(cè)的硬件實(shí)現(xiàn)方法,步驟包括數(shù)據(jù)接口模塊接收數(shù)據(jù)流,根據(jù)數(shù)據(jù)流標(biāo)識(shí)字段提取數(shù)據(jù)流標(biāo)識(shí),并將該數(shù)據(jù)流標(biāo)識(shí)作為索引,將當(dāng)前分組相關(guān)的信息寫(xiě)入外部的管理存儲(chǔ)器;RED判斷模塊以所述當(dāng)前數(shù)據(jù)流標(biāo)識(shí)作為索引,從所述管理存儲(chǔ)器獲得當(dāng)前分組相關(guān)的信息,并根據(jù)所述當(dāng)前分組相關(guān)的信息得出判斷結(jié)果,將所述判斷結(jié)果保存;所述數(shù)據(jù)接口模塊讀出所述判斷結(jié)果,如果所述當(dāng)前分組的判斷結(jié)果為丟棄就將所述當(dāng)前分組丟棄,如果所述當(dāng)前分組的判斷結(jié)果為接收,將所述當(dāng)前分組寫(xiě)入外部的分組存儲(chǔ)器。本發(fā)明還公開(kāi)一種隨機(jī)先期檢測(cè)裝置。本發(fā)明技術(shù)方案可以實(shí)現(xiàn)RED算法的硬件實(shí)現(xiàn),提高計(jì)算速度和處理帶寬。
文檔編號(hào)H04L12/26GK101094188SQ20071013055
公開(kāi)日2007年12月26日 申請(qǐng)日期2007年7月16日 優(yōu)先權(quán)日2007年7月16日
發(fā)明者宋軍輝 申請(qǐng)人:中興通訊股份有限公司