基于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://2s4d.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ò)專(zhuān)門(mén)設(shè)計(jì)和高度優(yōu)化,是完成各種網(wǎng)絡(luò)功能的專(zhuān)用指令處理器,同時(shí)又是一塊軟件可編程芯片。它綜合了專(zhuān)用集成電路的高速處理能力和通用處理器的完全可編程特性,可滿足網(wǎng)絡(luò)寬帶化和綜合化的要求。目前已有數(shù)十家公司生產(chǎn)上百種此類(lèi)產(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è)專(zhuān)門(mén)的協(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)用開(kāi)發(fā)提供了完整的軟硬件解決方案。因此,利用IXP系列實(shí)現(xiàn)寬帶接入,使系統(tǒng)既具有高的性能,又簡(jiǎn)單靈活,并能獲得開(kāi)發(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ù)總線、讀/寫(xiě)總線分開(kāi),可對(duì)多個(gè)存儲(chǔ)器同時(shí)進(jìn)行讀/寫(xiě)操作。因此,可大大增強(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)行開(kāi)發(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)換還可接人其他類(lèi)型業(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集成開(kāi)發(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)行深層次的處理。
微引擎程序稱(chēng)為微碼,主要執(zhí)行數(shù)據(jù)包的處理和轉(zhuǎn)發(fā)任務(wù),可采用Intel專(zhuān)門(mén)設(shè)計(jì)的開(kāi)發(fā)平臺(tái)DeveloperWorkbench進(jìn)行開(kāi)發(fā)。根據(jù)接入系統(tǒng)的數(shù)據(jù)處理流程,微碼程序可分為接收、分類(lèi)、封裝、管理和轉(zhuǎn)發(fā)等模塊。根據(jù)不同業(yè)務(wù),接收、分類(lèi)和封裝模塊又分為以太網(wǎng)和RPR數(shù)據(jù)處理兩類(lèi)。當(dāng)以太網(wǎng)接口有數(shù)據(jù)包到來(lái)時(shí),以太網(wǎng)數(shù)據(jù)接收模塊首先將接收到的數(shù)據(jù)包分片緩存在DRAM中,并將分片重組得到完整的數(shù)據(jù)包,然后,以太網(wǎng)分類(lèi)模塊從數(shù)據(jù)包中提取包頭信息放入微引擎寄存器中進(jìn)行處理,完成包分類(lèi)和路由表查詢(xún)等操作。如果該包需要轉(zhuǎn)發(fā)到RPR網(wǎng)絡(luò),RPR數(shù)據(jù)封裝模塊將根據(jù)包頭處理結(jié)果完成數(shù)據(jù)幀格式的轉(zhuǎn)換,并把數(shù)據(jù)包回寫(xiě)到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í),類(lèi)似地,由RPR數(shù)據(jù)接收和分類(lèi)模塊進(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)其他多種類(lèi)型寬帶業(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)論