基于網(wǎng)絡(luò)處理器的彈性分組環(huán)接入實現(xiàn)
關(guān)鍵詞:網(wǎng)絡(luò)處理器;IXP1200;彈性分組環(huán);POS
1 引言
城域網(wǎng)存在的主要問題是帶寬和QoS的問題,隨著局域網(wǎng)和廣域網(wǎng)技術(shù)的長足發(fā)展,城域網(wǎng)已成為整個通信網(wǎng)絡(luò)中的瓶頸。基于TDM的傳統(tǒng)SDH城域網(wǎng)已不能很好滿足日益增長的業(yè)務(wù)需求,近年來,提出了主要面向城域網(wǎng)的彈性分組環(huán)技術(shù),并由IEEE 802.17工作組完成了標(biāo)準(zhǔn)化工作,于2004年6月24日發(fā)布了802.17-2004標(biāo)準(zhǔn)[1]。彈性分組環(huán)是一種基于雙環(huán)拓?fù)涞募夹g(shù),能夠在兩條單向環(huán)路上沿相反方向傳輸數(shù)據(jù)。它結(jié)合了以太網(wǎng)的經(jīng)濟性、靈活性和SDH的高帶寬效率及可靠性,利用空間重用、統(tǒng)計復(fù)用和環(huán)路保護(hù)來提高帶寬利用率和保證用戶的網(wǎng)絡(luò)質(zhì)量。
網(wǎng)絡(luò)處理器是經(jīng)過專門設(shè)計和高度優(yōu)化來完成各種網(wǎng)絡(luò)功能的專用指令處理器,又是軟件可編程的芯片,表現(xiàn)出高效的并行處理能力和適應(yīng)性。其中,IXP1200是Intel公司推出的網(wǎng)絡(luò)處理器產(chǎn)品,它以優(yōu)異的性能被廣泛應(yīng)用于通信網(wǎng)絡(luò)領(lǐng)域。文獻(xiàn)[2]探討了基于IXP1200的路由器技術(shù),文獻(xiàn)[3]則詳細(xì)介紹了IXP1200中的微引擎設(shè)計方法??梢?,由于硬件的高效性和軟件的可擴展性,利用IXP1200網(wǎng)絡(luò)處理器來實現(xiàn)彈性分組環(huán)的接入是一種可行而有效的方案。
2 網(wǎng)絡(luò)處理器介紹
網(wǎng)絡(luò)處理器一般由一個核心處理器和若干個智能協(xié)處理器組成,并發(fā)同步完成數(shù)據(jù)包的處理。同時還集成了一些專用硬件處理單元,如CRC校驗、Hash單元等,在處理線速上已經(jīng)達(dá)到并超過10Gbps。它兼顧了GPP的靈活性和ASIC的執(zhí)行效率,為從第2層到第7層的多種應(yīng)用提供了良好的支持。
IXP1200網(wǎng)絡(luò)處理器是Intel公司推出的第一代成熟網(wǎng)絡(luò)處理器[4],它集成了1個StrongARM核以及6個獨立的32位RISC微引擎,再加上硬件的多線程支持,可以實現(xiàn)高速的數(shù)據(jù)處理。其中,StrongARM核最高的工作頻率為232MHz,用于管理和控制任務(wù),如地址學(xué)習(xí)、路由表的維護(hù)以及網(wǎng)絡(luò)管理等。微引擎則工作于數(shù)據(jù)層面,用于實現(xiàn)數(shù)據(jù)分組的分類、處理和轉(zhuǎn)發(fā)等功能。每個微引擎支持4個線程,單個時鐘周期即可完成算術(shù)邏輯運算和移位操作,實現(xiàn)零開銷的上下文切換,這些性能使得6個微引擎在1秒鐘內(nèi)能夠轉(zhuǎn)發(fā)高達(dá)300萬個第3層數(shù)據(jù)分組。
IXP1200還提供了豐富的外部接口單元,其中SRAM單元和SDRAM單元提供了連接存儲芯片的接口,最大數(shù)據(jù)吞吐率分別達(dá)到464Mbps和928Mbps;PCI單元為外部主處理器和MAC設(shè)備等提供了32位PCI 2.2總線,最大數(shù)據(jù)吞吐率達(dá)到264Mbps;FBI單元為外部MAC設(shè)備提供了高速的IX總線,用于實現(xiàn)各種網(wǎng)絡(luò)的接入功能,最大數(shù)據(jù)吞吐率達(dá)到6.6Gbps。
3 彈性分組環(huán)的接入實現(xiàn)方案
彈性分組環(huán)具有雙環(huán)拓?fù)浣Y(jié)構(gòu),包括兩條沿相反方向傳輸數(shù)據(jù)的單向環(huán),分別稱之為環(huán)路0和環(huán)路1。圖1顯示了彈性分組環(huán)的站點結(jié)構(gòu)。
按照802.17-2004標(biāo)準(zhǔn),彈性分組環(huán)包括四個層面,由下至上分別為:物理層與物理層適配子層、MAC數(shù)據(jù)通路子層、MAC控制子層和MAC客戶子層[1]。其中,彈性分組環(huán)的接入在MAC客戶子層完成。設(shè)計的彈性分組環(huán)接入平臺功能主要包括:
(1)對來自以太網(wǎng)的業(yè)務(wù)數(shù)據(jù),若目的地址為以太網(wǎng)則直接轉(zhuǎn)發(fā)出去;若目的地址為彈性分組環(huán)網(wǎng),則對以太網(wǎng)包進(jìn)行深度處理,完成RPR幀格式封裝,對各種不同的業(yè)務(wù)數(shù)據(jù)進(jìn)行優(yōu)先級分類,并轉(zhuǎn)發(fā)到彈性分組環(huán)接口等。
(2)對來自彈性分組環(huán)的業(yè)務(wù)數(shù)據(jù)進(jìn)行判別,丟棄重新接入環(huán)路的業(yè)務(wù)數(shù)據(jù),對轉(zhuǎn)發(fā)到以太網(wǎng)的業(yè)務(wù)數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)換為以太網(wǎng)幀轉(zhuǎn)發(fā)出去。
(3)完成地址學(xué)習(xí)、地址映射、路由表維護(hù)、業(yè)務(wù)調(diào)度和流量管理等。
圖1 彈性分組環(huán)站點結(jié)構(gòu)圖
圖2 基于IXP1200的彈性分組環(huán)接入平臺硬件結(jié)構(gòu)
3.1 硬件設(shè)計
利用IXP1200網(wǎng)絡(luò)處理器設(shè)計的彈性分組環(huán)接入平臺硬件結(jié)構(gòu)如圖2所示。
接入平臺主要設(shè)計了以下幾個單元:
(1)網(wǎng)絡(luò)處理器單元:包括1塊IXP1200網(wǎng)絡(luò)處理器,作為整個接入平臺的核心處理部分,主要完成數(shù)據(jù)幀格式的轉(zhuǎn)換、CRC校驗、數(shù)據(jù)轉(zhuǎn)發(fā)、地址學(xué)習(xí)、路由表建立和維護(hù)、業(yè)務(wù)調(diào)度以及流量管理等功能。
(2)以太網(wǎng)接口單元:包括1塊以太網(wǎng)MAC層芯片IXF440和1塊以太網(wǎng)收發(fā)器LXT9763,并通過變壓器連接到4路以太網(wǎng)接口。
(3)彈性分組環(huán)接口單元:通過FPGA完成IX總線到彈性分組環(huán)POS接口的轉(zhuǎn)換,提供兩路POS接口,分別接入彈性分組環(huán)網(wǎng)的環(huán)路0和環(huán)路1。
(4)調(diào)試接口單元:包括1個RJ45網(wǎng)口和1個RS232串口。IXP1200的PCI單元通過82559ER芯片完成PCI到以太網(wǎng)接口的轉(zhuǎn)換,并通過變壓器連接到網(wǎng)口;UART單元通過變壓器連接到串口。網(wǎng)口和串口用于接入平臺的調(diào)試,在調(diào)試完成后可以當(dāng)作普通通信口使用。
(5)存儲器單元:包括128M字節(jié)的SDRAM 、8M字節(jié)的SRAM和8M字節(jié)的FLASH。其中SDRAM主要用于存儲應(yīng)用代碼、大型數(shù)據(jù)結(jié)構(gòu)和路由表;SRAM主要用于存儲路由表索引和暫存數(shù)據(jù);而FLASH主要用于存儲系統(tǒng)引導(dǎo)代碼。
3.2 軟件設(shè)計
接入平臺的軟件設(shè)計主要包括IXP1200內(nèi)部StrongARM核及微引擎的軟件設(shè)計和基于FPGA實現(xiàn)的IX Bus/POS接口轉(zhuǎn)換設(shè)計兩部分。
3.2.1 StrongARM核和微引擎的軟件開發(fā)
IXP1200網(wǎng)絡(luò)處理器是一塊軟件可編程的芯片,內(nèi)部的StrongARM核和微引擎都有獨立的軟件系統(tǒng),分別完成控制層面和數(shù)據(jù)層面的功能。其軟件體系結(jié)構(gòu)如圖3所示。
StrongARM核的軟件結(jié)構(gòu)包括操作系統(tǒng)、板極支持包、驅(qū)動和網(wǎng)絡(luò)應(yīng)用等模塊。操作系統(tǒng)采用VxWorks,它是專門為實時嵌入式系統(tǒng)設(shè)計開發(fā)的操作系統(tǒng)軟件,為用戶提供了高效的實時任務(wù)調(diào)度、中斷管理和豐富的系統(tǒng)資源、網(wǎng)絡(luò)協(xié)議等。板極支持包用于完成硬件初始化。驅(qū)動模塊包括微引擎、IX總線以及其它I/O接口的驅(qū)動程序。通信模塊通過共享內(nèi)存和消息隊列等方式完成StrongARM核和微引擎之間的通信。網(wǎng)絡(luò)應(yīng)用模塊則完成路由表管理、異常數(shù)據(jù)包處理、公平控制和拓?fù)浔Wo(hù)等。StrongARM核的軟件開發(fā)主要用與VxWorks配套的集成開發(fā)軟件Tornado完成[5]。
微引擎的開發(fā)則采用Intel專門設(shè)計的開發(fā)平臺Developer Workbench,既可以進(jìn)行硬件調(diào)試,也可以進(jìn)行軟件仿真[6]。IXP1200中,6個微引擎共同完成數(shù)據(jù)層面的功能。其中微引擎0和微引擎1分別接受來自以太網(wǎng)和彈性分組環(huán)的數(shù)據(jù),完成數(shù)據(jù)的分類和初步處理;微引擎2和微引擎3分別對來自以太網(wǎng)和彈性分組環(huán)的數(shù)據(jù)進(jìn)行深度處理,完成CRC校驗和幀格式轉(zhuǎn)換;微引擎4進(jìn)行隊列調(diào)度和流量管理;微引擎5讀取調(diào)度線程分配的任務(wù)將數(shù)據(jù)包發(fā)送出去。
圖3 IXP1200的軟件體系結(jié)構(gòu)
圖4 IX Bus/POS接口轉(zhuǎn)換實現(xiàn)的結(jié)構(gòu)框圖
3.2.2 IX Bus/POS接口轉(zhuǎn)換實現(xiàn)
IXP1200對外部網(wǎng)絡(luò)設(shè)備提供了IX總線接口,通過接口轉(zhuǎn)換設(shè)計,能夠使其應(yīng)用到有線通信、無線基站通信和以太網(wǎng)通信等多個領(lǐng)域。由于這些電路最終都通過IX總線和IXP1200連接,因此不會對系統(tǒng)的軟件結(jié)構(gòu)產(chǎn)生影響。靈活的接口轉(zhuǎn)換設(shè)計可以大大擴展IXP1200的應(yīng)用范圍?;贔PGA芯片的設(shè)計實現(xiàn)了IX總線到POS接口的轉(zhuǎn)換,其中POS接口采用了POS-PHY Level 2協(xié)議。設(shè)計的結(jié)構(gòu)框圖如圖4所示。
在接口轉(zhuǎn)換中,依據(jù)其功能將其劃分成為接收模塊和發(fā)送模塊。定義從POS接口到IX總線的數(shù)據(jù)傳輸路徑為接收路徑,而從IX總線到POS接口的數(shù)據(jù)傳輸路徑為發(fā)送路徑。
接收路徑又分為數(shù)據(jù)通道和控制通道。數(shù)據(jù)通道主要負(fù)責(zé)數(shù)據(jù)的發(fā)送和復(fù)用等操作,接收來自POS接口的數(shù)據(jù),進(jìn)行奇偶校驗和數(shù)位轉(zhuǎn)換并存入接收數(shù)據(jù)緩存器RDFIFO,再發(fā)送到IX總線??刂仆ǖ乐饕山邮諣顟B(tài)機來完成數(shù)據(jù)收發(fā)的時序控制。另外還要根據(jù)包頭、包尾等包指示信息、包長計算結(jié)果和奇偶校驗結(jié)果生成標(biāo)簽存入接收標(biāo)簽緩存器RTFIFO中,在數(shù)據(jù)向IX總線發(fā)送時,根據(jù)包長確定接收數(shù)據(jù)緩存器的讀出字節(jié)數(shù),并同時恢復(fù)出相應(yīng)的包指示和錯誤指示信息。
發(fā)送路徑類似于接收路徑,分為數(shù)據(jù)通道和控制通道。數(shù)據(jù)通道中,將IX總線的數(shù)據(jù)送入發(fā)送數(shù)據(jù)緩存器TDFIFO,然后根據(jù)目的端口向相應(yīng)的POS接口發(fā)送,并產(chǎn)生POS接口的奇偶校驗信號。而控制通道在由發(fā)送狀態(tài)機完成數(shù)據(jù)收發(fā)的時序控制之外,同樣生成標(biāo)簽信息送入發(fā)送標(biāo)簽緩存器TTFIFO,控制數(shù)據(jù)的轉(zhuǎn)發(fā),并且恢復(fù)相關(guān)的指示信息。
設(shè)計具有以下特點:
(1)64位IX 總線分為兩組32位總線:一組為發(fā)送路徑,一組為接收路徑。兩組路徑有獨立的端口選擇和驅(qū)動時鐘,可以完全獨立地工作。
(2)每個端口有2個25632bit的數(shù)據(jù)FIFO:一個用于存儲發(fā)送數(shù)據(jù),一個用于存儲接收數(shù)據(jù)。由于定義的數(shù)據(jù)單元大小為64Bytes,所以每個數(shù)據(jù)FIFO可以容納16個數(shù)據(jù)單元。
(3)每個端口有2個1611bit的標(biāo)簽FIFO:一個用于存儲發(fā)送標(biāo)簽,一個用于存儲接收標(biāo)簽。每個標(biāo)簽對應(yīng)一個數(shù)據(jù)單元。
(4)具有易擴展性,目前支持2個端口,根據(jù)應(yīng)用的變化,稍微修改程序即可增加支持的端口數(shù)。
(5)支持POS-PHY Level 2協(xié)議,采用單物理層包級傳輸模式,根據(jù)應(yīng)用可以擴展到多物理層支持和其它傳輸模式。
4 結(jié)論
提出了一種基于IXP1200網(wǎng)絡(luò)處理器的彈性分組環(huán)接入方案,便捷地實現(xiàn)了以太網(wǎng)和彈性分組環(huán)之間的數(shù)據(jù)幀格式轉(zhuǎn)換和接口轉(zhuǎn)換功能。
本文的創(chuàng)新點為在彈性分組環(huán)的接入平臺中使用了IXP1200網(wǎng)絡(luò)處理器,并通過軟硬件設(shè)計實現(xiàn)了其接入功能。IXP1200網(wǎng)絡(luò)處理器的硬件高效性保證了高速的數(shù)據(jù)處理能力,而軟件可編程性可以大大縮減從研發(fā)到進(jìn)入市場的時間周期,并提供良好的擴展性能。本設(shè)計中,支持4路以太網(wǎng)接口和2路POS接口,通過StrongARM和微引擎的軟件開發(fā),以及IX總線接口轉(zhuǎn)換程序的設(shè)計,可以實現(xiàn)更多路數(shù)據(jù)以及更多類型網(wǎng)絡(luò)的接入。
參考文獻(xiàn)
[1] IEEE 802.17 Resilient Packet Ring Working Group. http://www.ieee802.org/17/
[2] 劉建華,王勇. 基于網(wǎng)絡(luò)處理器的可編程路由器技術(shù)研究. 微計算機信息, 2005,21(10-2):p51~53
[3] 管文建,薛質(zhì). 網(wǎng)絡(luò)處理器中微引擎設(shè)計. 微計算機信息, 2005,21(11-3):p137~139
[4] IXP1200 Datasheet. http://www.intel.com
[5]王學(xué)龍. 嵌入式VxWorks系統(tǒng)開發(fā)與應(yīng)用. 北京: 人民郵電出版社, 2003
[6]石晶林,程勝,孫江明. 網(wǎng)絡(luò)處理器原理、設(shè)計與應(yīng)用. 北京: 清華大學(xué)出版社, 2003
評論