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