潘偉濤,邱智亮
(西安電子科技大學(xué)綜合業(yè)務(wù)網(wǎng)理論及關(guān)鍵技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,西安710071)
為了推進(jìn)“三網(wǎng)融合”以及有線電視網(wǎng)雙向化改造,利用同軸電纜連接光纖主干網(wǎng)和用戶(hù)的傳輸系統(tǒng)成為符合我國(guó)當(dāng)前網(wǎng)絡(luò)設(shè)施現(xiàn)狀的重要解決方案,如HINOC(High Performance Network Over Coax)[1-3]、MoCA(Multimedia over Coax Alliance)[4]、HomePlug AV[5]等系統(tǒng)。其中,HINOC 網(wǎng)絡(luò)是利用有線電視網(wǎng)已有的同軸電纜線路分配網(wǎng)絡(luò),組建而成的最后100 m 范圍內(nèi)的寬帶接入網(wǎng)。該技術(shù)完全利用現(xiàn)有的有線電視網(wǎng)同軸電纜網(wǎng)絡(luò)布線,僅增加HINOC Bridge(HB)和HINOC Modem(HM)等相關(guān)設(shè)備,實(shí)現(xiàn)高速和高質(zhì)量的多業(yè)務(wù)接入,可提供給用戶(hù)IPTV、SDTV/HDTV 和高速上網(wǎng)等寬帶應(yīng)用。更為重要的是HINOC 系統(tǒng)是基于我國(guó)國(guó)情、自主研發(fā)的具有自主知識(shí)產(chǎn)權(quán)的系統(tǒng),這一產(chǎn)品的應(yīng)用將帶動(dòng)芯片制造、設(shè)備制造、直至業(yè)務(wù)提供商的產(chǎn)業(yè)鏈的發(fā)展,也為我國(guó)正在建設(shè)的下一代廣播電視網(wǎng)(Next-Generation Broadcast,NGB)及“三網(wǎng)融合”奠定堅(jiān)實(shí)的基礎(chǔ)。
HINOC 網(wǎng)絡(luò)協(xié)議棧為分層結(jié)構(gòu),自下而上依次為PHY 層(以下簡(jiǎn)稱(chēng)HIPHY[6])、MAC 層(以下簡(jiǎn)稱(chēng)HIMAC)和高層。MAC 層又可分為公共部分子層和匯聚子層,實(shí)現(xiàn)HINOC 網(wǎng)絡(luò)中的媒質(zhì)接入控制和業(yè)務(wù)適配功能;PHY 層規(guī)定了傳輸信號(hào)的幀結(jié)構(gòu)、信道編碼以及調(diào)制技術(shù)。為了提高數(shù)據(jù)搬移效率,MAC 層的主要功能需要由硬件完成。本文介紹了一種基于具有自主知識(shí)產(chǎn)權(quán)的HINOC MAC 層協(xié)議的硬件加速協(xié)處理的設(shè)計(jì)。
HIMAC 主要用于在CPU 軟件控制下,完成EPHY(以太網(wǎng)PHY)和HIPHY(HINOC PHY)之間的數(shù)據(jù)傳輸和信息交互。主要分為拆幀、組幀、調(diào)度、EMAC 接口控制、流分類(lèi)、插入捕獲及數(shù)據(jù)緩存等模塊。其詳細(xì)內(nèi)核結(jié)構(gòu)如圖1 所示。
圖1 HIMAC 系統(tǒng)整體框圖
HIMAC FPGA 對(duì)外接口有3 種:一種是EMAC接口,完成以太網(wǎng)幀的接收和發(fā)送,實(shí)現(xiàn)與高層進(jìn)行數(shù)據(jù)業(yè)務(wù)的交互;另一種是HIMAC 接口,完成HIMAC 幀的組幀和拆幀,實(shí)現(xiàn)HINOC 網(wǎng)絡(luò)內(nèi)部的數(shù)據(jù)傳輸;第3 種是CPU 接口,實(shí)現(xiàn)CPU 與HIMAC之間數(shù)據(jù)幀及控制幀的傳輸。
EPHY 和HIMAC 之間的數(shù)據(jù)處理流程比較簡(jiǎn)單,它們之間交互的信息只有EMAC 數(shù)據(jù)幀,直接和HIMAC 進(jìn)行數(shù)據(jù)傳輸。其數(shù)據(jù)處理流程是:當(dāng)EPHY 有以太網(wǎng)數(shù)據(jù)時(shí),EPHY 通過(guò)與EMAC 接口的信息交互把EMAC 數(shù)據(jù)搬移到EMAC 幀的接收緩存中實(shí)現(xiàn)EMAC 數(shù)據(jù)幀的接收;當(dāng)HIMAC 中的EMAC 幀發(fā)送緩存中有以太網(wǎng)數(shù)據(jù)要發(fā)送時(shí),通過(guò)EMAC 接口與外部EPHY 的信息交互實(shí)現(xiàn)EMAC 數(shù)據(jù)幀的發(fā)送。
HIPHY 交給HIMAC 處理的幀有兩種類(lèi)型,即數(shù)據(jù)幀和控制幀。當(dāng)HIPHY 的發(fā)送緩存中有HIMAC 幀要發(fā)送時(shí),HIPHY 首先會(huì)產(chǎn)生中斷觸發(fā)中斷服務(wù)程序,CPU 執(zhí)行中斷處理程序,讀取HIMAC 幀的幀頭信息并對(duì)該幀進(jìn)行判斷,如果是控制幀則交給CPU 處理,如果是數(shù)據(jù)幀,則從HIPHY的發(fā)送緩存直接搬移到HIMAC 的接收緩存中。同理,交給HIPHY 的幀也有兩種類(lèi)型,當(dāng)交給HIPHY的幀是控制幀,則由CPU 直接寫(xiě)到HIPHY 的接收緩存中,如果是數(shù)據(jù)幀則從HIMAC 的發(fā)送緩存搬移到HIPHY 的接收緩存中。
由于HIMAC 硬件協(xié)處理器承載著以太網(wǎng)幀與HINOC 幀之間數(shù)據(jù)的交換、轉(zhuǎn)發(fā)及傳輸功能,因此,不同業(yè)務(wù)的實(shí)現(xiàn)、不同類(lèi)型幀之間的轉(zhuǎn)換及調(diào)度、轉(zhuǎn)發(fā)功能是整個(gè)HIMAC 的核心。
流分類(lèi)模塊負(fù)責(zé)按照規(guī)則表的要求對(duì)流進(jìn)行規(guī)則匹配。流分類(lèi)模塊可在數(shù)據(jù)幀內(nèi)識(shí)別出IP 幀頭的位置以及IP 上層協(xié)議(如IGMP,ICMPv6,TCP,UDP)頭的位置;基于這些幀頭的位置,規(guī)則表規(guī)定了需要進(jìn)行匹配操作的關(guān)注窗口、匹配的操作值、匹配后要進(jìn)行的動(dòng)作等信息,流分類(lèi)模塊用關(guān)注窗口從數(shù)據(jù)幀中取出值與各條規(guī)則對(duì)比,得到需要對(duì)該數(shù)據(jù)幀進(jìn)行的操作;以指令碼的形式送出。流分類(lèi)的指令的內(nèi)容包括:指定優(yōu)先級(jí)、重定向(包含拷貝重定向)到CPU、丟棄包、插入、修改、刪除字段(最長(zhǎng)32 bit)。
流分類(lèi)對(duì)以太網(wǎng)數(shù)據(jù)包過(guò)濾和分類(lèi)后,得到分類(lèi)結(jié)果,即指令碼,分組處理模塊負(fù)責(zé)執(zhí)行這些指令碼,由此實(shí)現(xiàn)諸如訪問(wèn)控制、QOS 處理、IGMP Snooping 等相應(yīng)的功能。分組處理模塊需要完成的功能包括:控制EMAC 分組的正確接收、執(zhí)行流分類(lèi)模塊給出的指令、提取幀的源目的地址,幀長(zhǎng),VLAN 號(hào)等信息、把分組處理的結(jié)果告知統(tǒng)計(jì)模塊及實(shí)現(xiàn)幀數(shù)據(jù)在內(nèi)部總線上的正確搬移等功能。
組幀模塊通過(guò)與調(diào)度模塊和內(nèi)部總線模塊的信息交互把要發(fā)送的上層數(shù)據(jù)業(yè)務(wù)根據(jù)打包規(guī)則封裝成適合在HINOC 網(wǎng)絡(luò)中傳輸?shù)腍IMAC 幀格式,然后通知SLAVE 接口將該數(shù)據(jù)幀發(fā)送出去。而HIMAC 拆幀模塊則是將封裝在HIMAC 幀中的EMAC 幀拆分出來(lái)。圖2 是組幀過(guò)程示意圖,拆幀過(guò)程與之相反。
圖2 HIMAC 組幀示意圖
調(diào)度模塊是HIMAC 協(xié)處理器內(nèi)部的核心模塊之一,在整個(gè)HIMAC 中起著重要的作用。它連接著轉(zhuǎn)發(fā)表模塊、隊(duì)列管理模塊、內(nèi)部總線控制模塊、分組處理模塊、HIMAC 數(shù)據(jù)發(fā)送控制FIFO 以及捕獲和插入模塊等,在這些模塊之間進(jìn)行信息的控制、傳遞,最終有序、正確地完成EMAC 幀的接收和發(fā)送、HIMAC 幀的組幀和拆幀等工作。調(diào)度模塊可分為6 個(gè)部分:接收調(diào)度模塊、發(fā)送調(diào)度模塊、總調(diào)度模塊以及用來(lái)緩存數(shù)據(jù)的接收調(diào)度FIFO、發(fā)送調(diào)度FIFO 和調(diào)度結(jié)果FIFO。
轉(zhuǎn)發(fā)表模塊分為單播轉(zhuǎn)發(fā)表模塊和組播轉(zhuǎn)發(fā)表兩種。單播地址轉(zhuǎn)發(fā)表的主要功能為:根據(jù)接收調(diào)度模塊傳來(lái)的單播EMAC 幀的源MAC 地址、目的MAC地址、源端口號(hào)、VLAN 號(hào)(源端口VLAN_ID)以及VLAN 有效指示信息進(jìn)行學(xué)習(xí)和查表操作,查表成功則將查表得到的目的端口號(hào)以及接收到的VLAN 信息輸出給接收調(diào)度模塊,否則,指示查表失敗。同時(shí),為了使地址表的表項(xiàng)能夠持續(xù)更新,設(shè)置5 min 的老化時(shí)間,若一個(gè)表項(xiàng)的老化時(shí)間到達(dá),則被認(rèn)為是陳舊表項(xiàng),從地址表中刪除。而組播轉(zhuǎn)發(fā)表則是由CPU通過(guò)軟件的方式來(lái)完成組播轉(zhuǎn)發(fā)表的維護(hù)和更新。其中HIMAC 硬件協(xié)處理器完成兩個(gè)功能:一是從CPU 接口寄存器實(shí)時(shí)讀取軟件組播表信息,建立和更新硬件組播轉(zhuǎn)發(fā)表;二是根據(jù)調(diào)度器輸入的組播目的地址查找組播轉(zhuǎn)發(fā)表實(shí)現(xiàn)組播數(shù)據(jù)流的轉(zhuǎn)發(fā)。
由HINOC 網(wǎng)絡(luò)組網(wǎng)方式可知,HB 節(jié)點(diǎn)一端連接千兆以太網(wǎng),另一端通過(guò)一根同軸電纜連接HINOC 接入網(wǎng)。由于采用了TDM/TDMA 方式每個(gè)HINOC 接入網(wǎng)最多可包含32 個(gè)HM 節(jié)點(diǎn),各個(gè)節(jié)點(diǎn)之間都可以相互通信,類(lèi)似于一個(gè)32×32 的交換矩陣。系統(tǒng)采用了共享存儲(chǔ)式的交換結(jié)構(gòu),交換數(shù)據(jù)以隊(duì)列的方式存儲(chǔ)在共享存儲(chǔ)器中。在頻繁的數(shù)據(jù)出隊(duì)和入隊(duì)過(guò)程中,需要一個(gè)專(zhuān)門(mén)的隊(duì)列管理模塊來(lái)管理,更新和維護(hù)存儲(chǔ)器中的數(shù)據(jù)隊(duì)列。整個(gè)隊(duì)列管理的實(shí)現(xiàn)是以對(duì)每個(gè)鏈表節(jié)點(diǎn)的操作為基礎(chǔ)實(shí)現(xiàn)的。每個(gè)鏈表節(jié)點(diǎn)由數(shù)據(jù)部分和地址指針部分構(gòu)成,如圖3 所示。
圖3 鏈表節(jié)點(diǎn)結(jié)構(gòu)
在設(shè)計(jì)中,HINOC 網(wǎng)絡(luò)能夠支持IGMP、MLD、DHCP 等協(xié)議,而這些協(xié)議報(bào)文必須交給CPU 進(jìn)行處理,因此在HIMAC 中設(shè)計(jì)了捕獲模塊,用于將需要交給CPU 處理的報(bào)文捕獲給CPU。為了實(shí)現(xiàn)的簡(jiǎn)易性,設(shè)計(jì)為從總線上捕獲數(shù)據(jù)。捕獲的數(shù)據(jù)幀分為兩類(lèi):重定向到CPU 的數(shù)據(jù)幀及復(fù)制到CPU的數(shù)據(jù)幀。
當(dāng)CPU 產(chǎn)生(或者是轉(zhuǎn)發(fā))的數(shù)據(jù)幀需要由HIMAC 或EMAC 端口發(fā)送時(shí),就需要將這些數(shù)據(jù)幀插入到HIMAC 內(nèi)部,然后讓這些數(shù)據(jù)幀和普通的數(shù)據(jù)幀一起進(jìn)行調(diào)度、入隊(duì),出隊(duì)等操作,為此,設(shè)置了插入模塊作為CPU 的數(shù)據(jù)幀插入到HIMAC 內(nèi)部的通道??梢詫⒉迦肽K作為接收調(diào)度模塊進(jìn)行輪詢(xún)操作時(shí)的第三個(gè)外部接口,幀從CPU 出來(lái),經(jīng)調(diào)度模塊調(diào)度,就可以直接入隊(duì)。
整個(gè)HIMAC 硬件協(xié)處理器采用Verilog HDL 語(yǔ)言實(shí)現(xiàn)。為驗(yàn)證其邏輯功能的正確性,編寫(xiě)了CPU、HIPHY 及以太網(wǎng)幀產(chǎn)生模塊等BFM。規(guī)定其詳細(xì)功能列表,建立驗(yàn)證平臺(tái),制定相應(yīng)的測(cè)試用例。仿真驗(yàn)證采用可回歸的自動(dòng)報(bào)結(jié)果的檢驗(yàn)手段。在ModelSim 6.3 環(huán)境下通過(guò)邏輯仿真。結(jié)果表明,能夠?qū)崿F(xiàn)預(yù)定的各種功能。
3.2.1 驗(yàn)證平臺(tái)
FPGA 的驗(yàn)證平臺(tái)主要包括Altera 公司StratixⅡ系列的芯片EP2S180,PXA270 處理器及一些接口和存儲(chǔ)模塊等。驗(yàn)證平臺(tái)硬件框圖如圖4 所示。
圖4 硬件驗(yàn)證平臺(tái)
3.2.2 驗(yàn)證方案
HINOC 系統(tǒng)中,影響系統(tǒng)性能的因素主要有Pd周期及Pd 幀前/后保護(hù)期、幀間隔、調(diào)試方式(64/128/256QAM)[7-8]、MAP 規(guī)劃的不同等。設(shè)計(jì)中Pd周期、Pd 幀前/后保護(hù)期和幀間隔的基本單位為1/64 μs,這里是以HIPHY 的時(shí)鐘頻率(64MHz)為基準(zhǔn)。針對(duì)HINOC 系統(tǒng)的測(cè)試,本文設(shè)計(jì)了如圖5 所示的測(cè)試方案。
方便起見(jiàn),圖5 只給出了HIMAC FPGA 內(nèi)部的部分功能模塊。該測(cè)試方法可通過(guò)CPU 配置HINOC系統(tǒng)寄存器實(shí)現(xiàn),CPU 將HIMAC FPGA 和HIPHY FPGA 的模式寄存器置0,選取正常工作模式。HINOC 系統(tǒng)中,下行方向(HB→HM):HB 將收到的EMAC 幀進(jìn)行組幀后送往HIPHY 的發(fā)送緩存,然后在MAP 周期內(nèi)下行時(shí)隙時(shí)將組好的數(shù)據(jù)幀經(jīng)HIPHY 發(fā)送至HM,HM 將數(shù)據(jù)拆幀后,由EMAC 口發(fā)回SmartBits 測(cè)試儀;上行方向(HM→HB):HM 將收到的EMAC 幀完成組幀后向HB 請(qǐng)求信道預(yù)約,然后在HB 為其分配發(fā)送時(shí)隙內(nèi)將數(shù)據(jù)發(fā)送至HB,HB對(duì)數(shù)據(jù)拆幀后,由EMAC 口發(fā)回SmartBits 測(cè)試儀。
圖5 系統(tǒng)驗(yàn)證方案
使用Altera 公司的Quartus Ⅱ9. 1 工具對(duì)HIMAC 協(xié)處理器代碼進(jìn)行綜合,目標(biāo)器件為EP2S180F1020I4,綜合后的資源占用情況如表1所示。
表1 FPGA 資源統(tǒng)計(jì)
為測(cè)試系統(tǒng)的性能,對(duì)圖5 所示系統(tǒng)進(jìn)行下行傳輸測(cè)試和雙向傳輸測(cè)試。
(1)HINOC 系統(tǒng)下行傳輸測(cè)試
下行傳輸時(shí),MAP 規(guī)劃中僅僅存在下行時(shí)隙和MAP 幀,而不存在預(yù)約時(shí)隙和上行時(shí)隙。表2 給出了Pd 前后保護(hù)期分別為4 000 和20 000(接近理論最小保護(hù)時(shí)間)、256QAM 調(diào)制方式下的HINOC 系統(tǒng)下行傳輸?shù)臏y(cè)試結(jié)果。
表2 系統(tǒng)下行測(cè)試
表2 所測(cè)為無(wú)丟包情況時(shí)的HINOC 系統(tǒng)下行極限傳輸速率。圖6 給出了利用SmartBits 200 測(cè)試儀測(cè)得的表2 中序號(hào)8 情況時(shí)的測(cè)試結(jié)果。
圖6 系統(tǒng)下行測(cè)試結(jié)果
可見(jiàn),在EMAC 幀間隔為0.002 4 ms,幀長(zhǎng)度為固定1 500 byte 情況下,所統(tǒng)計(jì)的發(fā)送和接收的數(shù)據(jù)一致,且無(wú)出錯(cuò),網(wǎng)絡(luò)的單向數(shù)據(jù)傳輸速率可達(dá)83 Mbit/s,考慮到在每個(gè)MAP 周期內(nèi),CPU 需要處理控制幀、信令幀、生成MAP 規(guī)劃等,此速率實(shí)際上已接近該情況下的極限速率。
(2)HINOC 系統(tǒng)雙向傳輸測(cè)試
雙向傳輸時(shí),MAP 規(guī)劃內(nèi)包含上/下行時(shí)隙、預(yù)約時(shí)隙和MAP 幀。圖7 給出了Pd 周期為786 432,Pd 前/后保護(hù)期分別為6 400 和20 000,上下行切換間隔20 000,幀間隔為2 000 時(shí),利用SmartBits 600測(cè)試儀得到的測(cè)試結(jié)果。
圖7 系統(tǒng)雙向傳輸測(cè)試結(jié)果
由圖7 可知,測(cè)得的HINOC 系統(tǒng)下行傳輸速率為42 Mbps,上行傳輸速率為26 Mbps,測(cè)試結(jié)果達(dá)到設(shè)計(jì)要求。
提出了一種具有自主知識(shí)產(chǎn)權(quán)的HINOC 系統(tǒng)MAC 層硬件協(xié)處理器的設(shè)計(jì)方案。實(shí)驗(yàn)結(jié)果表明,該設(shè)計(jì)滿足HINOC 系統(tǒng)對(duì)各種數(shù)據(jù)幀處理速率的要求,同時(shí),一些原本由軟件完成的功能通過(guò)硬件來(lái)實(shí)現(xiàn),降低了CPU 的負(fù)荷,同時(shí)也提高了數(shù)據(jù)幀處理的效率。
[1] 國(guó)家廣播電影電視總局廣播科學(xué)研究院,北京大學(xué),西安電子科技大學(xué).高性能同軸電纜接入網(wǎng)(HINOC)物理層傳輸模式及媒質(zhì)接入控制協(xié)議(面向NGB 電纜接入技術(shù)的建議方案).2010 年.
[2] 趙翠,張誠(chéng),李紅濱,等.HINOC 系統(tǒng)硬件架構(gòu)和實(shí)現(xiàn)方法[J].廣播與電視技術(shù),2011,(10):39-42.
[3] 歐陽(yáng)峰,崔競(jìng)飛HINOC 技術(shù)概述和進(jìn)展[J].電視技術(shù),2011,(12):11-13.
[4] MoCA MAC/PHY Specification V1.0[S]. Multimedia Over Coax Alliance,2006.
[5] HomePlug AV Specification V1.0[S].HomePlug Power Alliance,2005.
[6] Cui Xiaoxin,Long Jinkai,Sun Bin,et al. A High Performance Baseband Transceiver IC for HINOC Communication System[C]//ICSICT2010,442-444,2010.
[7] Pfau T,Sebastian Hoffmann,Reinhold Noe.Hardware-Efficient Coherent Digital Receiver Concept with Feedforward Carrier Recovery for M-QAM Constellations[J]. Journal of Lightwave Technology,2009,27:989-999.
[8] Adnan Zafar,Zaineb Farooq S. Implementation and Analysis of QPSK &16QAM Modulator & Demodulator[C]//ICAST2008,64-68,2008.