<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于網(wǎng)絡(luò )處理器的核心路由器設計技術(shù)研究

基于網(wǎng)絡(luò )處理器的核心路由器設計技術(shù)研究

——
作者:解放軍信息工程大學(xué) 何小明 張永福 戴紫彬 時(shí)間:2007-05-23 來(lái)源:電子技術(shù)應用 收藏
Internet骨干流量的增長(cháng)及新業(yè)務(wù)的出現,要求路由器具有線(xiàn)速和智能的處理能力?;谕ㄓ锰幚砥鱃PP(General Purpose Processor)的解決方案雖然靈活,但在數據處理速度上難以滿(mǎn)足要求;基于專(zhuān)用集成電路ASIC(Application Specfic-Integrated Circuit)的解決方案雖然有效地提高了處理速度,卻降低了靈活性。它們都難以滿(mǎn)足下一代互聯(lián)網(wǎng)的要求。在這種情況下,一種可編程的處理器 NP(Network Processor)被應用到路由器設計中,成為一種新興、有效的統一解決方案?;?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/網(wǎng)絡(luò )處理器">網(wǎng)絡(luò )處理器的路由器具有ASIC高速處理性能和GPP的靈活性,得到了快速的發(fā)展。

1 硬件架構

是Intel公司在2002年推出的第二代互聯(lián)網(wǎng)交換架構IXA網(wǎng)絡(luò )處理器。它面向中高端應用,可用于實(shí)現OC-48的網(wǎng)絡(luò )路由交換設備。的結構充分體現了片上系統SoC (System onChip)的思想。結構框圖如圖l所示,它的內部主要包括8個(gè)完全可編程的8線(xiàn)程微引擎ME和1個(gè)XSc ale核。此外,還有用于連接外部設備MAC的媒質(zhì)和交換結構接口MSF單元、連接各種存儲器和總線(xiàn)的接口單元等。這些單元通過(guò)內部的高速數據總線(xiàn)和控制總線(xiàn)彼此協(xié)作。

IXP2400結構框圖

XScale核是32位的嵌入式精簡(jiǎn)指令集處理器,時(shí)鐘頻率是600MHz,具有32KB的指令緩存和32KB的數據緩存,它在 IXP2400中起控制和管理作用。具體包括:對系統初始化和配置;提供系統時(shí)鐘;建立并管理路由表;提供一個(gè)對應于IXP2400各寄存器、存儲器和外部存儲器的地址映射表等。它在應用中主要完成加載微碼、啟動(dòng)微引擎、完成必要的數據分析、高復雜度的算法、統計、管理等應用任務(wù)。

IXP2400中的每個(gè)微引擎就是一個(gè)32位精簡(jiǎn)指令集RISC處理器,時(shí)鐘頻率是600MHz,可以由8個(gè)并行硬件線(xiàn)程共享。數據包的接收、處理和發(fā)送等任務(wù)均由微引擎指令存儲區中微代碼程序的各線(xiàn)程并行執行。網(wǎng)絡(luò )處理器數據的高速轉發(fā)正是因為充分利用了硬件的并行性。

IXP2400通過(guò)數據線(xiàn)連接著(zhù)各種存儲設備,如SRAM和DRAM等。DRMA主要用于存放需要處理和轉發(fā)的數據包、路由表等大型數據結構;SRAM主要存放對數據包包頭進(jìn)行處理所需的重要信息和數據包的隊列描述等內容,如表、緩沖區描述符。

IXP2400具有豐富的標準高速I(mǎi)/0接口,包括物理鏈路接口、交換接口、存儲器接口、PCI總線(xiàn)接口,能夠方便地與其他廠(chǎng)家的設備進(jìn)行接口、互連;擁有專(zhuān)用硬件加速處理單元;采用專(zhuān)用硬件對特定協(xié)議操作進(jìn)行協(xié)處理:如CRC、哈希查找、樹(shù)查找、字符匹配;針對安全產(chǎn)品,提供加/解密、大數運算等硬件單元。

綜上所述,IXP2400擁有網(wǎng)絡(luò )處理的一般特點(diǎn),從系統角度看,IXP2400屬于一個(gè)并行式的多處理器共享總線(xiàn)的計算機系統。

2 網(wǎng)絡(luò )處理器軟件開(kāi)發(fā)平臺

