首页通信技术 >> 观点 >> 正文
网络处理器关键技术研究及应用
2006年3月2日 14:23    通信世界网    评论()    阅读:
作者:wheel  
武汉邮电科学研究院    岳青伦
 
一.引言
     近年来互联网流量快速增长,主干路由器的处理速度从622/1000Mbps 增加到2.5Gbps,并且10Gbps的Eth/POS/RPR已经得到应用,特别是大量的多媒体业务的出现,促使这一增长进一步加快;同时,客户对QoS、安全性的要求更加强烈。传统的基于ASIC 和通用CPU的网络设备不能同时满足处理速度和灵活性这两方面的要求,因此,基于ASIP技术的网络处理器(NP)得到了广泛的发展。目前NP芯片上已经可以集成多个为网络处理优化过的处理器单元,同时还集成了一些专用硬件处理模块,如网络层/传输层校验和计算、CAM查找、HASH等,并且在处理速度上已经达到或超过N*10 Gbps。它的出现兼顾了通用CPU的灵活性和ASIC 的执行效率,为从第2层到第7层的多种应用提供了很好的支持。
 
二.网络处理器技术介绍
1. 网络处理器的功能模块
     NP是上世纪90年代末期的新生物,但诸多的通信及半导体公司已经在NP的设计开发及应用展开了激烈的竞争,其中著名的有IBM(PowerNP)、Motorola(C-5)、Lucent(Agere FPP)以及Intel(IXP12xx、IXP2x00)、Ezchip(NP-1C/NP-2)、AMCC(nP系列)等。
 
不同厂家的NP有各自不同的结构和处理方式,但以处理IP数据包为主要目的的NP,其基本架构大同小异;并且随着NPF(Network Processor Forum)的建立,各个厂家在开发新产品时都尽量使网络处理器编程标准化,如采用标准C语言;以及外部接口标准化,如与高速交换矩阵的标准接口CSIX(Common Switch Interface Specification)和标准的SPI接口。
 

 

(1)通用处理模块:有些NP会集成一个通用CPU;通用处理器一般运行操作系统、NP的初始化配置、各种表项的生成维护以及对数据包做深层处理等;通用处理器的性能不需要太高,如果要运行更多的任务可以通过PCI扩展外挂性能更强的CPU。
 
(2)NPE:网络处理器有多个NPE(network processor engine),NPE之间可以并行或串行工作,每个NPE又有多个硬件线程;NPE是NP的核心单元,完成从线路侧或交换侧接收数据,并对数据进行IP重组以及IP包头解析、目的路由查找、数据包排队、发送至线路侧或交换背板;大多数NP的NPE还能对数据包做进一步的操作,如传输层的流区别(TCP/UDP端口号)、ACL安全访问控制、NAT(网络地址转换)、不同帧类型转换(Ethernet和POS、IP和ATM等);随着网络对QoS的需求进一步加强,NP还需要专门集成QoS必需的部件(WRED、WFQ等);NPE是NP的最关键模块,NPE的诸多特性如可编程能力、数据包处理速度、QoS支持能力、处理数据包的方式等都直接体现了该网络处理器的性能和应用前景。
 
(3)外存接口:NP需要外挂DRAM内存,用于运行操作系统、上层协议栈以及各种转发表和数据包缓存;外存接口的数据包读写吞吐率是NP性能的一个重要指标,读写DRAM速度低会直接导致对各种表项的读写速度下降,影响数据包的线速处理,而且随着读写次数的增加,线速处理能力急剧下降;一些NP利用DMA通道提高对数据块的读写效率。
 
(4)高速外存接口:一些NP可以外挂若干片高速缓存(通常是SSRAM),其读写速度大大高于DRAM;用于需要经常访问的表项以及数据包的队列操作等;SSRAM的大小是一个关键参数,随着更多业务的应用,各种表项会消耗大量的SSRAM从而影响新业务的应用。
 
(5)片内缓存:NP内部都有一定容量的高速缓存,用于频繁的读写操作;容量较小的片内缓存只能用于一些统计计数或者替代全局变量;而较大的片内缓存则可以用来进行数据包的缓存,从而彻底避开了利用DRAM作数据包缓存的瓶颈。
 
(6)DBI:Data Bus Interface(数据总线接口)用于连接NP和线路侧适配器或交换矩阵的数据通路;不同NP的数据总线可能不一样;图1中DBI被分为DBI1和DBI2是因为NP通常要把数据送给交换矩阵进行高速交换,而同时还要和线路侧适配器交换数据,因此需要有两个独立的数据通道;DBI的带宽(总线位宽×时钟频率)体现了NP处理数据的能力,但不是绝对的,因为NP随着增值业务的增加,NPE的线速处理能力受到影响,因此瓶颈往往不在数据总线带宽。
 
(7)PCI:几乎所有的NP都有一个标准的PCI接口;该接口用于NP和外部进行通信,典型的应用是在分布式机架结构的设备中主控CPU和线卡CPU同步路由表、管理线卡等。
 
另外,NP还包括用于调试的JTAG接口;一些NP还有专门的总线接口用于多个同样的NP的扩展,这些通过专门总线扩展的多个NP系统具有比单个NP强大得多的处理能力。
 
2. 网络处理器的关键技术
      NP要快速处理到达接口的数据,并且还要尽可能多的进行处理而不失线速;为了迎合这些要求, NP将网络处理任务划分到控制层和数据层两个层面,控制层面专门负责非实时性的管理和策略控制等,数据层面承载高速易变的数据实时处理。总体上, NP主要采用以下硬件处理技术:
 
