朱華偉(四川文理學(xué)院,四川 達(dá)州 635000)
10G EPON系統(tǒng)繼承了EPON系統(tǒng)的點(diǎn)到點(diǎn)仿真機(jī)制[1],這樣邏輯上點(diǎn)到多點(diǎn)的物理鏈路被模擬為多條點(diǎn)到點(diǎn)的邏輯鏈路的集合,每條邏輯鏈路通過一個唯一的LLID標(biāo)志。從OLT發(fā)送到ONU或者從ONU發(fā)送到OLT的數(shù)據(jù)幀均需包含LLID標(biāo)志,不包含LLID標(biāo)志的數(shù)據(jù)幀均會被當(dāng)做非法幀,并被過濾掉。
802.3 av協(xié)議只為10G EPON系統(tǒng)規(guī)范了單LLID的標(biāo)準(zhǔn)數(shù)據(jù)傳輸模式[2],在目前網(wǎng)絡(luò)傳輸多為多業(yè)務(wù)數(shù)據(jù),不同業(yè)務(wù)數(shù)據(jù)對時效的要求差異很大的情況下,這種單LLID模式無法保證多業(yè)務(wù)的QOS。相較而言,多LLID模式改善了上述不足,該模式下的多LLID就好似多個單一的LLID,每個LLID由OLT的DBA單獨(dú)調(diào)度。通過為每種業(yè)務(wù)的數(shù)據(jù)設(shè)置在特定的LLID鏈路傳輸,既可以提高數(shù)據(jù)傳輸?shù)腝OS,又可避免在ONU里對多業(yè)務(wù)數(shù)據(jù)進(jìn)行調(diào)度的困難,減少ONU設(shè)計的復(fù)雜度[3]。
隊(duì)列管理模塊接收來自用戶側(cè)的數(shù)據(jù)幀后,根據(jù)LLID模式配置,提取數(shù)據(jù)幀的優(yōu)先級及長度信息,存儲數(shù)據(jù)幀到相應(yīng)的隊(duì)列,同時向隊(duì)列報告模塊報告數(shù)據(jù)幀入隊(duì),供其更新隊(duì)列長度報告表項(xiàng)。數(shù)據(jù)幀全部寫入隊(duì)列前,隊(duì)列滿溢出,則丟棄正在發(fā)送的數(shù)據(jù)幀。隊(duì)列管理模塊收到MAC的數(shù)據(jù)幀發(fā)送請求后,從隊(duì)列組中調(diào)度出數(shù)據(jù)幀并發(fā)送給MAC,同時向隊(duì)列長度報告邏輯發(fā)送數(shù)據(jù)幀出隊(duì)指示,供其更新隊(duì)列報告表項(xiàng)。圖1所示為隊(duì)列管理模塊結(jié)構(gòu)框圖,由圖可以看出,隊(duì)列管理模塊主要由數(shù)據(jù)接收處理模塊,數(shù)據(jù)幀出入隊(duì)指示模塊,數(shù)據(jù)發(fā)送處理模塊,隊(duì)列組模塊組成。
數(shù)據(jù)接收處理模塊接收到用戶側(cè)的數(shù)據(jù)幀后,在數(shù)據(jù)接收狀態(tài)機(jī)的控制下,向隊(duì)列組寫入數(shù)據(jù)幀。數(shù)據(jù)接收狀態(tài)機(jī)由空閑狀態(tài),幀入隊(duì)狀態(tài),丟棄幀狀態(tài)組成,狀態(tài)之間的轉(zhuǎn)換關(guān)系如圖2所示。無數(shù)據(jù)傳輸時,狀態(tài)機(jī)處于空閑狀態(tài);當(dāng)收到用戶側(cè)的數(shù)據(jù)發(fā)送指示時,狀態(tài)機(jī)從空閑狀態(tài)轉(zhuǎn)換為數(shù)據(jù)幀幀入隊(duì)狀態(tài),此時,寫數(shù)據(jù)邏輯從入隊(duì)數(shù)據(jù)幀中提取本地優(yōu)先級信息,根據(jù)本地優(yōu)先級設(shè)置向?qū)?yīng)的隊(duì)列中寫入數(shù)據(jù),數(shù)據(jù)幀數(shù)據(jù)完全入隊(duì)后,狀態(tài)機(jī)重新恢復(fù)空閑狀態(tài)。如果數(shù)據(jù)幀正在入隊(duì)的過程中,隊(duì)列溢出,狀態(tài)機(jī)跳轉(zhuǎn)到丟幀狀態(tài),寫數(shù)據(jù)邏輯丟棄該數(shù)據(jù)幀已入隊(duì)的數(shù)據(jù),同時恢復(fù)該隊(duì)列寫數(shù)據(jù)地址指針值。
圖2 數(shù)據(jù)接收狀態(tài)機(jī)
當(dāng)有數(shù)據(jù)幀入隊(duì)或者出隊(duì)時,均需向ONU隊(duì)列報告邏輯發(fā)送數(shù)據(jù)幀入隊(duì)或者出隊(duì)信息,供報告邏輯更新隊(duì)列長度報告列表表項(xiàng)。數(shù)據(jù)幀出隊(duì)指示邏輯通過握手邏輯實(shí)現(xiàn),當(dāng)有數(shù)據(jù)幀出隊(duì)時,數(shù)據(jù)幀出隊(duì)指示邏輯開始向ONU報告邏輯發(fā)送出隊(duì)指示信號,同時發(fā)送出隊(duì)數(shù)據(jù)幀長度信息和對應(yīng)隊(duì)列指示信息;數(shù)據(jù)幀入隊(duì)邏輯同數(shù)據(jù)幀出隊(duì)邏輯類似,不同的是數(shù)據(jù)幀入隊(duì)指示信號是在數(shù)據(jù)幀完全出隊(duì)的時候發(fā)送。
隊(duì)列組模塊由8個塊RAM和相應(yīng)的隊(duì)列控制器組成。隊(duì)列組模塊除了為每組隊(duì)列維護(hù)讀寫地址指針,空滿標(biāo)志外,還維護(hù)了一個基址指針,供丟棄數(shù)據(jù)幀時的寫地址復(fù)位。隊(duì)列組模塊響應(yīng)數(shù)據(jù)接收處理模塊的數(shù)據(jù)發(fā)送請求并向?qū)?yīng)的隊(duì)列寫入數(shù)據(jù),如果隊(duì)列溢出,丟棄該數(shù)據(jù)幀數(shù)據(jù),同時恢復(fù)數(shù)據(jù)幀寫地址;此外,隊(duì)列組模塊響應(yīng)MAC的數(shù)據(jù)發(fā)送請求,從對應(yīng)隊(duì)列讀取數(shù)據(jù),發(fā)送給MAC。
隊(duì)列組的入口與數(shù)據(jù)幀的8個本地優(yōu)先級一一對應(yīng),隊(duì)列組的出口分別映射為8個邏輯鏈路,每個邏輯鏈路單獨(dú)受OLT DBA動態(tài)帶寬分配算法調(diào)度。同時,由于802.3av標(biāo)準(zhǔn)對每個ONU只規(guī)定了單一的LLID,這里在采取多LLID方案的同時,保留了單LLID的標(biāo)準(zhǔn)模式。與多LLID模式不同,在隊(duì)列組出口,響應(yīng)MAC的數(shù)據(jù)發(fā)送請求發(fā)送數(shù)據(jù)前需要進(jìn)行基于嚴(yán)格優(yōu)先級的隊(duì)列調(diào)度。單LLID邏輯設(shè)計方法同多LLID邏輯實(shí)現(xiàn)方法基本相同,本文只針對LLID配置模式0,即單LLID模式設(shè)計方法及仿真結(jié)果進(jìn)行闡述。
數(shù)據(jù)發(fā)送處理邏輯主要完成隊(duì)列出隊(duì)操作,依據(jù)隊(duì)列模式的不同,數(shù)據(jù)發(fā)送處理邏輯選擇不同的隊(duì)列調(diào)度方式從隊(duì)列中調(diào)度數(shù)據(jù)。當(dāng)隊(duì)列模式為0時,調(diào)度方式為基于嚴(yán)格優(yōu)先級的方式調(diào)度數(shù)據(jù),8個隊(duì)列分別存儲的是8個優(yōu)先級的隊(duì)列,隊(duì)列7優(yōu)先級最高,其余隊(duì)列優(yōu)先級依次降低;當(dāng)隊(duì)列模式為1時,調(diào)度方式為按照LLID序列號的值調(diào)度數(shù)據(jù),8個隊(duì)列分別存儲的是對應(yīng)8個LLID序列的數(shù)據(jù)幀。
數(shù)據(jù)發(fā)送處理邏輯收到MAC發(fā)送來的數(shù)據(jù)發(fā)送指示信號的上升沿后,使用SP調(diào)度算法從隊(duì)列中調(diào)度數(shù)據(jù)幀。隊(duì)列組包含8個隊(duì)列,分別對應(yīng)8個優(yōu)先級的數(shù)據(jù),從隊(duì)列0到隊(duì)列7優(yōu)先級依次升高。SP調(diào)度時,先從最高優(yōu)先級隊(duì)列調(diào)度數(shù)據(jù)幀,最高優(yōu)先級隊(duì)列數(shù)據(jù)發(fā)送完后,再從次優(yōu)先級隊(duì)列調(diào)度數(shù)據(jù)幀,然后依次類推,直到MAC數(shù)據(jù)發(fā)送指示變?yōu)闊o效。
確定調(diào)度隊(duì)列后,開始從隊(duì)列讀出數(shù)據(jù)幀并發(fā)送給MAC,每次讀取一個完整數(shù)據(jù)幀。數(shù)據(jù)讀取與發(fā)送邏輯通過計數(shù)器邏輯實(shí)現(xiàn),計數(shù)器邏輯包含剩余幀數(shù)據(jù)字節(jié)長度計數(shù)器和讀數(shù)據(jù)周期計數(shù)器兩個計數(shù)器,分別標(biāo)識還需讀取的數(shù)據(jù)幀的字節(jié)數(shù)和目前讀數(shù)據(jù)的所處的周期數(shù)。后者用于標(biāo)識數(shù)據(jù)幀長度信息所屬的位置,從而用來初始化剩余幀數(shù)據(jù)字節(jié)長度計數(shù)器;前者用于控制從隊(duì)列中讀取數(shù)據(jù)的長度。
本文針對10G EPON系統(tǒng)ONU隊(duì)列管理模塊提出了一種設(shè)計方案,并使用Verilog語言進(jìn)行了描述,編寫Testbench對RTL電路進(jìn)行了驗(yàn)證[4-5],仿真結(jié)果表明設(shè)計方案較好的實(shí)現(xiàn)了10G EPON系統(tǒng)ONU隊(duì)列管理模塊的隊(duì)列管理功能。
[1]堯昱,張靜,王允,尚逢亮.10G EPON技術(shù)及應(yīng)用方案研究[J].廣西:光通信技術(shù),2011(11)
[2]朱華偉,侯曉榮,何崢.10G EPON系統(tǒng)ONU注冊技術(shù)研究[J].光通信技術(shù).2010(2)
[3]朱華偉.10G EPON系統(tǒng)ONU交換模塊設(shè)計[D].成都:電子科技大學(xué),2010:44-46
[4]伯杰龍.System Verilog驗(yàn)證方法學(xué)[M].北京:北京航空航天大學(xué)出版社,2007
[5]克里斯·斯皮爾著,張春,麥宋平,趙益新等譯.System Verilog驗(yàn)證:測試平臺編寫指南[M].北京:科學(xué)出版社,2009