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