(1) 两种处理机制
    NP大多是多CPU的结构。这些CPU可以分为两种:一种是具有一般运算能力和指令存储能力的处理单元,如图1中的通用处理模块;另一种是能够完成特定通信处理任务的功能模块,如IP包接收调度、路由查找、校验和计算等。这两种单元一般采用以下两种组织机制:
 
流水线:每个CPU单元被设计成具有特定处理功能的模块,这些模块以流水线方式组织在一起完成分组的处理;
 
并行处理:每个处理单元都可以完成相似的任务,多个处理单元彼此间以松耦合方式组织,并行执行对分组的操作。
 
(2) NPE优化的指令系统
      不同于一般的处理器, NPE单元提供了一些专门用于网络处理的专用指令 ,比如位/字节/字提取、IP头部查错、校验和计算等指令。同时,大部分NP采用了RISC 技术,可以做到任何ALU运算能在一个时钟周期内完成;另外对共享存储器的读写指令可以选择不同的优先级。
 
(3) 优化的内存管理和DMA单元
      在一般的多处理器系统中,内存操作往往是系统开销的一大瓶颈。而NP通常要对分组进行存储和复制等处理,需要执行大量的存储器操作。NP为了优化这一操作往往引入经过优化的存储器接口和一些DMA单元,以提高存储器的操作效率;另外对DRAM和SSRAM的读写可以采用优先访问机制以提高效率。
 
(4) 网络专用的协处理器
     有些NP为一些特定的网络操作提供专用的硬件协处理器 ,比如专用的路由表查找引擎、硬件分类引擎、缓冲和队列管理引擎。
 
(5) 硬件多线程技术
      为了进一步提高处理器的利用率, NP引入硬件多线程技术,并且线程间的切换开销为0;线程切换最常见的是当一个线程执行到读写缓存需要较大时延时,为了提高系统吞吐量而主动挂起当前线程。
 
三.网络处理器的典型应用
1.基于网络处理器的高端路由器线卡结构
      高端路由器线卡主要由MAC/FRAMER、CSIX接口、NP、外挂存储器以及PCI总线等组成。
MAC/FRAMER完成数据在物理线路和NP之间的帧格式转换以及必要的统计计数;
 
CSIX接口用于NP和交换矩阵的包格式转换、数据传送以及流控;
 
PCI总线接口用于扩展外挂性能强大的处理器,以满足用户不断增长的业务需求,另外PCI扩展的以太网通道可以作为承载信令的慢速通道;
 
NP是整个线卡的核心,主要有通用处理模块、NPE-Group1(网络处理引擎组件1:接收方向) 、NPE-Group2(网络处理引擎组件2:发送方向)组成;通用处理模块运行操作系统、BSP以及协议栈,是管理任务和非实时任务(慢速通道)的承载体;NPE-Group1和NPE-Group2处理实时的数据流:其中NPE-Group1完成数据包从MAC/FRAMER接收然后经过路由处理发送给CSIX接口;NPE-Group2则完成数据包从CSIX接收,然后经过排队及其它处理发送给MAC/FRAMER;图2和图3描述了这两个过程:

 
 
 
 
 
所有NPE的任务由预先根据需求编写好的任务模块组成,并且可以在运行过程中动态加载新的任务模块,具有极大的灵活性,可以满足大部分应用业务;另外,支持DifferServ(区分服务),基于L2-L4进行流分类、流标记、流量整形、队列管理(Tail Drop、RED、WRED)以及多种队列调度算法(FIFO、PQ、WFQ等)。

2. 网络处理器的其它典型应用
     NP灵活的可编程特性以及专为IP业务定制的专用部件,使其可以实现比普通路由、交换更为复杂的业务处理。在城域网、骨干网优化升级的过程中需要支持MPLS,在向Ipv6过渡的过程中,需要Ipv6的IP转发设备以及高性能的V4/V6互通网关,NP很好的满足了这一要求,在不需要更换硬件设备的情况下通过代码的升级即可实现新的业务,极大的节省了网络升级费用;以NP构建的防火墙具有比普通路由器的ACL功能强大得多的安全过滤规则,同时其性能、端口密度又远远超过传统的软件防火墙;NP还可以根据应用层协议实现负载均衡,用作服务器群的前端流量均衡设备;除此之外,通过对NP的编程,可以实现网络安全监控、电信业务分析、内容过滤等业务,帮助运营商更好的监控、管理网络。
 
四.网络处理器的未来
   “今天的核心就是明天的边缘”,网络对性能的要求一刻都没有停止,NP为满足这一需求,必须进一步优化体系结构和采用更先进的技术来以更高的速度和更灵活的方式处理IP分组;同时NP在很多场合必须辅助于协处理器以应对更加复杂的处理;为解决产品互连互通和软件可移植性等问题,网络处理器的软硬件都需要有标准化的接口;此外,NP还需要有系列化的产品以分别满足低端和高端、边缘和核心的需要。
 
可以看出,网络处理器从技术层面和市场应用经过几年的探索,已经趋于成熟,在互联网未来的发展道路上,网络处理器必将占据重要位置并且扮演重要角色,多个厂家、多种技术的产品将共同打造新一代互联网设备。

编辑:郑宏
[相关新闻]
没有任何相关新闻
[ 本站暂时关闭评论 ]
  推 荐 新 闻
  技 术 动 态
  通 信 圈