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

支持多隊列的共享緩存動態(tài)門限早期丟棄裝置的制作方法

文檔序號:7628313閱讀:238來源:國知局
專利名稱:支持多隊列的共享緩存動態(tài)門限早期丟棄裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于IP技術(shù)領(lǐng)域。
背景技術(shù)
當前Internet中間節(jié)點設(shè)備,如路由器等,通過對其內(nèi)部的緩存隊列長度的控制,來影響和控制網(wǎng)絡(luò)的擁塞情況。目前見諸于設(shè)備的傳統(tǒng)的緩存隊列管理機制是尾部丟棄(TailDrop)機制對每個隊列設(shè)置一個長度門限,如果隊列長度沒有到達設(shè)定門限,接收所有分組進入隊列;否則丟棄到達的分組。該機制實現(xiàn)簡單,但是存在三個嚴重的缺陷(1)持續(xù)的滿隊列狀態(tài)(Full Queues);(2)業(yè)務(wù)流對緩存的死鎖(Lock Out);(3)業(yè)務(wù)量的全局同步(Global Synchronization);目前普遍認可的方法是加入中間節(jié)點的增強功能主動隊列管理(AQMActive QueueManagement)。即中間節(jié)點需要在網(wǎng)絡(luò)進入擁塞情況之前,預先丟棄部分分組,以使得TCP協(xié)議響應(yīng)來減慢源端的發(fā)送速率,避免擁塞的發(fā)生。在現(xiàn)有的網(wǎng)絡(luò)設(shè)備中被采用的AQM機制是隨機早期檢測(REDRandom Early Detection)方法。但是該機制的主要缺點是(1)參數(shù)的設(shè)定困難,而且其性能敏感于參數(shù)和網(wǎng)絡(luò)情況的變化;(2)需要對每個單隊列設(shè)置參數(shù)和計算,不利于隊列數(shù)目或者網(wǎng)絡(luò)流數(shù)目擴展的情況;(3)RED算法中有很多乘法運算,需要大量資源,很難用硬件高速實現(xiàn)。

