网络处理器发展及其应用_第1页
网络处理器发展及其应用_第2页
网络处理器发展及其应用_第3页
网络处理器发展及其应用_第4页
网络处理器发展及其应用_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络处理器发展及其应用Intel®IXP系列网络处理器/sundae_meng报告提纲网络处理器发展历程Intel®IXP系列网络处理器基于Intel®IXP2400网络系统设计网络处理器的应用领域报告提纲网络处理器发展历程Intel®IXP系列网络处理器基于Intel®IXP2400网络系统设计网络处理器的应用领域路由器的发展历程路由器技术体系的发展,大致可以划分为五代:第一代路由器:集中转发,总线交换

计算机插上多块网络接口卡的方式来实现。接口卡与CPU之间通过内部总线相连,CPU负责所有的事务处理,包括路由收集、转发处理、设备管理等。第二代路由器:集中+分布转发,接口模块化,总线交换在网络接口卡上进行一些智能化处理。大多数报文直接通过业务板Cache的路由表进行转发,减少对总线和CPU的请求。第三代路由器:分布转发,总线交换

全分布式结构,路由与转发分离,由主控板负责整个设备的管理和路由的收集、计算功能,并将计算出的转发表下发到各业务板,各业务板则根据保存的路由转发表独立地进行路由转发。总线技术也得到了较大的发展,通过总线,业务板之间的数据转发完全独立于主控板,实现了并行高速处理,使路由器的处理性能成倍提高。路由器的发展历程(续)第四代路由器:ASIC分布转发,网络交换

传统的基于软件的IP路由器无法再满足网络的发展需要。引入ASIC实现方式,将转发过程的所有细节全部通过硬件的方式来实现。在交换网上采用了CrossBar或共享内存的方式,解决内部交换的问题,使路由器的性能达到千兆比特,即早期的千兆交换式路由器GSR(GigabitSwitchRouter)。第五代路由器技术:网络处理器分布转发,网络交换

互联网泡沫时代,出现网络无管理无法运营的问题、IP地址缺乏问题、IP业务服务质量问题以及IP安全等问题,这些问题都严重地阻碍着网络的进一步发展。业务才是网络的真正价值所在,一切技术都必须围绕着业务。网络管理、用户管理、业务管理、MPLS、VPN、可控组播、IP-QoS和流量工程等各种新技术纷纷出现。IP标准也逐步修改成熟。新技术的出现和标准化的进展对高速路由器的业务功能提出了越来越高的要求。前四代路由器的发展焦点集中在路由器的转发性能上,其最大进步均在速度的提升方面。基于这些问题,第四代路由器ASIC技术的不灵活性、业务提供周期长等缺陷也不可避免地显现出来。第五代路由器在硬件体系结构上继承了第四代路由器的成果,在关键的IP业务流程处理上则采用了可编程的、专为IP网络设计的网络处理器技术。网络处理器的出现应用需求:流量和用户的指数级增长动态变化的复杂协议和功能灵活的业务扩展和演进策略GPP(GeneralPurposeProcessor)通用目的处理器特点:功能易扩展、灵活性好、低成本缺点:性能低、不适合处理高速网络流量ASIC(ApplicationSpecificIntegratedCircuit)特点:高性能,硬件形式实现各种成熟的网络功能缺点:设计周期长(18个月)、灵活性差、费用高FPGA(FieldProgrammableGateArray)特点:可以反复编程、擦除、在外围电路不动用软件实现不同功能、一定程度上灵活地扩展业务处理类型。缺点:受技术限制不成熟ASIP(ApplicationSpecificInstructionProcessor)——NP(NetworkProcessor)特点:由若干微处理器和一些硬件协处理器组成,并行工作,通过软件来控制处理流程。针对网络应用设计,对于一些复杂的标准操作采用硬件协处理器来提高处理性能。可编程、可扩展。实现业务灵活性与高性能的有机结合。什么是网络处理器(NP)网络处理器是面向网络应用领域的应用特定指令处理器,是面向数据分组处理的、具有体系结构特征和/或特定电路的、软件可编程器件。通过灵活的软件体系提供硬件级的处理性能是NP的关键特性。在以GPP和ASIC/RSIC为核心的设备体系结构阶段,对2~3层数据处理采用“存储——转发”数据分组处理模式。随着网络发展,需要对2~7层的数据分组采用“存储——处理——转发”数据分组处理模式才能实现复杂的QOS、安全控制、负载均衡等功能模块。NP的出现,标志着设备对数据分组的处理能力从低层处理过渡到高层细化处理。NP技术为下一代网络的核心技术,其特点是:NP针对数据分组处理,采用优化体系结构、专用指令集、硬件单元,满足高速数据分组线速处理要求;具有软件编程能力,能够迅速实现新的标准、服务、应用,满足网络业务复杂多样化需求,灵活性好;设备具有软件升级能力,满足用户设备硬件投资保护需求。

