摘 要: MAC(Media Access Control)層位于網絡結構七層協(xié)議中的數據鏈路層,,控制局域網中的多個節(jié)點對共享介質的訪問,保證相鄰節(jié)點之間數據的可靠傳輸,。本文介紹一種吉比特MAC接口的結構,,該MAC采用基于描述符傳輸的DMA(Direct Memory Access)和雙通道的MTL(MAC Transaction Layer),,在半雙工模式下支持10/100 Mb/s,、全雙工模式下支持10/100/1 000 Mb/s的網絡數據傳輸速率,。
關鍵詞: MAC;描述符,;DMA,;MTL
0 引言
在計算機網絡技術飛速發(fā)展的新時期,人們對現有資源共享越來越依賴網絡,,并設計開發(fā)了多種不同應用范圍的局域網技術,。其中,以太網憑借其較高的靈活性和操作性,,在局域網技術使用過程中得到了飛速迅猛的發(fā)展,。隨著人們對網絡帶寬和數據傳輸速率要求的提高,千兆位以太網應運而生,。千兆位以太網仍然保留了以太網的幀格式,、CSMA/CS機制和MTU[1],并且引入了載波擴展和幀突發(fā)機制[2],。以太網IEEE802.3協(xié)議根據LAN的特點,,把數據鏈路層分為LLC(邏輯鏈路控制)和MAC(介質訪問控制)兩個子層。MAC層協(xié)議作為數據幀收發(fā)的基礎,,是以太網技術的核心,,主要負責上層數據和物理層的數據流量控制以及數據流的檢測、校驗工作,。
IP核是采用Verilog等硬件描述語言實現的功能塊,。使用IP核的方式便于實現元件系統(tǒng)引用、修改基本元件功能及IP核復用都非常容易,。在SoC設計中,,IP核的使用可以縮短設計周期,降低設計風險,,已經成為SoC設計中不可缺少的部分[3],。
本文主要介紹吉比特MAC接口IP軟核的結構和實現。
1 MAC功能
本設計中的MAC遵守CSMA/CD協(xié)議,,網絡數據在發(fā)送的過程中打包成標準的IEEE802.3幀格式,;在接收數據過程中,對數據幀進行CRC校驗,,有效刪除錯誤數據,,提高數據傳輸效率[4]。支持半雙工和全雙工的操作模式,,半雙工模式下支持10 Mb/s/100 Mb/s的網絡數據傳輸速率,,提高載波擴展和幀突發(fā)機制,,并以back-pressure的形式進行流控制;全雙工模式下支持10 Mb/s/100 Mb/s/1 000 Mb/s的網絡數據傳輸速率,,并采用pause幀的方式進行流控制,;支持可編程的幀間距以及幀長度以適應標準以太網幀和長達16 kB的超大以太網幀;支持IPv4,、IPv6和ICMP網絡協(xié)議和TCP,、UDP傳輸協(xié)議;提供GMII/RGMII/MII/RMII端口與相應的PHY端口連接,,并且提供MDIO主機對PHY進行配置管理,。
2 MAC體系結構
如圖1所示,MAC由以下四個部分構成:MAC-AXI,、MAC-DMA,、MAC-MTL、MAC-CORE,。MAC采用獨立的數據傳輸與寄存器訪問接口,,通過AXI接口與DSP連接,通過AXI主機端口進行數據的傳輸,,通過AXI從機端口訪問DMA和MAC的系統(tǒng)控制,、狀態(tài)寄存器(CSR)[5]。AXI接口基于burst的傳輸方式和獨立的控制,、數據及響應通道,,提高了傳輸效率和總線的利用率;DMA提供獨立的數據和寄存器訪問接口,,數據端采用基于描述符的傳輸將數據傳輸到MTL,,大大提高了數據傳輸效率;MTL提供兩個FIFO對DMA與MAC-CORE之間傳輸的數據進行緩存,;MAC-CORE對網絡數據幀進行接收發(fā)送并對PHY進行配置管理,;各個層次都提供了單獨的發(fā)送、接收通道,,加快數據傳輸速率,。此外,該MAC IP核的各個層次可獨立,,用戶可以根據自己的需求選擇合適的結構,。
2.1 AXI接口
MAC通過AMBA3 AXI總線接口與DSP連接。AXI主機接口支持burst請求以隊列的形式發(fā)出讀寫請求,,并通過請求重排序,,數據交錯使得主機可以更加靈活地選擇優(yōu)先請求、慢速外設從機。在寫數據通道設計了一個深度為8的數據請求FIFO,,這樣AXI總線上最多能支持8個讀寫請求,。此外還設計了深度為2的數據FIFO和響應FIFO,用以支持DMA的OSF操作模式,,提高數據傳輸效率,。AXI從機接口訪問MAC的系統(tǒng)控制、狀態(tài)寄存器(CSR),。
該接口提供128 bit的數據位寬,、32 bit的地址位寬,,最大burst長度為32,,每個ID最多支持4個讀/寫請求,為數據的高效傳輸提供了保障,。該接口允許來自不同DMA通道的讀寫同時傳輸,,以提高總線的利用率。另外,,為了減少整個芯片的功耗,,DSP可以通過控制AXI接口使MAC進入低功耗模式。
2.2 MAC-DMA
DMA模塊實現MTL模塊和AXI接口之間的數據交換,,DSP通過AXI從機接口配置DMA寄存器直接啟動MAC,,DSP可以通過設置DMA CSR來控制DMA的操作。該模塊采用128 bit的數據位寬與AXI接口和MTL模塊連接,。如圖2所示,,DMA提供獨立的CSR訪問接口和數據接口;具有獨立的發(fā)送,、接收引擎,,發(fā)送引擎將數據從DSP的發(fā)送數據buffer傳輸到MTL,接收引擎將數據從MTL傳輸到DSP接收數據buffer,,描述符作為這些buffer的指針,;沖裁模塊除了對讀寫操作進行沖裁和發(fā)送接收之間的沖裁之外,還包括對描述符傳輸與數據傳輸的沖裁,。讀寫數據通過數據單元緩沖,,提高傳輸效率。
DMA通過描述符的傳輸在DSP盡量少干涉的情況下實現數據交互,,每個描述符可以傳輸8 KB的數據,,描述符地址寬度與總線寬度一致。描述符有兩類:發(fā)送描述符(TDES0-3)和接收描述符(RDES0-3),,如圖3所示,,每一類描述符包含兩個buffer、兩個字節(jié)計數buffer和兩個指向DSP發(fā)送、接收數據buffer的地址指針,。每一個描述符最多指向兩個數據buffer,,數據buffer可以包含一整幀的數據或者不滿一幀的數據,但是不能超過一幀,,并且只含數據,,buffer狀態(tài)包含在描述符中。一幀的數據可以跨越多個數據buffer,,但是一個描述符中的數據不能跨越多幀,。描述符列表有兩種結構:環(huán)型,每個描述符指向兩個數據buffer,,執(zhí)行到最后一個描述符時跳回描述符列表的首地址,;鏈接型,將DES3配置成下一個描述符地址形成描述符鏈,,這種模式下的描述符只能指向一個數據buffer,。
與以往基于計數的DMA傳輸相比,采用基于描述符傳輸的DMA每次傳輸的數據量增大,,傳輸速率更快,。此外,DMA具有單獨的發(fā)送,、接收引擎可加快數據的傳輸,,并提供幀分隔符以優(yōu)化報文結構的傳輸,對任何正確或錯誤的傳輸都給出狀態(tài)標識位,,增強數據傳輸可靠性,,支持可編程地發(fā)送、接收DMA引擎burst尺寸以提高總線利用率,,支持每一幀的發(fā)送接收完成中斷控制和各種操作情況下可編程的中斷選擇,。
2.3 MAC-MTL
MTL作為DMA的從設備,采用128 bit數據位寬與DMA和MAC-CORE相連,,數據傳輸以簡單的FIFO協(xié)議執(zhí)行操作,。該模塊包含兩個數據通道,發(fā)送通道和接收通道,。發(fā)送通道將DMA的數據傳輸到MAC-CORE,,DMA控制發(fā)送通道的所有傳輸;接收通道則把MAC-CORE的數據傳輸到DMA,,如圖4所示,。每個通道都含有單獨的讀寫控制模塊。根據接收幀的狀態(tài)信息,,接收寫控制模塊對接收幀進行過濾,,刪除錯誤幀,。在發(fā)送過程中產生沖突時,發(fā)送讀模塊將沖突的數據幀重新發(fā)送到MAC-CORE端,。
MTL提供了兩個8 KB的雙端口異步FIFO緩存DMA與MAC-CORE之間傳輸的數據幀,。Tx FIFO緩存DMA從DSP內存讀取且尚未被發(fā)送到MAC的數據,Rx FIFO保存從以太網接收且尚未被傳輸到DMA的數據,。除了緩存每一幀的數據外,,每一幀的狀態(tài)信息緊跟數據存入FIFO中,而不需要額外的FIFO來保存,,因此只要FIFO未滿就能不斷接收數據幀,,提高傳輸效率。數據FIFO通過選擇信號啟動,,即FIFO不工作時處于休眠狀態(tài),,減小功耗。MTL將FIFO的空滿狀態(tài)信息反饋給DMA,,再由DMA控制發(fā)送接收操作,。此外,,Rx FIFO滿的情況下,,可以通過pause幀控制或產生back-pressure給MAC-CORE來控制數據幀的接收,進行流控制,。Tx FIFO的flush操作則是通過軟件來控制的,。
2.4 MAC-CORE
MAC-CORE有發(fā)送、接收兩個通道,,實現PHY與MTL模塊的數據交互,,具有單獨的地址過濾單元,對接收數據幀的地址進行檢查以便決定接收幀的傳輸與否,。支持多種地址過濾方式:目的地址/源地址過濾,、單播地址/多播地址過濾,另外還可以提供哈希表對地址進行過濾,,具有單獨的CRC模塊,,對每一個接收幀進行CRC校驗,對需要發(fā)送的幀產生CRC檢驗碼,。支持可編程的IFG和接收幀的IEEE802.1Q VLAN檢測,。對IPv4、IPv6數據包負載進行TCP,、UDP,、ICMP檢驗以及IPv4首部檢驗和驗證。提供四種PHY端口:MII,、GMII,、RMII、RGMII,并且輸出端口的數據并行輸出,,提高數據傳輸效率,。提供MDIO模塊對PHY進行配置和管理。
3 MAC體系結構
在VCS驗證平臺下,,分別在10 Mb/s/100 Mb/s/ 1 000 Mb/s傳輸速率下對MAC IP核的RTL級代碼進行了模塊級和系統(tǒng)級驗證,,主要驗證其邏輯功能的正確性,邏輯驗證和功能結果均符合要求,。圖5為半雙工模式下100 Mb/s傳輸速率MAC模擬波形圖,,圖6是全雙工模式下1 000Mb/s傳輸速率MAC模擬波形圖。模擬驗證表明,,該結構的MAC設計達到了預期目標,。
4 結束語
本文針對千兆位以太網的要求,介紹了一種吉比特MAC接口,,用Verilog硬件描述語言,,實現了一個RTL級的IP核,該MAC采用AXI接口,,連續(xù)發(fā)送burst請求,,各個通道獨立,提高總線利用率,?;诿枋龇麄鬏數腄MA在沒有CPU干涉的情況下,一次可以傳輸大量的數據,,獨立的雙通道MTL為數據快速傳輸提供了保障,。MAC-CORE提供了多種類型的PHY端口,數據并行輸出,,加快了傳輸速率,。最后對該MAC進行了模擬和驗證。驗證結果表明,,本文設計的模塊功能正確,,達到了預期目標。
參考文獻
[1] IEEE P802.3ba(tm) D3.2-2010. Telecommunication and information exchange between system-local and metropolitan area networks specific requirements Part3: carrier sense multiple access with collision detection(CSMA/CD)access methodand physical layer specifications[S]. 2010.
[2] 蔡開裕,,朱培棟,,徐明.計算機網絡[M].北京:機械工業(yè)出版社,2008.
[3] 韓建,,陳嵐,,粟雅娟,等.基于用戶的IP核評測方法[J].微電子學與計算機,,2009,,26(11):43-47.
[4] 張偉華,,魏仲慧,何昕.嵌入式通用千兆以太網接口的設計與實現[J].儀表技術與傳感器,,2011(6):41-43,,47.
[5] 吳俊杰,吳建輝.以太網MAC控制器的MII接口轉RMII接口的實現[J].電子器件,,2008(2):712-715.