發(fā)明內(nèi)容
本發(fā)明的目的在于從硬件的角度提出一種能夠進行高速處理的支持多隊列的共享緩存動態(tài)門限早期丟棄裝置。與目前普遍采用的隨機早期檢測(RED)機制相比,本發(fā)明包含以下幾個部分的特點和內(nèi)容(1)動態(tài)調(diào)整進行分組丟棄的隊列門限值方法。原始的RED算法需設(shè)定一對最大、最小隊列長度的門限的參數(shù),當隊列狀態(tài)處于這一對門限的范圍中時,按照一定的概率丟棄到達分組。由于參數(shù)是預先設(shè)定的,很難滿足多變的網(wǎng)絡(luò)狀況,因而性能會隨著設(shè)定參數(shù)和網(wǎng)絡(luò)情況的變化而變化。本發(fā)明克服RED算法對于參數(shù)設(shè)置和網(wǎng)絡(luò)情況的依賴,動態(tài)調(diào)整進行分組丟棄的一對門限,即根據(jù)每個當前活躍的隊列的平均隊列長度和整個共享緩存區(qū)的平均隊列長度來動態(tài)調(diào)整丟棄控制的閾值。這一機制的基本思想是當網(wǎng)絡(luò)擁塞狀況的趨勢增加,即剩余緩存空間減少時,提前進入分組丟棄的控制階段;而當網(wǎng)絡(luò)擁塞狀況的趨勢減弱,即剩余緩存空間增加時,推遲進入分組丟棄的控制階段。
(2)采用階梯式丟棄曲線方法在硬件中實現(xiàn)分組的丟棄。在動態(tài)確定分組丟棄的范圍之后,需要對進入丟棄控制范圍內(nèi)的到達流的分組進行部分丟棄。對于越靠近最大丟棄門限的流,將丟棄越多的到達分組,相對地,對于越靠近最小丟棄門限的流,將丟棄越少的到達分組。而當該網(wǎng)絡(luò)流超過最大丟棄門限時,完全丟棄到達分組。對于位于丟棄范圍內(nèi)網(wǎng)絡(luò)流的隊列,我們采用如圖3所示的階梯式丟棄曲線來計算應(yīng)該丟棄的分組的比例,從而避免浮點了運算,使得能夠用硬件查表的方式高速實現(xiàn)。
(3)在共享緩存上的多隊列管理機制。隨著目前internet網(wǎng)絡(luò)流的數(shù)目的增加和對各種網(wǎng)絡(luò)流的服務(wù)質(zhì)量要求的提高,在網(wǎng)絡(luò)中間節(jié)點設(shè)備中也要求能夠支持大量的網(wǎng)絡(luò)流的單獨排隊和管理。傳統(tǒng)的方法是事先設(shè)定好隊列數(shù)目和各個隊列的長度。這種方法緩存利用率低,而且不利于隊列數(shù)目的擴展。本發(fā)明在共享緩存上進行不同分組的緩存。在網(wǎng)絡(luò)流到達或者退出中間節(jié)點設(shè)備時,動態(tài)生成或者撤銷隊列。已建立隊列的網(wǎng)絡(luò)流的分組到達時,采用(1)、(2)中所述的方法,判斷是否接納該分組。是,則從空閑的緩存中分配空間連接到其所述的隊列中;否,則直接丟棄。
本發(fā)明的特征在于,該裝置是用FPGA芯片實現(xiàn)的,該FPGA芯片中含有IP分組分割電路、空閑塊管理電路、DDR控制器、流單元計數(shù)電路、隊列調(diào)度電路以及動態(tài)門限早期丟棄電路,其中IP分組分割電路,該電路把到達的變長的IP分組按設(shè)定的流單元長度進行分割,得到定長的流單元,用cell表示,所述IP分組分割電路含有第1個先進先出存儲器設(shè)有IP分組輸入端;計數(shù)器,該計數(shù)器的計數(shù)信號輸入端與所述第1個先進先出存儲器的相應(yīng)輸出端相連;分路器,該分路器有兩個輸入端一個輸入端與所述第1個先進先出存儲器的IP數(shù)據(jù)輸出端相連,該分路器的另一個輸入端與所述計數(shù)器的計數(shù)輸出端相連;IP包頭信息寄存器,該寄存器的IP包頭信息輸入端與所述分路器的相應(yīng)輸出端相連;流單元頭寄存器,設(shè)有流單元輸入端,該輸入端與所述IP包頭信息寄存器的相應(yīng)輸出端相連;選擇器內(nèi)設(shè)有預定的流單元長度,所述選擇器的流單元頭信息輸入端、IP數(shù)據(jù)輸入端依次分別與所述流單元頭寄存器、分路器的相應(yīng)輸出相連;流單元數(shù)據(jù)寄存器,該寄存器的流單元數(shù)據(jù)輸入端與所述選擇器的相應(yīng)輸出端相連;第2個先進先出存儲器,該存儲器的流單元數(shù)據(jù)輸入端與所述流單元數(shù)據(jù)寄存器的相應(yīng)輸出端相連,該先進先出存儲器輸出分割得到的流單元;流單元計數(shù)電路,含有加減計數(shù)器和磁性隨機存取存儲器,所述的加減計數(shù)器設(shè)有流單元接納指示信號輸入端,接收片外雙倍數(shù)據(jù)速率存儲器的流單元;流單元調(diào)度指示信號輸入端,接收流單元的調(diào)度信號;先前流單元數(shù)目輸入端;所述的磁性隨機存取存儲器,用MRAM表示,設(shè)有流單元的流號輸入端;當前流單元數(shù)目輸入端,該輸入端與所述加減計數(shù)器的相應(yīng)輸出端相連;該MRAM還有先前流單元數(shù)輸出端,該輸出端與所述加減計數(shù)器的相應(yīng)輸入端相連;該加減計數(shù)器在當一個流單元被接納加入隊列時計數(shù)器加1,當一個流單元被調(diào)出離開隊列時計數(shù)器減1,該加減計數(shù)器內(nèi)還設(shè)有隊列權(quán)重的值Wq,按下式計算t時刻的平均隊列長度Liavg(t)并輸出Liavg(t)=(1-Wq)Liavg(told)+WqQi(t)其中,Liavg(told)為t時刻隊列i先前的流單元數(shù);Qi(t)為t時刻隊列i到達的流單元數(shù)目,該加減計數(shù)器同時設(shè)有一個Q(t)輸出端,Q(t)是指t時刻所有隊列長度總和,Q(t)=ΣiQi(t);空閑塊管理電路,該電路是一個空閑塊加減計數(shù)器,該計數(shù)器內(nèi)設(shè)有片外雙倍數(shù)據(jù)速率存儲器的容量,該加減計數(shù)器還設(shè)有流單元接納指示信號輸入端和流單元調(diào)度指示信號輸入端,當一個流單元被接納加入隊列,或者一個流單元被調(diào)出隊列時,該加減計數(shù)器依次分別對設(shè)定的片外雙倍數(shù)據(jù)速率存儲器的容量加1或者減1,據(jù)此輸出該片雙倍數(shù)據(jù)速率存儲器的空閑容量;片外雙倍數(shù)據(jù)速率存儲器的控制器,該控制器連接著一個所述的片外雙倍數(shù)據(jù)速率存儲器,對該存儲器的存取訪問進行控制;隊列調(diào)度電路,該電路設(shè)有對所述片外雙倍數(shù)據(jù)速率存儲器中的流單元進行讀入調(diào)度的隊列調(diào)度信號輸出端;動態(tài)門限早期丟棄電路,該電路設(shè)有Liavg(t)寄存器、進行丟棄控制的隊列長度的下限閾值Lmin(t)運算的運算器1、進行丟棄控制的隊列長度的上限閾值Lmax(t)運算的運算器2、比較器和進行丟棄控制的運算器3,其中,運算器1,內(nèi)置有Lmin(t)冗余度,用α表示,還置有所述的片外雙倍數(shù)據(jù)速率存儲器的容量,用B表示,單位是流單元長度,該運算器通過Q(t)信號輸入端接收Q(t)信號并按下式計算Lmin(t)Lmin(t)=α(B-Q(t));運算器2,內(nèi)置有Lmax(t)冗余度,用β表示,β>α,還置有所述的片外雙倍數(shù)據(jù)速率存儲器的容量,用B表示,單位是流單元長度,該運算器通過Q(t)信號輸入端接收Q(t)信號并按下式計算Lmin(t)Lmax(t)=β(B-Q(t))上述各Q(t)信號輸入端與所述流單元計數(shù)電路內(nèi)的加減計數(shù)器的相應(yīng)輸出端相連;比較器,內(nèi)置有最大丟棄概率pmax,且該比較器設(shè)有Liavg(t)信號輸入端,該輸入端與所述流單元計數(shù)電路內(nèi)的加減計數(shù)器的相應(yīng)輸出端相連,該比較器還設(shè)有Lmin(t)信號和Lmax(t)信號共兩個輸入端,該比較器在接收到Liavg(t)、Lmin(t)、Lmax(t)信號后,依次按以下步驟執(zhí)行
步驟1若Liavg(t)≤Lmin(t),則接收全部到達的分組,并輸出到達的所有流單元,丟棄值為0;步驟2若Lmin(t)<Liavg(t)<Lmax(t)時,則計算丟棄概率pa,并以此概率丟棄到達分組pb=pmax(Liavg(t)-Lmin(t))(Lmax(t)-Lnin(t))]]>pa=pb/(1-cpb),設(shè)c=-1;步驟3若Liavg(t)≥Lmax(t),則丟棄全部分組,c=0;運算器3,該運算器按所述比較器輸出的流單元丟棄標志,即所述c的值按下式計算丟棄概率pac=-1,則pa=pb/(1+cpb),丟棄部分到達的分組;c=0,則pa=pb,丟棄所有到達的分組。
本發(fā)通過測試證明,具有適應(yīng)性強、緩存利用率高而且支持多流隊列動態(tài)管理機制的優(yōu)點。