网络处理器产品AppliedMicroCircuitsCorp(AMCC)仍然是该市场的领先者,AMCC的网络处理器产品用于思科和其他的顶级OEM厂商。IBMPowerNP网络处理器CISCOPXF网络处理器MotorolaC-PortC-5Chip网络处理器IntelIXP网络处理器Agere(杰尔系统)Vitesse各大厂商的市场占有率报告提纲网络处理器发展历程Intel®IXP系列网络处理器基于Intel®IXP2400网络系统设计网络处理器的应用领域Intel®IXP网络处理器产品线Intel®IXP4XXProductLineofNetworkProcessors面向家庭、小到中型企业。嵌入式网络设备。Intel®IXP12XXProductLineofNetworkProcessorsOC-3至OC-12线速处理应用。Intel®IXP2XXXProductLineofNetworkProcessors灵活、高性能、可扩展的网络处理器。最高可满足OC-192的线速处理。IXP2400网络处理器1个Intel®XScale™Core8个MicroEngineVersion2(MEv2)1个DDRSDRAM控制器2个独立的QDRSRAM控制器MSF(MediaandSwitchFabric)接口PCI控制器16K字节Scratchpad存储器Hash单元CAP-片内控制和状态寄存器

XPI-Intel®XScale™core外设接口IXP2400特点采用多内核并行处理器结构:片内处理器按任务分为控制平面处理器和数据层面处理器。控制平面处理器通常负责非实时的管理任务;数据平面处理器进行实时、线速数据分组处理。处理器XScal工作在控制平面提供总的控制,处理高层协议,八个并行微引擎工作在数据平面。微引擎是精简的可编程处理器,在入口和出口处线速处理数据分组。支持硬件多线程:为了提高网络处理器的资源利用率,每个微引擎还支持四个或八个硬件线程。每个线程都有一套专门的硬件来存放上下文(Context),以获得线程切换的零开销。优化指令集,设计专用硬件加速处理单元。采用RISC技术,结合多级流水线技术,大部分指令在一个时钟周期完成。针对网络协议处理特点,设置专用硬件加速处理单元,提供专用指令如乘法指令、CRC校验指令、哈希计算指令、字节对齐指令、硬件队列与环操作指令、CAM(ContentAddressingMemory)查找指令、MSF与DRAM间快速通道指令、状态判断与数据读写指令等。IXP2400特点(续)优化的分级存储组织和分布式存取。网络数据处理需要进行大量的数据分组的接收、存储、复制、转发,存储操作成为系统开销的一大瓶颈。在微引擎内部有大量的不同类别的寄存器、本地存储器、CAM,在微引擎外部有片内存储器Scratchpad。在网络处理器外部可以扩展大容量的片外存储器SRAM和SDRAM,SRAM用于存放需要快速查找的各种表结构,SDRAM用于存放数据分组信息。模块可并行访问多种数据存储单元,不同数据存储单元的存取时间周期差异很大。硬件支持的环与队列操作。网络数据处理涉及很多队列或环的数据结构操作,而入队或出队操作需要多次访问内存,极大地影响数据处理分组处理的周期。IXP2400中的SRAM控制器提供了基于SRAM的先入先出队列,通过硬件实现了环与队列操作。IXP2400外部特性CustomerASICsUtopia1/2/3,POS-PL2/3orCSIX-L1InterfacePCI64-bit/66MHzIXP2400(Ingress)HostCPU(Optional)ATM/POSPHYorEthernetMACFlashClassificationAcceleratorCoProcBusMicro-EngineClusterSlowPortSwitchFabricPortInterfaceUtopia1,2,3SPI–3(POS-PL3)CSIXIXP2400(Egress)FlowControlBusDDRDRAM2.4GB/s2GByteQDRSRAM1.6GB/sx264MBx2IXASWIXP2400外部特性(续)媒体与交换接口(MSF-MediaandSwitchFabricinterface)连接物理层设备。连接交换矩阵。支持UTOPIA1/2/3,POS-2,SPI-3(POS-PL3),和CSIX接口标准。存储器接口2个QDRSRAM接口(QuadDataRateSRAM)。1个DDRDRAM接口(DoubleDataRateDRAM)。慢速端口(SlowPorts)连接FlashROM和外部芯片的控制接口。PCI接口64bit/66MHzPCI总线,与主CPU接口。流控制总线(FlowControlBus)使用两片IXP2400时,在两个NPU间用专用信道传递流量控制信息。IXP2400体系结构MEv26MEv27MEv25MEv28Intel®XScale™Core32KIC32KDCRbuf64@128BTbuf64@128BHash64/48/128Scratch16KBQDRSRAM1QDRSRAM2DDRAMGASKETPCI(64b)66MHz32b32b181818187264bSPI3orCSIXE/DQE/DQMEv22MEv23MEv21MEv24CSRs-Fast_wr -UART-Timers -GPIO-BootROM/SlowPortIXP2400MEv2特性MEv2-MicroEngineVersion28个微引擎分为两组,每组有专用的命令和数据总线。MECluster0和MECluster1。硬件多线程每个微引擎有4/8个硬件线程,线程间实现零开销切换。非抢占多线程(non-preemptive)由微码指令控制线程间的切换。分布式数据存储可并行访问多种数据存储单元。微引擎内部-寄存器,LocalMemory,CAM。微引擎外部-SRAM,SDRAM,Scratchpad。大量的寄存器256GPRs,512Transfer,128NextNeighbor。指令和数据分离获取微码指令没有延迟。128GPRControlStore4KInstructions128GPRLocalMemory640words128NextNeighbor128SXferOut128DXferOutLocalCSRsCRCUnit128SXferIn128DXferInLMAddr1LMAddr0D-Push

