基于SDH芯片的S19202的輪詢合路的設(shè)計(jì)
采用這種改進(jìn)的DRR算法下,可以保證在變長(zhǎng)包的情況下,各個(gè)接口的整包緩存隊(duì)列在報(bào)文合路時(shí)公平的帶寬,確保合路調(diào)度的穩(wěn)定運(yùn)行。
DRR整包輪詢合路的基本工作過程為:輪詢4個(gè)整包緩存隊(duì)列,每讀取一個(gè)整包都判斷該包是否是協(xié)議包,如果是協(xié)議包,則按照上交CPU報(bào)文格式送協(xié)議FIFO,如果是需要轉(zhuǎn)發(fā)的報(bào)文,則按照轉(zhuǎn)發(fā)報(bào)文格式送數(shù)據(jù)報(bào)文FIFO。
調(diào)度機(jī)輪詢到某個(gè)隊(duì)列時(shí),為該隊(duì)列的儲(chǔ)蓄計(jì)數(shù)器加上40;然后判斷該隊(duì)列是否為空,如果為空,則馬上轉(zhuǎn)向下一個(gè)隊(duì)列;如果非空,則判斷當(dāng)前該隊(duì)列是否有整包,如果當(dāng)前該隊(duì)列無整包,則轉(zhuǎn)到下一個(gè)隊(duì)列;否則,如果該隊(duì)列目前有整包則輸出該隊(duì)列的隊(duì)頭包到合路隊(duì)列,同時(shí)該路的儲(chǔ)蓄計(jì)數(shù)器的值要減去輸出報(bào)文的長(zhǎng)度;然后重復(fù)上述過程,直到該隊(duì)列無整包或者隊(duì)列的儲(chǔ)蓄計(jì)數(shù)器的值小于40時(shí)跳轉(zhuǎn)到下一隊(duì)列服務(wù),其詳細(xì)工作流程如圖2 所示:
圖2 改進(jìn)的DRR合路調(diào)度流程圖
DRR合路調(diào)度單元已在ALTERA公司的quartusII4.1環(huán)境下用VHDL編程實(shí)現(xiàn),其仿真波形如圖3所示:
圖3 DRR合路調(diào)度單元仿真波形圖
仿真結(jié)果顯示這種采用分片輪詢和欠賬輪詢的結(jié)合的合路調(diào)度策略設(shè)計(jì)可以達(dá)到性能需求,確保變長(zhǎng)分組合路調(diào)度的公平性和穩(wěn)定性。
3、 結(jié)束語(yǔ)
根據(jù)SDH芯片的S19202的特點(diǎn)和性能要求,通過在FPGA內(nèi)部編程實(shí)現(xiàn)分片輪詢和改進(jìn)式欠賬輪詢結(jié)合的調(diào)度策略,保證了4X2.5G線路接口卡輸入端各個(gè)接口合路的公平性和穩(wěn)定性。經(jīng)測(cè)試該設(shè)計(jì)性能穩(wěn)定,整個(gè)工作流程簡(jiǎn)單實(shí)用,符合設(shè)計(jì)要求。本文引用地址:http://www.ex-cimer.com/article/173068.htm
評(píng)論