圖1基本結(jié)構(gòu)模塊和外部接口關(guān)系圖2RED算法丟棄曲線圖3本發(fā)明的丟棄機制的階梯式丟棄曲線圖4硬件實現(xiàn)流程5IP分組分割電路(1-1)圖6動態(tài)門限早期丟棄電路(1-2)圖7cell計數(shù)電路(1-3)圖8空閑塊管理電路(1-4)圖9DDR控制器(1-5)圖10隊列調(diào)度電路(1-6)圖11第二段丟棄曲線波形(a)圖12第二段丟棄曲線波形(b)圖13第三段丟棄曲線波形(a)圖14第三段丟棄曲線波形(b)圖15第四段丟棄曲線波形(a)圖16第四段丟棄曲線波形(b)具體實施方式
互聯(lián)網(wǎng)工程任務(wù)組(IETF)提出了AQM技術(shù)并推薦了RED機制。實現(xiàn)RED算法的路由器發(fā)現(xiàn)擁塞前兆時,提前隨機丟棄緩沖隊列中的一些分組,而不是等到緩沖區(qū)占滿后丟棄所有新的分組。當網(wǎng)絡(luò)中間節(jié)點設(shè)備的緩存的平均隊列長度超過一個指定的最小門限minth時,就認為出現(xiàn)了擁塞前兆,這時路由器按一定的概率pa丟棄分組,這個概率pa是平均隊列長度avg(t)的函數(shù)pb=pmax(avg(t)-minth)(maxth-minth)]]>pa=pb/(1-cpb)其中pmax為設(shè)定的最大丟棄概率,c的取值為一常數(shù)。
當平均隊列長度超過一個指定的最大門限maxth時,路由器認為網(wǎng)絡(luò)出現(xiàn)了嚴重擁塞,所有的分組都要丟棄。RED算法丟棄曲線如圖2所示。
從上述RED算法的介紹可知,硬件實現(xiàn)RED算法時存在以下幾個問題(1)參數(shù)的選擇minth,maxth,maxp和wq等參數(shù)的選擇對RED算法有很大影響,但是這些參數(shù)是事先設(shè)置好的,不能實時反映當前網(wǎng)絡(luò)的狀況;(2)RED算法中有很多乘法運算,另外還需要生成隨機數(shù),用硬件高速實現(xiàn)有一定的困難;(3)RED算法采用先進先出的方法,對復用在一個接收隊列中的所有連接的分組進行調(diào)度,但不監(jiān)視每個流的狀態(tài),因此不支持多流多隊列。
本發(fā)明在一片F(xiàn)PGA上,用硬件描述語言Verilog HDL編寫實現(xiàn),其基本結(jié)構(gòu)和外部接口關(guān)系如圖1所示,各電路工作流程為當一個IP分組到達該裝置時,由IP分組分割電路(1-1)切分為60字節(jié)的定長的數(shù)據(jù)單元,稱作cell,然后將其發(fā)送給動態(tài)門限早期丟棄電路(1-2)。動態(tài)門限早期丟棄電路(1-2)模塊根據(jù)動態(tài)門限早期丟棄方法的策略對cell實施接納和丟棄控制,被接納的cell再加上通過DDR控制器(1-5)寫入片外DDR存儲器(1-7)相應(yīng)的網(wǎng)絡(luò)流緩存隊列中,等待隊列調(diào)度電路(1-6)的調(diào)度命令。隊列調(diào)度電路(1-6)對片外的DDR存儲器中的cell進行調(diào)度,從眾多的隊列中選擇某個流的隊列,調(diào)度DDR存儲器中的分組離開。cell計數(shù)電路(1-3)按照cell的流號,對DDR中的cell進行計數(shù),對每個流都維護一個計數(shù)器,當一個cell接納進入隊列時計數(shù)器加一,當一個cell被調(diào)度離開隊列時計數(shù)器減一。空閑塊管理電路(1-4)負責統(tǒng)計片外DDR中的空閑容量,當一個cell被接納進入隊列時,分配一個空閑塊,并且其數(shù)目減一;當一個cell被調(diào)度離開隊列時,回收一個空閑塊,并且其數(shù)目加一。動態(tài)門限早期丟棄電路(1-2)依據(jù)cell計數(shù)電路(1-3)提供的片外DDR存儲器中該流的當前cell數(shù)目和空閑塊管理電路(1-4)提供的片外DDR中的當前空閑容量兩個參數(shù)對cell實施接納和丟棄控制。
我們規(guī)定,以Qi(t)表示t時刻第i個等待隊列的長度;以Q(t)=∑iQi(t)表示t時刻所有隊列長度總和,即緩存中被占用部分的大?。灰訠表示整個共享緩存區(qū)的大??;用Lmin(t),Lmax(t)代表t時刻進行分組丟棄控制的隊列長度的上限和下限閾值。
當每一個分組到達隊列i時,計算t時刻隊列i的平均隊列長度Liavg(t)(Wq)為設(shè)定的隊列權(quán)重)