Intel提供丁網(wǎng)絡(luò )處理器開(kāi)發(fā)平臺,稱(chēng)為Intd IXA可移植框架(Intel IXA portability framework)。IXP2400軟件開(kāi)發(fā)可移植框架層次圖如圖2所示。

軟件開(kāi)發(fā)可移植框架層次圖

Intel IXA可移植框架中,將數據的處理分為兩個(gè)層次:數據面(Data Plane,也稱(chēng)為Fast Path)處理和控制面(Control Plane,也稱(chēng)為Slow Path)處理。

數據平面主要運行在微引擎處理之上,充分利用數據包的無(wú)關(guān)性,采取并行處理方式,用于實(shí)現高速轉發(fā)數據包的處理功能,具有線(xiàn)速執行特點(diǎn)。數據面的數據包處理可分為若干微模塊Microblock。各個(gè)微模塊之間相互獨立,可實(shí)現數據面層次上的可移植性。

控制平面一般運行在網(wǎng)絡(luò )處理器核上,處理各種通信協(xié)議、更新路由表、管理數據平面任務(wù)與狀態(tài)、完成高層的QoS控制等。這些操作的性能要求低于數據層面,因此通常采用高性能通用處理器硬件平臺。為了有效支持網(wǎng)絡(luò )處理功能,控制平面與數據平面之間存在復雜的信息交互與依賴(lài)關(guān)系。

IXP2400的軟件開(kāi)發(fā)分為內核程序和微代碼兩部分。XScale內孩的開(kāi)發(fā)通常使用基于嵌入式操作系統集成開(kāi)發(fā)工具,如WindRiver公司提供的基于嵌入式操作系統VxWorks的集成開(kāi)發(fā)工具Tornado或BMR TEC CO提供的基于嵌入式操作系統Montavista Linux的集成開(kāi)發(fā)工具Teja。Teja開(kāi)發(fā)工具給基于網(wǎng)絡(luò )處理器的嵌入式開(kāi)發(fā)帶來(lái)極大的方便,它能縮短開(kāi)發(fā)周期,優(yōu)化生成代碼,提高代碼性能,而且生成的代碼很容易移植到不同的目標系統。使用Teja集成開(kāi)發(fā)工具,能獨立于復雜的硬件而將網(wǎng)絡(luò )應用表達為狀態(tài)機。狀態(tài)機邏輯可以被映射到選定的目標網(wǎng)絡(luò )處理器的分布資源,基于這種邏輯設計和到硬件的邏輯映射,生成優(yōu)化的目標代碼(C、C++和MicroC)并且編譯生成最終的映像文件。此外,Teja對于此邏輯和系統設計還能提供模擬測試和調試功能;IXP2400中對微引擎的編程使用Intel公司提供的Developer Workbench開(kāi)發(fā)環(huán)境,主要使用微代碼來(lái)進(jìn)行編程。Developer Workbench提供了完善的編譯、鏈接、仿真和調試功能。

Intel IXA可移植框架中最重要的組成部分就是在微引擎上和XScale核上開(kāi)發(fā)的代碼模塊?;诓煌布_(kāi)發(fā)的代碼模塊分別為微模塊和核心組件(Core component)。每個(gè)模塊都代表了一個(gè)進(jìn)行包處理的代碼單元。這里實(shí)際上引入了構件的思想.各種模塊以一定的順序組織在一起,形成一個(gè)特定的應用。

3 基于網(wǎng)絡(luò )處理器IXP2400的器體系結構

路由器體系結構的發(fā)展經(jīng)歷了四次大的發(fā)展,由單機集中式到單機分布式共享總線(xiàn),再到分布式Crossbar結構,最后到多機互聯(lián)的集群式結構,目前正朝著(zhù)系統化、高性能、可擴展方向發(fā)展。由于基于網(wǎng)絡(luò )處理器的路由器體系能夠滿(mǎn)足這些要求,被公認為推 動(dòng)下一代網(wǎng)絡(luò )向靈活性和高性能發(fā)展的核心技術(shù)。Princeton大學(xué)的可擴充路由器VERA和Columbia大學(xué)的Genesis系統在這方面做了一些推進(jìn)。前者主要是基于區分服務(wù)Diffserv體系結構,注重服務(wù)的靈活性和可擴充性;后者基于“Spawn”思想和Netbind機制,注重虛擬網(wǎng)絡(luò )系統的動(dòng)態(tài)創(chuàng )建,但是兩者都沒(méi)有提出一個(gè)通用的體系模型。

