网络处理器及其应用
2016-07-09张天照
张天照
摘要:在深入分析网络处理器的构成和特点的基础上,结合具体实例介绍了网络处理器在骨干网和接入网中的应用情况;结合通信网络的发展趋势和逻辑编程方式设计网络处理器的方法,从应用角度阐述了网络处理器在传统网络以及软件定义网络等新型网络中的作用,并分析了网络处理器的发展方向、潜在的应用场景。
关键词:网络处理器 接入网 骨干网 通信网络
中图分类号: TP393.05 文献标识码:A 文章编号:1007-9416(2016)06-0000-00
1 引言
网络处理器是一种面向通信领域、软件可编程的专用芯片;具有ASIC的处理速度和通用CPU编程灵活性;可满足通信网络中第2层到第7层涉及的各类处理需求;已经成为数据网、电信网等领域中的关键部件。随着新业务的不断涌现,软件定义网络等新型网络[1]的试验与部署,网络处理器也得到了更快的发展、更广的应用。在分析网络处理器主要构成和特点的基础上,结合EZchip公司和PMC-Sierra公司的相关产品介绍了网络处理器在数据网骨干层、电信网接入层的应用情况;通过对Xilinx公司的以逻辑编程方式设计网络处理器方法的分析,阐述了网络处理器在新型网络中的作用及其未来的发展方向和应用场景。
2 网络处理器的构成和特点
如图1所示,网络处理器通常由处理单元、流量管控单元、互连单元、存储单元等部分构成。处理单元通常包括一个通用处理引擎、多个专用处理引擎和硬件加速引擎,形成一个多处理器系统;通用处理引擎通常采用通用CPU架构,用于系统的管理与维护、异常的处理等工作;专用处理引擎多采用定制架构,用于对数据包进行不同层面、不同深度的高速处理;硬件加速引擎一般由支持哈希查找、数据编解码等功能的硬件电路构成,配合专用处理引擎工作。流量管控单元对每个数据包及关联的数据流进行综合处理以满足QoS等方面的要求。互连单元采用多种高速总线将各个单元连接起来,形成硬件并行的数据通路结构。存储单元提供数据包、表项类、指令类等多种类型的片内存储空间,并通过Flash、TCAM、RLDRAM等接口提供大量的片外存储空间。
网络处理器高速、灵活的特性主要体现在专用处理引擎处理数据包的能力方面。专用处理引擎具有相对独立的存储、指令译码与执行、状态、控制等部件;通过多线程切换、块传输、多总线等机制并行的处理数据包;可协同硬件加速引擎进一步提高处理速度。利用专用处理引擎之间无直接关联的特点,通过流水线可实现系统指令的并行处理,使网络处理器线速工作。设计人员可通过对专用处理引擎微码编程控制数据包的整个处理过程,具有比拟于通用CPU的灵活性,使基于网络处理器的设备能够以软件升级的方式快速适应需求的变化。
3 网络处理器的应用
3.1 网络处理器在骨干网中的应用
骨干网的建设周期长、投入多,承载的业务量大、可靠性要求高;其网络设备需要兼顾当前和长远发展的各种需求;通常采用以网络处理器为核心部件设计性能高、扩展性强的网络设备。如图2所示,全双工线卡主要由4颗EZchip公司的网络处理器NP-4构成[2],最大处理速率100Gbps。NP-4主要由多个专用处理引擎(TOPs,Task Optimized Processors)、流量管理控制器(TM,Traffic Managers)、内部互连单元、控制CPU、QoS管理CPU等部分构成;图中虚线展示了数据包在全双工线卡中的主要传输过程。
如图3所示,NP-4主要通过TOPs和TM对每包数据分阶段处理。TOPs根据网络协议或应用要求对输入数据包的相关字段进行解析,并提取关键字;然后根据关键字查找相关的路由表、会话表、策略表等表项;根据查找的结果进行判断、决策、更新会话状态、启用附加查找等操作;最后根据处理结果修改数据包的相关内容后输出。TM依据QoS等方面的要求对数据包以及关联的数据流进行WRED等多方面的处理。EZchip公司根据数据包分阶段相对独立处理、整体硬件结构异构并行等特点,开发了专用的编程环境,设计人员可以采用扁平化的编程模型,分层次编辑和维护软件代码,大幅降低了多核处理系统的应用难度。目前,NP-4主要用在高端路由器等网络设备中。
3.2 网络处理器在接入网中的应用
接入网距离用户通常只有几跳,业务需求、网络拓扑和流量变化比较快,但是业务量较少,可靠性要求不高;集成多种功能的低成本、低功耗网络处理器也越来越多的应用在接入网设备中。如图4所示,PMC-Sierra公司的WinPath3网络处理器[3]集成了GE、10GE、E1、SDH等多种常见的通信接口;支持以太网OAM、MPLS、PWE3、PB等多种类型的通信协议;支持参考时钟源、GPS、IEEE1588等多种同步方式;可面向终端用户提供数据业务和传统电信业务的接入以及接入层的汇聚等功能。WinPath3的业务处理核心主要由12个专用处理引擎、64个协处理引擎和多种类型的硬件加速处理单元构成;对数据业务的处理主要包括解析、查找、流量管量与控制、QoS等网络处理器通常涉及的处理环节;对于传统电信业务,协同TDM、时钟等处理单元进行同步、时隙抽取与插入、包流转换等一系列处理;系统的管理、控制、异常处理等工作主要由芯片内的两个MIPS处理器具体实现。目前,基于WinPath3处理器线卡主要应用在移动回传网以及企业专用通信系统等领域。
3.3 网络处理器与新型网络
随着用户和运营商对新的连接方式、服务、标准等方面需求的不断涌现,软件定义网络等新型网络逐渐从试验走向部署,网络处理器也以各种应用形式不断提高这些网络的可编程性、可定制能力。如图5所示,软定义线卡的处理核心采用FPGA方式实现,并且能够支持多种常见的软件定义网络规范;设计人员在Xilinx公司提供的开发环境中,通过SDNet组件[4]设计线卡的可编程数据包处理器、可编程流量管控器等业务处理部分;通过SDAccel组件及其库文件设计MAC、外部存储器接口等逻辑部分。设计人员根据实际应用的要求,通过C/C++编程方式对业务处理过程中的解析、查找、QoS等环节进行原理设计,具体实现细节由开发软件自动生成,无需重新编程即可扩展设计的性能、功率、资源,形成自定义的硬件结构。逻辑编程的实现方式使得网络处理器泛化为一种不依赖具体硬件形态的数据处理技术,灵活性从软件可编程拓展到硬件可定制;有利于提高新型网络适应业务、网络架构变化的能力;有利于网络处理器拓展到传统的FPGA应用领域,更广泛的应用于网络终端。
4 结语
网络处理器从数据网到电信网,从接入层到骨干层都有这广泛的应用。随着需求的推动和技术间的交叉融合,网络处理器在保持高速、灵活特性的基础上,融入了通用性强、开发环境友好、软硬件融合度高等设计理念,并泛化为数据处理技术;网络处理器在交换、路由、网络融合与演进等传统领域将继续发挥关键部件的作用,并可进一步拓展到网络终端等领域。
参考文献
[1]张朝昆,崔勇,唐翯祎,等.软件定义网络(SDN)研究进展[J].软件学报,2015,26(1):62-81.
[2]EZchip.NP-4 specification[EB/OL].2014.
[3]PMC-Sierra.WinPath3 Product Datasheet[EB/OL].2012.
[4]Xilinx. Software defined specification environment for networking(SDNet)[EB/OL]. 2014.