重新計算進行丟棄控制的隊列長度的上限和下限閾值Lmin(t),Lmax(t)(β>α)

Lmax(t)=β(B-Q(t)) (3)根據(jù)計算得到的上限Lmax(t)和下限Lmin(t),進行以下的判斷(1)如果Liavg(t)≤Lmin(t),不作任何控制,接收全部到達的分組;(2)如果Lmin(t)<Liavg(t)<Lmax(t)時,則計算丟棄概率pa,并以此概率丟棄到達分組。(pmax為設(shè)定的最大丟棄概率)

(3)如果Liavg(t)≥Lmax(t),則丟棄全部分組,c=0。
以下給出實現(xiàn)的偽代碼初始化Liavg(t)=0,c=-1;時刻t,某一分組到達輸入隊列i用式(1)計算Liavg(t);用式(2)、(3)計算Lmin(t)和Lmax(t);if Lmin(t)<Liavg(t)<Lmax(t)用公式(4)、(5)計算丟棄概率pa;以概率pa丟棄達到分組;c=0;else if Liavg(t)≥Lmax(t)丟棄到達分組;c=0;elsec=-1;考慮大小為B的緩存區(qū)中,當前只有A個隊列處于活躍的狀態(tài)。因為各個隊列的長度被控制在Lmax(t)左右,那么此時緩存區(qū)被占據(jù)的最大容量在Q(t)=ALmax(t)左右,代入式(3)中可以得到Lmax(t)=βB1+βA,]]>所以緩存區(qū)的利用率為ρ=βA1+βA.]]>從上式中可以看出,與RED算法一樣,本發(fā)明也總是預留出一小部分緩存空間,能夠更好地處理突發(fā)性。
在利用硬件高速實現(xiàn)時存在兩個困難一是分組丟棄控制門限Lmin(t)和Lmax(t)的計算;二是丟棄概率的計算。本發(fā)明通過對算法作以下的設(shè)置,就可以利用硬件來高速實現(xiàn)(1)每當有分組到達,由cell計數(shù)電路(1-3)給出該流的平均隊列長度,記為C;(2)整個共享緩存區(qū)的大小B是所采用的片外DDR的大小;(3)緩存中被占用部分的大小Q(t)由空閑塊管理電路(1-4)給出,記DDR中空閑緩存大小是R;(4)參數(shù)α=0.5,β=1.0,則由空閑塊管理電路(1-4)給出的空閑緩存大小R,Lmin(t)=0.5R,Lmax(t)=R,其中通過簡單的右移一位就可以得到分組丟棄控制門限Lmin(t)。
由于丟棄是對一個完整的分組進行實施的,因此,在分組的第一個信元到來時,平均隊列長度C和兩個門限值Lmin(t),Lmax(t)進行比對,決定是丟棄該分組的cell,還是將該分組的cell寫入片外的DDR存儲器。
另外,如果嚴格計算丟棄概率,并按照該概率隨機丟棄到達的分組,需要復雜的偽隨機數(shù)生成電路,并且有大量的乘法運算,會占用大量的FPGA資源,不利于用硬件高速實現(xiàn)。我們可以采用如圖3所示的分段函數(shù)逼近丟棄曲線,然后預先計算好分段門限值、剩余容量和丟棄概率之間的關(guān)系,實現(xiàn)時,僅需要通過從空閑塊管理模塊得到的DDR剩余容量R和從分組計數(shù)電路得到該流的當前隊列長度C,通過表1可查表得到分組丟棄概率,然后按照此丟棄概率周期性丟棄到達的分組。比如,當從分組計數(shù)電路得到的當前隊列長度0≤C<0.5R時,所有到達的分組都不丟棄,都通過DDR控制器(1-5)寫入片外的DDR存儲器;當0.5R≤C<0.75R時,該流每到達8個分組就丟棄一個分組。采用的分段函數(shù)逼近丟棄曲線方法以及周期性的丟棄規(guī)則,可在FPGA上高速實現(xiàn),電路工作流程如圖4所示。
表1剩余容量R、流的隊列長度C和分組丟棄概率的關(guān)系