從本質(zhì)上說(shuō),路由器是一種進(jìn)行網(wǎng)絡(luò )數據包轉發(fā)的網(wǎng)絡(luò )設備,其體系結構可分為三大部分:(1)輸入/輸出端口;(2)路由計算及處理;(3)交換結構。其中路由計算和處理是路由器的關(guān)鍵,對路由器高性能和靈活性起決定作用。由于網(wǎng)絡(luò )處理器IXP2400具有高速和靈活性,本文采用IXP2400作為路由計算和處理部分,提出了一種全雙工、可擴展的高性能路由器系統體系結構,如圖3所示。

高性能路由器系統體系結構

在圖3中,IXP2400是系統核心部分,負責對數據包進(jìn)行轉發(fā),實(shí)現路由功能。SBAM是IXP2400的外接存儲設備,通過(guò)SBAM Controller與IXP2400連接,主要實(shí)現存儲數據包處理過(guò)程中用到的發(fā)送列隊、查找表等數據結構。DRAM也是IXP2400外接的存儲設備,通過(guò)DRAM Controller與IXP2400連接,主要存儲數據包和路由表??刂铺幚砥魇荌XP2400的外接處理器,通過(guò)PCIController與 IXP2400連接,主要為系統提供高層的控制和管理功能。物理層設備收發(fā)數據包,通過(guò)介質(zhì)和交換接口MSF與IXP2400連接。交換結構作為處理器與外部接口的傳輸樞紐,對整個(gè)系統的性能起著(zhù)至關(guān)重要的作用。它主要分為總線(xiàn)、Cross-bar(縱橫制矩陣)和共享內存三種方式。Cross-bar同其他技術(shù)相比,具有成本低,可擴展性良好和非阻塞特性,并且可以根據實(shí)際需要擴充寬帶。

4 基于網(wǎng)絡(luò )處理器IXP2400的器系統處理軟件模型

基于IXP2400的器軟件模塊框圖如圖4 所示。入口(Ingress)IXP2400首先通過(guò)IXF1104或IXF6048從外部網(wǎng)絡(luò )接收數據包,然后對數據進(jìn)行處理,并將處理后的數據通過(guò)交換接口芯片發(fā)送到交換結構(SF);出口(Egress)IXP2400首先通過(guò)交換接口芯片從交換結構接收數據,然后對數據包進(jìn)行處理,最后通過(guò) IXFll04或IXF6048將數據包發(fā)送出去。微引擎的編程模式有流水線(xiàn)模式(HTC)和線(xiàn)程池(POTS)模式,二者各有優(yōu)缺點(diǎn)。本文采用了HTC 和POTS相結合的編程模式,揚長(cháng)避短,以取得最佳的處理效率。所有的Context Pipe Stage模塊(如包接收、包發(fā)送、列隊管理等)各自占據一個(gè)單獨的微引擎,采用HTC方式,每個(gè)Context Pipe Stage模塊都映射到單獨的一個(gè)微引擎上。而Funcational Pipeline映射到4個(gè)微引擎上,采用POTS方式,執行PPP Decap(數據包解封裝)、Classfieation(數據包分類(lèi))和IP Forwarding(IP數據包轉發(fā))等操作。

系統的數據處理

如圖4所示,系統的數據處理由以下模塊組成:

(1)包接收模塊。包接收(Packet Rx)模塊是一個(gè)與低層硬件密切相關(guān)的驅動(dòng)模塊。負責接收來(lái)自外部網(wǎng)絡(luò )的數據包分片mpacke,并將mpacket重組得到一個(gè)完整的數據包。將重組后的數據包寫(xiě)入DRAM,建立包頭信息,Packet Rx模塊使用一個(gè)微引擎上的8個(gè)Thread來(lái)進(jìn)行mpacket包的接收和重組,每個(gè)Thread負責處理一個(gè)mpaeket 。

