基于IXP2400的RPR綜合業(yè)務(wù)接入系統(tǒng)設(shè)計(jì)
1 引言
彈性分組環(huán)(Resilient Packet Ring,RPR)技術(shù)是一種為優(yōu)化環(huán)型拓?fù)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/網(wǎng)絡(luò)">網(wǎng)絡(luò)中數(shù)據(jù)傳輸而提出的城域網(wǎng)技術(shù),它結(jié)合了IP的智能化、以太網(wǎng)的經(jīng)濟(jì)性和SDH的寬帶效率及可靠性等優(yōu)點(diǎn),突破了局域網(wǎng)和廣域網(wǎng)之間的接入瓶頸,能在單一網(wǎng)絡(luò)內(nèi)通過(guò)簡(jiǎn)單的傳輸模式融合各種寬帶業(yè)務(wù),是一種有效的城域接入網(wǎng)解決方案。
網(wǎng)絡(luò)處理器經(jīng)過(guò)專門設(shè)計(jì)和高度優(yōu)化,是完成各種網(wǎng)絡(luò)功能的專用指令處理器,同時(shí)又是一塊軟件可編程芯片。它綜合了專用集成電路的高速處理能力和通用處理器的完全可編程特性,可滿足網(wǎng)絡(luò)寬帶化和綜合化的要求。目前已有數(shù)十家公司生產(chǎn)上百種此類產(chǎn)品,其中最具代表性的產(chǎn)品包括Motorola的C-5,IBM的PowerNP和Intel的IXP系列。C-5集成了16個(gè)信道處理器,5個(gè)協(xié)處理器和1個(gè)通用處理器,能在2.5 Gbit/s速率下進(jìn)行2~7層處理,在實(shí)時(shí)處理和靈活性方面具有優(yōu)勢(shì);Pow-erNP采用多處理器解決方案,具有7個(gè)專門的協(xié)處理器和1個(gè)PowerPC核,能完成2~5層的分組處理;IXP系列主要包括第一代的IXP1200和第二代的IXP2400,IXP2800等,由1個(gè)用于管理控制的ARM核和多個(gè)用于數(shù)據(jù)處理的微引擎組成,采用并行處理機(jī)制和多線程技術(shù),具有強(qiáng)大的數(shù)據(jù)處理能力,支持從155 Mbit/s到10 Gbit/s的速率要求,而且,ARM核和微引擎都是可編程的,支持匯編語(yǔ)言和C語(yǔ)言,具有靈活性和通用性,加上IXA架構(gòu),為網(wǎng)絡(luò)處理器的應(yīng)用開發(fā)提供了完整的軟硬件解決方案。因此,利用IXP系列實(shí)現(xiàn)寬帶接入,使系統(tǒng)既具有高的性能,又簡(jiǎn)單靈活,并能獲得開發(fā)環(huán)境的完全支持。
2 IXP2400網(wǎng)絡(luò)處理器
IXP2400支持2.5 Gbit/s的網(wǎng)絡(luò)應(yīng)用,其內(nèi)部結(jié)構(gòu)如圖1所示。
IXP2400主要具有以下特點(diǎn):
1) 強(qiáng)大的數(shù)據(jù)處理能力
IXP2400采用了分布式的硬件結(jié)構(gòu),具有XScale核和微引擎等多個(gè)主控單元和SRAM,DRAM,MSF,SHaC等多個(gè)從屬單元,各主控單元能并行訪問(wèn)各從屬單元。另外,分立的內(nèi)部總線結(jié)構(gòu)將不同存儲(chǔ)單元的數(shù)據(jù)總線、讀/寫總線分開,可對(duì)多個(gè)存儲(chǔ)器同時(shí)進(jìn)行讀/寫操作。因此,可大大增強(qiáng)數(shù)據(jù)處理速度。它還采用了并行處理和多線程機(jī)制,有效地解決了數(shù)據(jù)流復(fù)雜多樣和外部存儲(chǔ)器訪問(wèn)時(shí)延過(guò)大等問(wèn)題。8個(gè)微引擎并列的硬件結(jié)構(gòu)提供了多處理能力,可并行處理不相關(guān)的網(wǎng)絡(luò)數(shù)據(jù)包。由于包處理程序都存儲(chǔ)在微引擎內(nèi)部的指令存儲(chǔ)器中,可減小指令讀取時(shí)延,有力地配合微引擎高速指令執(zhí)行。每個(gè)微引擎提供的8個(gè)線程,采用多線程交換機(jī)制,當(dāng)一個(gè)線程需要訪問(wèn)外部存儲(chǔ)器時(shí),將交出微引擎的控制權(quán),讓另一個(gè)線程運(yùn)行。這種多線程結(jié)構(gòu)和線程交換技術(shù)將存儲(chǔ)器的訪問(wèn)時(shí)延隱藏在程序執(zhí)行之后,大大提高了微引擎的利用效率。此外,IXP2400還增加了內(nèi)容訪問(wèn)存儲(chǔ)器、偽隨機(jī)數(shù)發(fā)生器和CRC校驗(yàn)等特殊硬件功能單元來(lái)提高網(wǎng)絡(luò)數(shù)據(jù)處理速度。
2) 具有大容量和寬帶數(shù)據(jù)存儲(chǔ)空間
為配合高速數(shù)據(jù)處理能力,IXP2400提供了大容量、寬帶存儲(chǔ)器單元,包括1個(gè)DRAM控制器和2個(gè)SRAM控制器。其中,DRAM控制器提供64位數(shù)據(jù)寬度的雙倍速率接口,支持DRAM容量可達(dá)2 Gbyte,峰值帶寬達(dá)到2.4 Gbyte/s。SRAM控制器提供4倍速率接口,具有16位物理寬度,通過(guò)數(shù)據(jù)速率加倍來(lái)獲得32位的邏輯寬度。每個(gè)接口支持的SRAM最大容量為64 Mbyte,峰值帶寬達(dá)到1.6 Gbyte/s。DRAM主要用于大批量數(shù)據(jù)的存儲(chǔ),而SRAM主要用于存儲(chǔ)路由表和控制信息。
3) 豐富的對(duì)外接口
IXP2400提供了PCI,MSF,慢端口、UART和JTAG等多個(gè)對(duì)外接口來(lái)支持廣泛的網(wǎng)絡(luò)應(yīng)用。其中:PCI接口符合PCI v2.2標(biāo)準(zhǔn),用于連接控制主機(jī)和MAC設(shè)備等外圍設(shè)備;MSF接口采用32位全雙工的并行數(shù)據(jù)線路,通過(guò)配置可支持多種接口標(biāo)準(zhǔn),主要用于連接到物理層設(shè)備或交換接口;慢端口用于FLASH和其他異步設(shè)備的訪問(wèn);UART和JTAG接口則用于程序下載和系統(tǒng)調(diào)試。
4) 完全的可編程能力
IXP2400中,處理單元XScale核和微引擎都是完全可編程的。XScale采用ARM V5的定點(diǎn)指令系統(tǒng),支持匯編語(yǔ)言,主要完成控制層面的處理任務(wù);微引擎也具有自己的指令集,支持微代碼或C語(yǔ)言,主要完成數(shù)據(jù)層面的處理任務(wù)。
3 基于IXP2400的RPR業(yè)務(wù)接入系統(tǒng)
基于IXP2400的RPR綜合業(yè)務(wù)接人系統(tǒng)的主要功能是接入以太網(wǎng)業(yè)務(wù)到RPR網(wǎng)絡(luò),同時(shí)也能完成本地以太網(wǎng)的數(shù)據(jù)交換,但需要從硬件和軟件兩個(gè)方面進(jìn)行開發(fā)。
3.1 硬件結(jié)構(gòu)
系統(tǒng)硬件平臺(tái)結(jié)構(gòu)如圖2所示。
在本設(shè)計(jì)中,硬件平臺(tái)以IXP2400網(wǎng)絡(luò)處理器為核心,利用XScale核和微引擎的高速數(shù)據(jù)處理能力和可編程性,能同時(shí)滿足接入系統(tǒng)對(duì)高性能和靈活性的要求,支持2.5 Gbit/s的線速處理。
MSF單元為外部設(shè)備提供了高速接口,可用于RPR業(yè)務(wù)的數(shù)據(jù)接人。設(shè)計(jì)中通過(guò)一片F(xiàn)PGA芯片XC3S1000來(lái)完成RPR接口設(shè)計(jì),采用SPI-3標(biāo)準(zhǔn)與RPR MAC芯片相連接。MSF總線被配置為32位接收數(shù)據(jù)總線和32位發(fā)送數(shù)據(jù)總線,工作頻率設(shè)定為125 MHz,因此,RPR接口的實(shí)際峰值帶寬為8 Gbit/s。由于FPGA的靈活性,通過(guò)編程實(shí)現(xiàn)接口轉(zhuǎn)換還可接人其他類型業(yè)務(wù)。
為保證RPR數(shù)據(jù)的速率,設(shè)計(jì)中沒(méi)有采用MSF接口復(fù)用的方式,而是通過(guò)PCI接口接入以太網(wǎng)數(shù)據(jù)。系統(tǒng)通過(guò)PCI接口連接了一片雙端口千兆以太網(wǎng)控制芯片82546EB。它集成了兩路的MAC層和PHY層功能,通過(guò)配置能收發(fā)雙通道的1 000 Mbit/s,100 Mbit/s或10 Mbit/s的數(shù)據(jù),可應(yīng)用于多種速率的以太網(wǎng)中。
為配合RPR和以太網(wǎng)數(shù)據(jù)包的高速處理,外接了多塊DRAM,SRAM和FLASH存儲(chǔ)芯片,分別用于存儲(chǔ)數(shù)據(jù)包、路由表和底層程序。其中:DRAM單元連接了5塊MT46V32M16芯片,提供總?cè)萘繛?56 Mbyte;SRAM單元連接了4塊CY7C1425AV18芯片,提供了16 Mbyte存儲(chǔ)總?cè)萘?慢端口連接了4片F(xiàn)LASH芯片28F128J3A,總?cè)萘繛?4 Mbyte。大容量和寬帶存儲(chǔ)單元加上內(nèi)部多線程技術(shù),減小了訪問(wèn)時(shí)延,有力地保證了系統(tǒng)的線速處理能力。
3.2 軟件體系
系統(tǒng)的軟件設(shè)計(jì)主要可分為XScale內(nèi)核程序和微引擎程序兩部分,分別完成控制層面和數(shù)據(jù)層面的功能。軟件體系結(jié)構(gòu)如圖3所示。
XScale內(nèi)核程序主要包括VxWorks操作系統(tǒng)、板極支持包和內(nèi)核應(yīng)用程序軟件包3部分,可利用VxWorks集成開發(fā)軟件Tornado進(jìn)行設(shè)計(jì)。VxWorks是一種實(shí)時(shí)多任務(wù)嵌入式操作系統(tǒng),為用戶提供高效的實(shí)時(shí)任務(wù)調(diào)度、中斷管理、實(shí)時(shí)的系統(tǒng)資源以及實(shí)時(shí)的任務(wù)間通信,是運(yùn)行其他應(yīng)用程序的基礎(chǔ);板極支持包是所有與硬件相關(guān)的代碼體的集合,主要包括系統(tǒng)被引導(dǎo)時(shí)的硬件初始化程序和系統(tǒng)中設(shè)備的驅(qū)動(dòng)程序,實(shí)現(xiàn)接入系統(tǒng)參數(shù)的配置和引導(dǎo)過(guò)程的管理;內(nèi)核應(yīng)用程序軟件包主要包括路由協(xié)議、模塊間通信協(xié)議、系統(tǒng)管理和異常包處理等模塊。路由協(xié)議軟件包完成路由表的生成、管理和維護(hù);模塊間通信協(xié)議通過(guò)共享內(nèi)存和消息隊(duì)列等方式完成XScale核和微引擎間的通信;系統(tǒng)管理模塊完成硬件的初始化、配置和系統(tǒng)資源管理等工作;異常數(shù)據(jù)包處理模塊則對(duì)微引擎送來(lái)的異常數(shù)據(jù)包進(jìn)行深層次的處理。
微引擎程序稱為微碼,主要執(zhí)行數(shù)據(jù)包的處理和轉(zhuǎn)發(fā)任務(wù),可采用Intel專門設(shè)計(jì)的開發(fā)平臺(tái)DeveloperWorkbench進(jìn)行開發(fā)。根據(jù)接入系統(tǒng)的數(shù)據(jù)處理流程,微碼程序可分為接收、分類、封裝、管理和轉(zhuǎn)發(fā)等模塊。根據(jù)不同業(yè)務(wù),接收、分類和封裝模塊又分為以太網(wǎng)和RPR數(shù)據(jù)處理兩類。當(dāng)以太網(wǎng)接口有數(shù)據(jù)包到來(lái)時(shí),以太網(wǎng)數(shù)據(jù)接收模塊首先將接收到的數(shù)據(jù)包分片緩存在DRAM中,并將分片重組得到完整的數(shù)據(jù)包,然后,以太網(wǎng)分類模塊從數(shù)據(jù)包中提取包頭信息放入微引擎寄存器中進(jìn)行處理,完成包分類和路由表查詢等操作。如果該包需要轉(zhuǎn)發(fā)到RPR網(wǎng)絡(luò),RPR數(shù)據(jù)封裝模塊將根據(jù)包頭處理結(jié)果完成數(shù)據(jù)幀格式的轉(zhuǎn)換,并把數(shù)據(jù)包回寫到DRAM中。隊(duì)列管理和端口調(diào)度模塊根據(jù)發(fā)送請(qǐng)求將數(shù)據(jù)包加入指定的發(fā)送隊(duì)列和分配到指定的端口,最后由數(shù)據(jù)發(fā)送模塊從DRAM中讀取數(shù)據(jù)并完成轉(zhuǎn)發(fā)工作。如果以太網(wǎng)數(shù)據(jù)包的目的地址仍是以太網(wǎng),則不需要進(jìn)行RPR數(shù)據(jù)封裝而直接調(diào)度和發(fā)送。當(dāng)RPR接口有數(shù)據(jù)包到來(lái)時(shí),類似地,由RPR數(shù)據(jù)接收和分類模塊進(jìn)行處理。如果目的地址仍為RPR網(wǎng)絡(luò)則直接丟棄該包;否則通過(guò)以太網(wǎng)封裝模塊完成幀格式轉(zhuǎn)換,由隊(duì)列管理和端口調(diào)度模塊以及數(shù)據(jù)發(fā)送模塊完成調(diào)度和轉(zhuǎn)發(fā)。
4 實(shí)驗(yàn)網(wǎng)絡(luò)和系統(tǒng)驗(yàn)證
利用RPR綜合業(yè)務(wù)接入系統(tǒng),可和RPR MAC層芯片以及物理層芯片一起組成RPR站點(diǎn),多個(gè)站點(diǎn)之間通過(guò)雙環(huán)光纖相連則可構(gòu)成完整的實(shí)驗(yàn)網(wǎng)絡(luò)。圖4是具有4個(gè)站點(diǎn)的實(shí)驗(yàn)網(wǎng)絡(luò)。
將多臺(tái)測(cè)試主機(jī)通過(guò)接入系統(tǒng)的千兆以太網(wǎng)口連接到實(shí)驗(yàn)網(wǎng)絡(luò),進(jìn)行數(shù)據(jù)收發(fā)可驗(yàn)證RPR綜合業(yè)務(wù)接入系統(tǒng)軟硬件設(shè)計(jì)的正確性。功能驗(yàn)證包括以太網(wǎng)內(nèi)的自環(huán)和以太網(wǎng)-RPR-以太網(wǎng)的環(huán)回兩部分。以太網(wǎng)內(nèi)的自環(huán)指不經(jīng)過(guò)RPR網(wǎng)絡(luò)而在本站點(diǎn)內(nèi)完成以太網(wǎng)數(shù)據(jù)的轉(zhuǎn)發(fā);以太網(wǎng)-RPR-以太網(wǎng)的環(huán)回則指一個(gè)站點(diǎn)接入的以太網(wǎng)數(shù)據(jù)經(jīng)RPR網(wǎng)絡(luò)傳輸?shù)搅硪粋€(gè)站點(diǎn)后,再通過(guò)接入系統(tǒng)轉(zhuǎn)發(fā)到以太網(wǎng)中。驗(yàn)證時(shí),在其中一臺(tái)測(cè)試主機(jī)上運(yùn)行Serv-U軟件,作為FTP服務(wù)器;在另一臺(tái)測(cè)試主機(jī)上運(yùn)行LeapFTP軟件,作為FTP客戶端。通過(guò)客戶端主機(jī)向服務(wù)器主機(jī)上傳和下載文件,即根據(jù)FTP協(xié)議進(jìn)行文件傳輸。測(cè)試結(jié)果表明,文件能根據(jù)FTP協(xié)議正確而流暢地傳輸,表明接入系統(tǒng)既能實(shí)現(xiàn)以太網(wǎng)和RPR之間的數(shù)據(jù)交換,又能完成以太網(wǎng)數(shù)據(jù)的本地轉(zhuǎn)發(fā)。
此外,利用實(shí)驗(yàn)網(wǎng)絡(luò)還可驗(yàn)證RPR中環(huán)路帶寬分配、擁塞控制、自動(dòng)拓?fù)浒l(fā)現(xiàn)和智能保護(hù)倒換等各種算法性能,為RPR技術(shù)和城域網(wǎng)組網(wǎng)的研究奠定了良好的基礎(chǔ)。
5 小結(jié)
筆者提出了一種基于IXP2400網(wǎng)絡(luò)處理器的RPR綜合業(yè)務(wù)接入系統(tǒng)設(shè)計(jì)方案,該系統(tǒng)具有高速數(shù)據(jù)處理能力,對(duì)外提供了一個(gè)2.5Gbit/s的SPI-3接口和兩路千兆以太網(wǎng)口,可用于RPR和千兆以太網(wǎng)業(yè)務(wù)的接入。同時(shí)系統(tǒng)具有良好的可擴(kuò)展性,通過(guò)修改微引擎和FPGA程序,可實(shí)現(xiàn)其他多種類型寬帶業(yè)務(wù)的接入。利用該接入系統(tǒng)構(gòu)建的RPR站點(diǎn)和實(shí)驗(yàn)網(wǎng)絡(luò)簡(jiǎn)單靈活,目前進(jìn)行了點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸測(cè)試,今后,還可在其基礎(chǔ)上進(jìn)行多點(diǎn)對(duì)多點(diǎn)的數(shù)據(jù)傳輸測(cè)試,以及深入的性能研究。
評(píng)論