基于FPGA的支持多隊列的共享緩存動態(tài)門限早期丟棄裝置采用硬件描述語言Verilog在一片F(xiàn)PGA上實現(xiàn),并在所開發(fā)的路由器線卡上實驗和測試。測試系統(tǒng)由PC機的并行口,通過FPGA的JTAG口,向該線卡上的FPGA下載HDL代碼,再用測試儀向目標板發(fā)送特定的IP分組,經(jīng)FPGA上的模塊處理之后,由測試儀和EDA工具對輸出結(jié)果進行統(tǒng)計和記錄,分析所設(shè)計的該裝置正確性。
測試中用到的測試儀為Spirent公司的AX/4000。AX/4000是一種模塊化的多端口測試系統(tǒng),能夠以高達10Gbps的速度同時測試ATM、IP、幀中繼和以太網(wǎng)等多種傳輸技術(shù)。AX/4000測試儀采用模塊化設(shè)計,主要模塊由系統(tǒng)控制模塊、發(fā)生器模塊、分析器模塊和豐富的接口模塊組成。發(fā)生器模塊提供IP源地址和目的地址、多種發(fā)包模式;分析器模塊自動提取的流信息,實時地顯示各流的丟包率、丟包統(tǒng)計等信息,并以數(shù)據(jù)表、線性圖、直方圖等方式顯示。本專利的實驗用AX/4000產(chǎn)生特定的流,并對結(jié)果進行統(tǒng)計和分析。
開發(fā)和測試中用的EDA工具主要為Altera公司的Quartus軟件,Quartus軟件完成Verilog代碼的編寫、實現(xiàn)和下載,并用其中的Signal Tap分析和記錄時序波形。
基于FPGA的支持多隊列的共享緩存動態(tài)門限早期丟棄裝置采用階梯式曲線來逼近RED的丟棄曲線,周期性地丟棄部分分組。由空閑塊管理電路(1-4)得到的DDR剩余容量R、由cell計數(shù)電路(1-3)給出流的隊列長度C和分組丟棄概率的關(guān)系可由表1表示?;贔PGA的支持多隊列的共享緩存動態(tài)門限早期丟棄裝置的實驗要測試分段函數(shù)曲線的每一段?;贔PGA的支持多隊列的共享緩存動態(tài)門限早期丟棄裝置中,如果隊列調(diào)度電路(1-6)不進調(diào)度,該裝置將會經(jīng)歷分段丟棄曲線的每一段,可在Quartus的Signal Tap中依次設(shè)置相應(yīng)的觸發(fā)值,就可以記錄和分析波形。
第一段曲線的測試如果隊列調(diào)度電路(1-6)正常調(diào)度,該裝置工作在丟棄曲線的第一段,完全接納到達的分組。在測試中,測試儀AX/4000發(fā)包模式均為Manually TriggeredBursts,100%BW發(fā)包,總的發(fā)包數(shù)為300000,每次手動觸發(fā)時發(fā)送300000個分組,再用測試儀AX/4000接收處理后的分組。從表2可以得出,該裝置工作在丟棄曲的第一段時能正確轉(zhuǎn)發(fā)分組,不會丟棄分組。
表2第一段丟棄曲線測試結(jié)果

