??? 摘? 要: 根據交換式路由器的設計要求、結構功能及千兆比以太網的具體特點,使用介質訪問控制子層的控制芯片XMACII和大容量的FPGA,完成了千兆比以太網接口的設計與實現。?
??? 關鍵詞: 千兆比以太網接口? XMACII? FPGA
?
隨著寬帶網絡的普及和網絡應用的多業務需求,特別是基于視頻多媒體等的大流量網絡業務的增多,傳統的路由器越來越成為高速網絡的瓶頸。由于路由器各個端口之間是通過共享總線相連,路由器的端口速率比較低,因而限制了轉發IP分組的能力。傳統的路由器在運行路由協議、維護路由表等方面都難以滿足現代IP通信網絡的要求。?
交換式路由器是采用新型交換結構來實現分組路由轉發功能的下一代路由器。交換式路由器可以增加鏈路帶寬的利用率;簡化協議的復雜度;同時,還可以減輕網管的負擔;在采取一定的措施后,路由器也可以提供一定程度的服務質量保證。為提高路由器轉發分組的速度和能力,路由器的各端口之間采用交換結構進行互連,這樣路由器的端口速率大大提升,可以與ATM交換機相比,滿足了日益增長的各種網絡服務的要求。?
交換式路由器被設計成能夠在各種不同類型的物理網絡之間完成路由功能。千兆比以太網是高速率的物理網絡,具有很多與其他物理網絡差別較大的物理特性,因而需要專用的接口電路以屏蔽千兆比以太網的具體物理特性,向上提供標準的數據交換接口,實現路由器的數據鏈路層和千兆比以太網間的數據傳送。?
千兆比以太網接口采用了介質訪問子層的訪問控制器XMACII完成介質訪問子層的功能,采用大容量的FPGA實現邏輯控制判決的功能,實現了路由器與千兆比以太網間的高速數據傳送。?
1 介質訪問控制子層的控制芯片——XMACII?
XMACII是Vitesse公司的下一代千兆比以太網介質訪問控制器產品,能提供高性能單片千兆比以太網上行鏈路、千兆比數據交換、緩沖中繼,內含點到點應用服務和網絡服務適配器的解決方案。它符合IEEE 802.3z千兆比以太網和GMII(1000BASE-T)標準規范和IEEE802.3x基于幀的流量控制規范。?
XMACII千兆比以太網控制器為3.3V的CMOS芯片,240引腳的PQFP封裝。XMACII的內部結構圖如圖1所示。?
?
?
XMACII片內集成了發送和接收FIFO,以及8B10B PCS譯碼/解碼器。32位數據寬度的8KB接收FIFO和4KB發送FIFO緩沖高速的數據,總線支持數據突發,確保2000Gbit的雙工帶寬。FIFO接口能夠由硬件控制,不需要占用CPU資源。PCS包含兩個用于物理層訪問的接口:FC-0和GMII。具有8B10B譯碼/解碼器的FC-0接口提供了更加可靠的數據傳輸,因此采用了將FC-0接口直接連接到10bit FC-0 1.25Gbit以太網的收發器(SERDES)的方案,GMII接口沒有使用。?
??? XMACII包含67個配置寄存器和53個統計計時器,這些寄存器通過管理寄存器和控制接口(Management Registers and Control Interface)來訪問。XMACII通過設置這些管理寄存器的值實時地對千兆比以太網的訪問進行控制,如地址匹配、字節順序、數據傳送可選項的設置,以及流量控制、VLAN的設置和自回環的控制等。XMACII還隨時統計發送和接收的狀態數值,并及時更新SNMP和RMON管理計數器組,以提供網絡傳輸的各種狀態信息。全套以太網MIB狀態計數器與IETF和ISO定義相符。?
發送數據的時候,主機需先檢查XMACII的XmtrRdy信號,有效時則使TxPktValid信號有效,以表明傳輸到XMACII的包的開始。該信號一直有效直至包的發送結束。該信號有效后,或隨著它的有效,主機驅動HostTxData數據線(31:0)和適當的TxByteEn(3:0)信號及TxValid信號。在XmtrRdy信號仍然有效時,當TxValid信號有效,XMACII會在HOST_CLK時鐘的上升沿鎖定HostTxData數據線上的數據。?
主機接收數據幀之前,需要先使HostRcvRdy信號有效,而后XMACII使RxPktValid有效,以表明發送給主機的數據幀開始傳送。一旦這個信號申明主機要在HOST_CLK信號的上升沿鎖住數據線HostRxData(31:0)上XMACII提交的數據,信號RcvValid表明數據線上的數據是有效數據。RxPktValid信號一直有效,直到當前數據幀的最后一個字傳至主機。?
XMACII的REF_CLK輸入的125MHz時鐘用于內部狀態機,對時鐘的邊沿要求較高。實現時使用時鐘芯片先對125MHz的時鐘進行整形,然后輸入。管理寄存器和控制接口的讀寫過程中也要注意,NPCS信號在NPRdy信號有效后必須繼續保持有效兩個時鐘周期以上,這樣才能使數據正確地寫入和讀出。?
2 設計方案?
根據千兆比以太網接口的功能特點和設計要求,本設計方案采用了千兆比以太網的介質訪問控制器XMACII實現在數據鏈路層和物理層間的數據交換。路由器側可以通過讀寫XMACII寄存器對數據傳送進行控制并得到相關的統計信息。?
XMACII使用10bit FC-0接口規范連接PCS塊和物理介質。8B10B PCS 編碼/解碼器從介質訪問控制器接收MAC格式的幀,進行8B10B傳輸編碼并將10bit并行數據送往物理接口,或者從10bit物理接口接收已編碼的數據并經過8B10B接收解碼送往MAC。因而在采用光纖介質的千兆比以太網中廣播的數據流經過光纖通道接口后的串行數據必須先通過千兆比以太網收發器(又稱Serdes,并行轉換器)轉化為并行的10位編碼數據才能送往XMACII的FC-0接口;XMACII的FC-0接口送出的10bit編碼數據也要先經過Serdes轉換為10倍波特率的數據流,再經光纖通道接口向以太網廣播。所以在控制器和光纖通道接口中間還需要連入以太網收發器。方案選定的千兆比以太網收發器是Vitesse公司的VSC7135。?
千兆比以太網的數據傳輸速率很高,最高數據速率能達到1.25Gb/s。而數據鏈路層處理分組的速度相對較慢,因而會在突發大量數據(data bursting)時數據難以及時處理,出現大量丟包。雖然介質訪問控制器中集成了接收和發送FIFO以進行數據緩沖,但介質訪問控制器XMACII的內部FIFO容量仍然較小。為避免因數據鏈路層來不及處理數據而大量丟包的情況,在介質訪問控制器XMACII和路由器側上層設備之間加上外接的大容量FIFO作為數據緩沖。?
在各個器件間傳送數據時,為滿足各個器件讀寫數據的邏輯時序要求,協調各器件工作,將介質訪問控制器XMACII、外接的FIFO和路由器側上層設備的相關控制邏輯信號接入一大容量的現場可編程邏輯門陣列(FPGA),編程完成各個邏輯的判決和驅動,完成各部分的協調工作,完成各器件間的數據傳輸。為方便數字邏輯功能的設計,將XMACII上行的數據和路由器側發送的數據先由FPGA鎖存一個時鐘周期再送往相應的FIFO。?
綜上所述,該千兆比以太網接口的結構可由圖2所示。?
?
?
3 FPGA邏輯控制功能實現?
FPGA片內程序實現路由器側高層設備、千兆比以太網介質訪問控制器XMACII和大容量FIFO間數據傳送的邏輯控制。FPGA芯片采用Altera公司的EPF10K50E-QC240。片內程序分為兩個模塊:發送數據模塊和接收數據模塊,兩個模塊相互間基本沒有聯系。?
發送數據模塊處理路由器側高層設備發送的數據,將其鎖存一個周期后送入外接FIFO,并控制其以正確的時序從FIFO中讀出并送入XMACII。將數據鎖存一個時鐘周期的原因是考慮到由路由器側發送的數據如果直接寫入FIFO,對控制信號的判決會有相當嚴格的要求以致實現時難以達到。故將數據鎖存一次以方便控制邏輯的判決和驅動。另外還需要在數據寫入FIFO時由計數器累加得到每一個數據幀的長度,以便在數據讀出時能確定每一個數據幀的邊界。FIFO中每一個數據幀的長度按順序存放于FPGA內部用軟件實現的一個FIFO中。具體過程:當一個數據幀整個寫入外接FIFO后,累加計數得到該數據幀的字節數也同時寫入了FPGA內部的FIFO;而當數據幀即將從FIFO中讀出時,該幀的字節數首先從FPGA的內部FIFO中讀出,讀幀數據的同時該字節數相應遞減,至零為止,一個數據幀被整個讀出。如此反復進行。?
接收數據模塊處理XMACII接收的數據,同樣將其鎖存一個時鐘周期后送入FIFO中,由路由器側高層設備將數據從FIFO中讀出。在數據寫入FIFO時仍需記錄每一個數據幀的長度,路由器側讀取數據的時候一次讀出整個數據幀。具體的實現與發送模塊類似。由于XMACII寫入FIFO時的數據寬度為32位,而路由器側高層設備讀取FIFO時的數據寬度是16位,因而在數據幀的字節計數時應有相應的處理。?
由此設計方案得到交換式路由器的千兆比以太網接口電路原理圖,繪制PCB圖并制作出印刷電路板,編寫VHDL程序。經過對此千兆比以太網接口的反復調試,該接口能夠很好地完成路由器側高層設備和千兆比以太網間的數據交換,數據速率能夠達到千兆比以太網的要求。通過配置XMACII寄存器,能夠對數據的傳送進行實時的控制和調節,并可得到千兆比以太網的數據收發的各種統計信息。該千兆比以太網接口用在實用化綜合接入系統的交換式邊緣路由器中,路由器可通過該接口由千兆比光纖接入千兆比以太網,與以太網中其他的計算機通信。該交換式路由器的千兆比以太網接口很好地達到了設計要求。?
參考文獻?
1 GigaBit Ethernet Accelerating-the standard for speed.Gigabit Ethernet Alliance,1997?
2 XaQti XQ11800FP 1000 Mbps Gigabit Ethernet Controller Data Sheet.Vitesse Semiconductor Corporation, http://www.vitesse.com/?
3 High-Speed Board Design Techniques. Advanced Micro Devices, Inc. 1997?
4 FLEX 10K Embedded Programmable Logic Family Data.Altera, http://www.altera.com/?
5 候伯亨,顧新.VHDL硬件描述語言與數字邏輯電路設計,西安:西安電子科技大學出版社,1999