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