中間段的測試如果隊列調(diào)度電路(1-6)不進行調(diào)度,該裝置將會經(jīng)歷分段丟棄曲線的每一段,依次在Signal Tap中設(shè)置相應(yīng)的觸發(fā)值,記錄其波形。在測試中,測試儀AX/4000選擇長度為48字節(jié)包,發(fā)包模式均為periodic packets,100%BW。在測試中,在Quartus的Signal Tap中添加如下的信號1.C4_slotcycle該裝置的時鐘節(jié)拍記數(shù),計數(shù)值為0~15;
2.F_first_cell分組的第一個cell的標志;3.CON_discard_interval每段丟棄曲線的計數(shù)上限,比如在0.75R≤C<R分段區(qū)間時,每3個分組丟棄一個,則CON_discard_interval=3;4.C4_discard在每段丟棄曲線的周期計數(shù)器,用于判斷是否該丟棄該分組,比如在0.75R≤C<R分段區(qū)間時,每3個分組丟棄一個,C4_discard為1~3周期計數(shù),當C4_discard=CON_discard_interval=3時,丟棄該分組;5.F_range_judge在每段丟棄曲線的周期計數(shù)判斷,當C4_discard=CON_discard_interval時,到達計數(shù)上限時,則F_range_judge=1,表示該分組要丟棄;6.F_IP_discardIP分組丟棄標志,為1時,丟棄該分組,信號寬度為IP分組的寬度;7.C19_Cellnum當前流的在DDR中緩存的cell數(shù),即隊列長度C;8.C19_RemainDDR當前的剩余空間,即剩余容量R;9.F_range_showRED-DT所在丟棄曲線段的指示;在Quartus的Signal Tap中設(shè)置F_range_show為觸發(fā)條件,依次為00第一段,不丟棄分組;01第二段,每8個分組丟棄一個;10第三段,每3個分組丟棄一個;11第四段,丟棄全部分組;采用上述的測試方法,得到如下的結(jié)果(1)設(shè)置F_range_shown的觸發(fā)值為01,基于FPGA的支持多隊列的共享緩存動態(tài)門限早期丟棄裝置工作在分段丟棄曲線的第二段,每8個分組丟棄一個分組,測試波形如圖11、圖12所示。從圖11、圖12可以看出,當F_range_shown=01時,C=172031,R=344063,0.5R≤C<0.75R,該裝置工作在分段丟棄曲線的第二段,每8個分組丟棄一個分組,當C4_discard=8時,F(xiàn)_IP_discard和F_range_judge為1,丟棄該分組,測試正確。
(2)設(shè)置F_range_shown的觸發(fā)值為10,基于FPGA的支持多隊列的共享緩存動態(tài)門限早期丟棄裝置工作在分段丟棄曲線的第三段,每3個分組丟棄一個分組,測試波形如圖13、圖14所示。從圖13、圖14可以看出,當F_range_shown=10時,C=22183,R=294911,0.75R≤C<R,該裝置工作在分段丟棄曲線的第三段,每3個分組丟棄一個分組,當C4_discard=3時,F(xiàn)_IP_discard和F_range_judge為1,丟棄該分組,測試正確。
(3)設(shè)置F_range_shown的觸發(fā)值為11,基于FPGA的支持多隊列的共享緩存動態(tài)門限早期丟棄裝置工作在分段丟棄曲線的第四段,丟棄全部分組,測試波形如圖15、圖16所示。從圖15、圖16可以看出,當F_range_shown=11時,C=258047,R=258047,C≥R,該裝置工作在分段丟棄曲線的第四段,丟棄全部分組F_IP_discard和F_range_judge始終為1,丟棄該分組,測試正確。
權(quán)利要求
1.支持多隊列的共享緩存動態(tài)門限早期丟棄裝置,其特征在于,該裝置是用FPGA芯片實現(xiàn)的,該FPGA芯片中含有IP分組分割電路、空閑塊管理電路、DDR控制器、流單元計數(shù)電路、隊列調(diào)度電路以及動態(tài)門限早期丟棄電路,其中IP分組分割電路,該電路把到達的變長的IP分組按設(shè)定的流單元長度進行分割,得到定長的流單元,用cell表示,所述IP分組分割電路含有第1個先進先出存儲器設(shè)有IP分組輸入端;計數(shù)器,該計數(shù)器的計數(shù)信號輸入端與所述第1個先進先出存儲器的相應(yīng)輸出端相連;分路器,該分路器有兩個輸入端一個輸入端與所述第1個先進先出存儲器的IP數(shù)據(jù)輸出端相連,該分路器的另一個輸入端與所述計數(shù)器的計數(shù)輸出端相連;IP包頭信息寄存器,該寄存器的IP包頭信息輸入端與所述分路器的相應(yīng)輸出端相連;流單元頭寄存器,設(shè)有流單元輸入端,該輸入端與所述IP包頭信息寄存器的相應(yīng)輸出端相連;選擇器內(nèi)設(shè)有預定的流單元長度,所述選擇器的流單元頭信息輸入端、IP數(shù)據(jù)輸入端依次分別與所述流單元頭寄存器、分路器的相應(yīng)輸出相連;流單元數(shù)據(jù)寄存器,該寄存器的流單元數(shù)據(jù)輸入端與所述選擇器的相應(yīng)輸出端相連;第2個先進先出存儲器,該存儲器的流單元數(shù)據(jù)輸入端與所述流單元數(shù)據(jù)寄存器的相應(yīng)輸出端相連,該先進先出存儲器輸出分割得到的流單元;流單元計數(shù)電路,含有加減計數(shù)器和磁性隨機存取存儲器,所述的加減計數(shù)器設(shè)有流單元接納指示信號輸入端,接收片外雙倍數(shù)據(jù)速率存儲器的流單元;流單元調(diào)度指示信號輸入端,接收流單元的調(diào)度信號;先前流單元數(shù)目輸入端;所述的磁性隨機存取存儲器,用MRAM表示,設(shè)有流單元的流號輸入端;當前流單元數(shù)目輸入端,該輸入端與所述加減計數(shù)器的相應(yīng)輸出端相連;該MRAM還有先前流單元數(shù)輸出端,該輸出端與所述加減計數(shù)器的相應(yīng)輸入端相連;該加減計數(shù)器在當一個流單元被接納加入隊列時計數(shù)器加1,當一個流單元被調(diào)出離開隊列時計數(shù)器減1,該加減計數(shù)器內(nèi)還設(shè)有隊列權(quán)重的值Wq,按下式計算t時刻的平均隊列長度Liavg(t)并輸出Liavg(t)=(1-Wq)Liavg(told)+WqQi(t)其中,Liavg(told)為t時刻隊列i先前的流單元數(shù);Qi(t)為t時刻隊列i到達的流單元數(shù)目,該加減計數(shù)器同時設(shè)有一個Q(t)輸出端,Q(t)是指t時刻所有隊列長度總和,Q(t)=∑iQi(t);空閑塊管理電路,該電路是一個空閑塊加減計數(shù)器,該計數(shù)器內(nèi)設(shè)有片外雙倍數(shù)據(jù)速率存儲器的容量,該加減計數(shù)器還設(shè)有流單元接納指示信號輸入端和流單元調(diào)度指示信號輸入端,當一個流單元被接納加入隊列,或者一個流單元被調(diào)出隊列時,該加減計數(shù)器依次分別對設(shè)定的片外雙倍數(shù)據(jù)速率存儲器的容量加1或者減1,據(jù)此輸出該片雙倍數(shù)據(jù)速率存儲器的空閑容量片外雙倍數(shù)據(jù)速率存儲器的控制器,該控制器連接著一個所述的片外雙倍數(shù)據(jù)速率存儲器,對該存儲器的存取訪問進行控制隊列調(diào)度電路,該電路設(shè)有對所述片外雙倍數(shù)據(jù)速率存儲器中的流單元進行讀入調(diào)度的隊列調(diào)度信號輸出端;動態(tài)門限早期丟棄電路,該電路設(shè)有Liavg(t)寄存器、進行丟棄控制的隊列長度的下限閾值Lmin(t)運算的運算器1、進行丟棄控制的隊列長度的上限閾值Lmax(t)運算的運算器2、比較器和進行丟棄控制的運算器3,其中,運算器l,內(nèi)置有Lmin(t)冗余度,用α表示,還置有所述的片外雙倍數(shù)據(jù)速率存儲器的容量,用B表示,單位是流單元長度,該運算器通過Q(t)信號輸入端接收Q(t)信號并按下式計算Lmin(t)Lmin(t)=α(B-Q(t));運算器2,內(nèi)置有Lmax(t)冗余度,用β表示,β>α,還置有所述的片外雙倍數(shù)據(jù)速率存儲器的容量,用B表示,單位是流單元長度,該運算器通過Q(t)信號輸入端接收Q(t)信號并按下式計算Lmin(t)Lmax(t)=β(B-Q(t))上述各Q(t)信號輸入端與所述流單元計數(shù)電路內(nèi)的加減計數(shù)器的相應(yīng)輸出端相連;比較器,內(nèi)置有最大丟棄概率pmax,且該比較器設(shè)有Liavg(t)信號輸入端,該輸入端與所述流單元計數(shù)電路內(nèi)的加減計數(shù)器的相應(yīng)輸出端相連,該比較器還設(shè)有Lmin(t)信號和Lmax(t)信號共兩個輸入端,該比較器在接收到Liavg(t)、Lmin(t)、Lmax(t)信號后,依次按以下步驟執(zhí)行步驟l若Lavgi(t)≤Lmin(t),]]>則接收全部到達的分組,并輸出到達的所有流單元,丟棄值為0步驟2若Lmin(t)<Lavgi(t)<Lmax(t)]]>時,則計算丟棄概率pa,并以此概率丟棄到達分組pb=pmax(Liavg(t)-Lmin(t))(Lmax(t)-Lmin(t))]]>pa=pb/(1-cpb),設(shè)c=-1;步驟3若Lavgi(t)≥Lmax(t),]]>則丟棄全部分組,c=0運算器3,該運算器按所述比較器輸出的流單元丟棄標志,即所述c的值按下式計算丟棄概率pac=-1,則pa=pb/(1+cpb),丟棄部分到達的分組c=0,則pa=pb,丟棄所有到達的分組。
全文摘要
本發(fā)明提供一種支持多隊列的共享緩存動態(tài)門限早期丟棄裝置屬于IP技術(shù)領(lǐng)域,并在一片現(xiàn)場可編程門陣列(FPGA)上實現(xiàn),其特征在于含有如圖1的電路IP分組分割電路(1-1);動態(tài)門限早期丟棄電路(1-2);cell計數(shù)電路(1-3);空閑塊管理電路(1-4);DDR控制器(1-5);隊列調(diào)度電路(1-6);片外DDR存儲器(1-7)。它能根據(jù)每個當前活躍的隊列的平均隊列長度和整個共享緩存區(qū)的平均隊列長度來動態(tài)調(diào)整隨機早期檢測(RED)算法的參數(shù),提出了支持多隊列的共享緩存動態(tài)門限早期丟棄方法,其丟包率更小,緩存利用率更高,同時兼顧公平性。支持多隊列的共享緩存動態(tài)門限早期丟棄方法保持了RED和動態(tài)門限(DT)機制的優(yōu)點,并且用階梯式丟棄曲線近似,利于在FPGA中實現(xiàn)。
文檔編號H04L12/56GK1777147SQ20051012636
公開日2006年5月24日 申請日期2005年12月9日 優(yōu)先權(quán)日2005年12月9日
發(fā)明者胡成臣, 劉斌, 陳雪飛, 陳洪明 申請人:清華大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
林州市| 安顺市| 札达县| 泽州县| 孝感市| 泰和县| 娱乐| 平乡县| 白玉县| 邳州市| 鄂伦春自治旗| 大兴区| 普宁市| 英山县| 宜兰县| 永昌县| 出国| 商城县| 伽师县| 阿坝县| 昆山市| 萝北县| 龙口市| 商南县| 赤城县| 闽清县| 汕头市| 上林县| 桐乡市| 龙游县| 九台市| 安西县| 永顺县| 黄骅市| 遂川县| 芦溪县| 临邑县| 津市市| 政和县| 西和县| 湘阴县|