(2)解封裝/分類(lèi)/過(guò)濾模塊。數據包處理模塊包括PPP解封裝、分類(lèi)、轉發(fā)、過(guò)濾子模塊。這些子模塊組成Funeational Pipeline.運行在4個(gè)微引擎、32個(gè)線(xiàn)程上。PPP解封裝子模塊通過(guò)修改Metadata中的offset和size,將MAC幀頭去掉,提取 IP數據幀,實(shí)現數據包的解封裝功能。分類(lèi)子模塊執行分類(lèi)操作,將數據包分為IPv4、IPv6和ARP等類(lèi)型。如果是ARP數據包,將其標記為異常數據包送到Xscale Core作進(jìn)一步處理;否則,將數據包傳送到下一個(gè)處理模塊處理。

(3)包轉發(fā)模塊。首先檢查包頭是否符合RFC2460規范。如果不符合,則將該包丟棄;否則,根據IP頭進(jìn)行最長(cháng)前綴匹配LPM查找,得到Next Hop ID(下一跳ID)、Fabric Blade ID和Output Port三個(gè)參數。如果LPM沒(méi)有找到匹配表項,則將包標記為異常提交給Xscale Core作進(jìn)一步的處理;否則,根據Next Hop ID進(jìn)行表查詢(xún),獲得PPP頭信息。將數據包封裝為PPP格式之 后,Forwarder將包交給DL-QM-Sink模塊,該模塊判斷數據包是否合法,若合法。則向列隊管理發(fā)送加入隊列請求,將數據包加入到相應的發(fā)送隊列。此外,Forwarder還將修改后的IP頭和包描述符Metadata寫(xiě)回 SRAM。

(4)隊列管理模塊。管理模塊是一個(gè)運行在單個(gè)微引擎的驅動(dòng)模塊,負責利用SRAM Controller中的Q-Array硬件結構對發(fā)送隊列執行解封裝Decap和封裝Encap操作。

(5)發(fā)送調度模塊。模塊將處理來(lái)自Fabric的流量控制信息、來(lái)自QM的隊列轉換信息和來(lái)自MSF的發(fā)送狀態(tài)機

(6)CSIX發(fā)送模塊。該模塊是位于單個(gè)微引擎的驅動(dòng)模塊,接收來(lái)自QM發(fā)送的消息,對于每次發(fā)送請求,微模塊將每個(gè)Cframer寫(xiě)入發(fā)送緩沖TBUF,通過(guò)MSF發(fā)送狀態(tài)機發(fā)送到Fabric。

(7)CSIX接收模塊。接收來(lái)自CSIX Fabric的Cframer,并將其重組為IP數據包。

(8)包封裝模塊。為接收到的信息添加包頭,將IP Packet封裝為PPP格式,并向隊列管理發(fā)送加入隊列請求,請求將封裝后的包加入到相應的發(fā)送隊列。

(9)出口的隊列模塊。該模塊與信元隊列模塊的區別在于列隊中傳遞的是分組而不是信元。對于每個(gè)出隊請求,分組隊列模塊向調度模塊返回一個(gè)出隊響應消息。

(10)出口包調度模塊。出口包調度模塊是基于分組的調度,不需要處理來(lái)自Fabric的流控信息,出口調度模塊對端口進(jìn)行WRR調度,對每個(gè)端口的隊列可進(jìn)行DRR(Deficit Round Robin)調度。

(11)包發(fā)送模塊。通過(guò)媒體介質(zhì)接口發(fā)送分組,將分組分段成mpacket,并寫(xiě)入TBUF,通過(guò)MSF狀態(tài)機進(jìn)行發(fā)送。

本文以Intel IXF2400網(wǎng)絡(luò )處理器為例,討論了網(wǎng)絡(luò )處理器硬件結構和軟件開(kāi)發(fā)技術(shù),并在此基礎上提出了一種基于網(wǎng)絡(luò )處理器的路由器體系結構和軟件開(kāi)發(fā)流程。在今后幾年里,基于網(wǎng)絡(luò )處理器的路由器將有著(zhù)非常巨大的發(fā)展空間,但其發(fā)展也是一個(gè)復雜的、長(cháng)期的過(guò)程,將面臨嚴峻的挑戰。

c++相關(guān)文章:c++教程


路由器相關(guān)文章:路由器工作原理


路由器相關(guān)文章:路由器工作原理




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>