BusS-Push

BusD-PullBusS-PullBusToNextNeighborFromNextNeighborA_OperandB_OperandALU_OutP-Random#32-bitExecution

DataPathMultiplyFindfirstbitAdd,shift,logical2per

CTXCRCremainLock0-15StatusandLRULogic(6-bit)TAGs

0-15StatusEntry#CAMTimersTimestampPrevBB_opPrevAA_opMEv2报告提纲网络处理器发展历程Intel®IXP系列网络处理器基于Intel®IXP2400网络系统设计网络处理器的应用领域基于NP的典型网络系统基于IXP2400实现的OC-48系统IXF6048FramerIXP2400IngressProcessorIXP2400EgressProcessorSwitch

Fabric

GasketSDRAMQ

D

RSDRAMQD

RDDRSDRAMPacketMemoryQDRSRAMQueues&TablesDDRSDRAMPacketMemory

QDRSRAMQueues&Tables1xOC-48or

4xOC-12OC-48OC48

OC48OC48Q

D

RQ

D

RTCAMClassification

AcceleratorTCAMClassification

AcceleratorHostCPU(IOPoriA)基于IntelIXP网络处理器的软件设计控制层面管理层面数据层面网络设备软件的三个层面数据层面。控制层面。管理层面。网络设备软件的三个层面数据层面包括慢速数据通道和快速数据通道。快速数据通道是由微引擎负责处理的数据转发通道,大部分数据包通过此通道完成处理与转发。慢速数据通道:由通用RISC核负责处理一些例外复杂的数据包,如数据包分段、带扩展头部的数据包处理等。控制层面处理各种通信协议。转发表和状态信息维护。管理层面安装配置接口。策略管理接口。系统管理、统计、计费等。MicroenginePipelineControlPlaneProtocolStackControlPlanePDKCoreComponentsCoreComponentLibraryResourceManagerLibraryMicroblockLibraryProtocolLibraryHardwareAbstractionLibraryMicroblockMicroblockMicroblockUtilityLibraryXScaleCoreMicroengineCLanguage/AssemblyLanguageC/C++LanguageExternalProcessorsIXA软件框架多微引擎、多线程的并行设计基于网络处理器成功构建一个网络系统的关键在于网络处理器软件系统的设计与开发,其核心问题就是要软件系统充分发挥网络处理器灵活性和高性能的特点。网络处理器软件系统实现的一个挑战在于软件设计与网络处理器的硬件结构关系非常紧密,必须面向网络处理器的硬件体系结构编程,通过合理分配和使用网络处理器为优化数据包处理的各种硬件资源,如多处理引擎、专用硬件处理单元、各类寄存器、片上内存和其它硬件单元,才能得到一个高性能的系统。通常情况下,在微引擎上运行的应用软件包含多个线程,多个线程运行在多个微引擎上。需要考虑并行程序设计问题。如何实现线速处理?如何保持数据包的顺序?如何在多个线程间传递数据包的状态?如何实现数据互斥?如何隐藏存储器访问时延?如何对数据包进行排队?IXP2400处理过程举例SDHFramerDRAMSRAMMSFDRAMControllerDRAMControllerSRAMControllerSHaCMEMEMEMEMECluster0MEMEMEMEMECluster1XScaleIXP24001,1323124,1151067,8,9IXP2400处理过程举例1.SDH设备接收到一个packet2.MSF将packet拆分为多个mpacket,将mpacket写入RBUFElement3.MSF通知Receive_Free_list中等待数据的线程4.接收线程根据RSW将mpacket直接从RBUFElement读到DRAM,并将mpacket重组为packet5.接收线程将packet放到ScratchpadRing排队6.处理线程从ScratchpadRing取出packet7.从DRAM中读出packet中需要处理的内容8.对数据作处理9.处理完的数据放到SRAMQueue中排队10.发送线程从SRAMQueue取出数据11.将发送p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论