技术中心

用协处理器提高网络灵活性和处理能力

来源:烟台勾股通信技术有限公司
2007/4/16 20:57:27
1108
导读:

网络处理器协处理器是通信设计的必要部分,随着网络业务日趋复杂以及用户对网络性能要求提高,网络处理器和协处理器性能要求将更高。通信设计工程师必须针对不同的设计要求,在性能、成本、可配置性、开发时间等方面权衡,在多个网络处理器和协处理器之间进行功能分配,选择出符合特定设计的*方案。

传统的网络处理解决方案,包括交换网络处理都是在单芯片上实现。现在这些方案已经转变为由多个处理器和协处理器来实现,许多供应商都集中于提供具备特定处理能力的处理器。今天的网络处理功能复杂,设计时需要在运行速度、成本、可配置性、开发时间等方面均衡考虑。

网络处理的任务可以用的ASIC电路来实现高速的处理能力,但可配置性差而且开发时间长;而用可编程网络处理单元(NPU)可以加快开发速度,而且灵活性好。一些设计工程师同时采用两种技术,用NPU处理复杂的QoS、安全和特殊情况处理任务,用ASIC负责高速数据通道。

当前网络处理器面临的挑战

zui主要的挑战是NPU的处理能力增长比光纤传输速率增长缓慢。互联网的数据流量带宽平均每6到9个月翻倍,而NPU性能的增长满足摩尔定律,每18个月增加一倍。

城域网和骨干光纤的数据速率增长很快,同时数据流的复杂性也增加。今天的用户要求网络必须在持续的线速率下能提供成熟的网络服务和流量管理,例如对VPN和实时的语音和视频混合数据流进行QoS管理。因为这些复杂业务需要占用大量的处理时间,给网络处理器增加了额外的负载。在有限业务下,当前的网络处理器能处理OC-48线速率。但是,随着设计中加入的功能增多,网络处理器单元将难以应付。

可编程网络处理器单元的性能很大程度决定于编程代码的类型。要让网络处理器单元工作在线速率下,设计工程师必须花大量时间来优化代码,使程序更地在网络处理器上运行,这延长了NPU的开发时间,因而不能满足快速上市的要求。

另外一个挑战是进入系统的汇总带宽常常是系统出口处理能力的2倍到12倍,业务提供商通常是不会考虑所有用户同时占用一定带宽的情况,因此当很多用户同时使用时,用户带宽将不能满足要求。网络处理器必须对信息流进行优先等级划分来保证QoS。

网络处理器及其任务和目标

网络处理器是用来满足网络市场需要的微处理器,其结构能支持网络设备的地址宽度并支持一些常用网络操作,如为了支持多协议标签交换(MPLS)和其它协议的路由器查表处理等。一般的网络处理器能支持在一个方案中用多个处理器来提供吉比特速率的处理能力。

网络处理器的优点是设计灵活以及开发时间短。NPU方案基于软件,能支持复杂路由算法,具有改变设计的灵活性并能很容易地进行功能升级。但是网络处理器也有其缺点,包括成本、对RAM的需求以及性能。由于网络处理器是的,因此其成本相对较高,并需要很大的同步静态随机存储器(SSRAM)空间来保存路由表以优化查表性能,要用高的时钟速率来提高路由速度。

NPU实现的传统任务包括:1. 根据优先级对数据包分类;2. 根据这个分类来决定丢掉哪些数据包以及发送哪些数据包;3. 将不同协议的信息流转换为IP协议;4. 数据排序;5. 支持安全应用,例如VPN;6. 业务监管、业务提供和用户管理-加强业务级协定(SLA)。

现在,上面的部分任务可以由的协处理器来完成。

为了实现上面的任务,NPU必须以线速率对传输的所有数据包进行检查、分隔和分优先级处理。这儿的“线速率处理”是指在包的zui后一位进入系统之前将数据包安排到出口队列或丢弃的处理能力,数据包还必须能以物理链接允许的zui大速率输出。NPU要达到的目标是比ASIC方案的开发时间更短。在NPU中要求的功能有:

1. 性能必须适合目标带宽; 2. 能支持目标应用以及能满足业务发展;3. 支持软件和硬件集成和互操作的工业标准;4. 鲁棒性很强、能支持标准API的软件开发工具。

网络处理的传统方法

在*代NPU中所有的网络处理功能放在单个器件内实现,但是后来发现难于使用而且成本高。随着用户功能要求越来越多,由一个器件来实现所有这些功能显得很复杂,于是将这些功能由几个器件来完成。现在的网络处理方案包括*可编程NPU和协处理器以及用ASIC来实现高速操作。

这些方案的优缺点

可编程网络处理器提供了*可编程方案,可实现灵活的设计并具有对不同的标准编码的能力。协处理器在处理特定功能时非常快,但相比网络处理器它的可配置性差。大多数设计工程师在设计中同时采用以上方法,在满足性能要求的同时使设计更加灵活。

为方便用户在他们的设计方案中平滑地集成不同供应商的软件,还必须定义明确的软件接口。必须有一个标准的API集来支持常用功能,在采用了不同供应商的不同部件的条件下系统结构依然保持不变。

要成功地将这些不同功能模块一起使用,在这些模块之间必须有相同等级的互操作性。一些工业组织正致力于使不同网络部件间的软件和硬件接口标准化,通过这些接口能提高互操作性并鼓励公平竞争。

网络处理结构

传统的结构中,绝大部分处理是由软件通过ASIC、FPGA和NPU来实现的。系统中用户卡主要用作包发送,以前的大部分处理工作在交换网络上完成。由于交换网络是按通过网络的数据速率设计,这种传统结构不能向高速扩展。

现在一些新的结构(分布式包处理)中由每个用户卡来执行路由功能,并且对交换网络进行优化,以保证数据包通过用户卡的无堵塞传输。由于交换网络不再成为瓶颈,这种结构还有一定的可扩展性。

协处理器完成部分网络处理器任务

随着现在网络基础设施的复杂度和速度的提高,成功的系统设计要求快速、灵活的搜索能力。在一代产品中的一个关键要求是在业务中加入“智能”功能,即根据包的第3、4层以及更高层上的内部信息来作出选择。

a. 网络搜索引擎

通过网络搜索引擎(NSE)设计工程师可以消除在转发查表和其他复杂分类选择时的瓶颈。NSE基本上就是一个三进制可寻址存储器(CAM),称为三进制是因为它可以存储0、1和X(随机)三种状态,而不象传统的二进制存储器只能存储0和1两种状态。无级(互联网)域名路由(CIDR)使用zui长前缀匹配(longest-prefix-match)表,与三进制CAM一起能轻易实现网络搜索引擎功能。

可以从下面三个方面考虑网络搜索引擎的要求:

1. 随着一些业务和应用增加搜索深度加深;2. 要搜索的记录数目随着网络的扩展成指数增加;3. 网络速度的提高意味着搜索时间将减少。

b. 分类引擎

根据预定义规则对数据包进行分类,这种能力对于提供许多成熟增值业务相当关键,例如,安全、QoS、负载均衡等。分类引擎实现原来由NPU完成的数据包分类任务。实现过程如下:

1. NPU取出需要根据数据路径分类的包并存储在缓存内;2. 分类引擎将数据包从缓存内取出并对其分类,然后将包和相关数据放回缓存并通知NPU该过程已经完成;3. 随后,NPU将数据包和分类数据从缓存内取出,并作相应的处理。

c. 安全处理器

许多网络应用对通信安全要求很高,如VPN和电子商务等。对于网络处理器来说安全处理是一个很大的负担,许多网络使用协处理器来分担这部分工作,使网络处理器集中于提供QoS和其他功能。

安全处理也可以由加密功能模块来处理,该加密模块由一个卡上的几个加密处理器组成。该卡可以和一些常用用户卡一起安装,满足系统对安全处理的要求。

d. 具有协处理器的系统结构

上述协处理器的结构可以用在旁侧模式(look-aside),在该模式下协处理器位于NPU一侧,位于数据路径外,这样数据包的协处理与网络处理器并行运行,从而提高总的数据吞吐量。旁侧模式可能不会接收到通过NPU数据包的全部净载荷。该模式的一个缺点是设计很复杂,并增加了系统的延时。

还有一种结构是流线(streaming)结构,该结构中数据通道包括了NPU和协处理器。每个数据包都通过协处理器,协处理器可以按需要对数据包处理或无延时地直接发送给NPU。流线结构要求协处理器能以线速率连续处理数据包,否则协处理器将难以处理太多的数据而只能将数据包丢掉。

外围器件与网络处理器实现用户卡功能

图1显示了典型的用户卡结构。在该图中网络处理器、网络协处理器和其他器件一起实现不同协议数据包的传输和处理。部分的外围器件与网络处理器一起来实现下述的完整通信方案。

a. 成帧器

器件是一个高度集成的SONET/SDH成帧器,用来实现将ATM和IP数据在SONET/SDH链路上传输,例如POSIC成帧器。在端口侧它能支持SONET/SDH和直接通过光纤的数据网络的下一代光网络协议;在系统侧,它能支持UTOPIA(第三级)、POS-PHY(第三级)和高带宽同步传输(HBST)。

成帧器执行段开销(SOH)、线路开销(LOH)和通道开销(POH)的处理,同时还支持多达16个通道的虚拟级联,能提供基于SONET的ATM和以太网传输的安全性和的合适带宽。

成帧器还支持“帧标记引擎”,能以线速率实现对包/帧线速率加标记。对于新一代的网络功能,如多协议标签交换(MPLS),该引擎能根据每个包中的前64字节特定标签/区域值的有无来进行标记处理。数据包可标记为多种状态(用户可编程设定),能实现对输入数据流中的数据包分类,并根据不同的情况进行缓冲处理。

b. 数据通道交换

有一种四端口数据通道交换器件(DSE),其逻辑部分和存储器相结合建立了一种无堵塞的交换结构,可用作通信数据通道管理器。该器件还可用在以下情况:

1. 在四个FPGA、CPLD、ASIC和物理层器件(PHY)或一系列DSP器件间的4×4交换网络;

2. 一种冗余数据通道发生器,能允许用户从一个端口输入单个数据流,在其他的输出端口以不同的数据率输出相同的数据流;

3. 一种包头处理引擎,通过使用两个端口读写一个完整的数据包,一个或两个端口来监测和/或改变包头;

4. 用来替代数据通道FPGA,这样能减少控制功能的逻辑门数量。

通过在紧邻背板物理层器件(如HOTLink系列器件)的数据通道中直接插入四端口DSE,这样就不需要在数据通道中使用逻辑电路。两个端口可以用来处理从物理层器件到系统其他部分的数据流,剩下的两个端口可以连接到一个处理器或可编程逻辑器件来控制和处理数据。

通过重新调整从数据通道到纯控制的可编程逻辑功能,系统设计工程师能降低可编程逻辑器件的门数和需要的I/O数量,使用更有效的CPLD结构,例如Delta39K器件,而不*复杂而门数很高的FPGA器件

c. 串行器件

串行收发器用于高速通信背板中,如HOTLink系列器件。这些器件在用于存储区域网络(SAN)、广域网、无线基础设施和局域网交换机的背板中能提供高带宽和灵活性。

协处理器和网络处理器在MPLS中的一例应用

MPLS是在IP网络中的一种优化的交换技术,能与其他很多传输技术(如ATM和帧中继等)一起使用。在MPLS中,当IP包进入MPLS网络部分时会在包上加入第二层路由标签,然后根据该标签数据包在该部分继续发送。MPLS的主要目标就是实现在低的可预测延时、高带宽、流量控制的同时对互联网骨干网进行配置。

为了能在路由器内*实现MPLS功能,需要有三个不同的查询表来满足三种可能执行的处理。由于每个记录都有自己用来路由汇集的掩码,标签交换路由器(LSR)决策表(determination table)可能很大而且搜索算法复杂。由于在每个点到点之间会定义LSR来实现MPLS部分的QoS和服务等级(CoS),MPLS路由表也会有很大数量的记录。

MPLS路由需要的查询表可以单独由一个网络处理器来实现,如图2所示,或者使用网络协处理器来实现,如图3所示。

在此,我们来看一种使用“网络搜索引擎”技术的低成本实现方法(如LNI7020),该方法可以与网络处理器或标准RISC微处理器一起使用。网络搜索引擎控制器可以是定制的ASIC或搜索引擎控制器(如LNI8010)。

“网络搜索引擎”用来保存设计要求的路由表。LNI7020“网络搜索引擎”可设置成保存多个表,这种设置可以动态修改。相同的设计可以用在MPLS边缘路由器和MPLS部分的内核。

使用网络协处理器的优点是能使用更低的时钟速率和更低的RAM空间并能缩短上市时间。网络搜索引擎执行路由表查询,因此可以使用较低的时钟速率。路由表存储在网络搜索引擎中,这种网络搜索引擎比相关的SSRAM方法具有更高的位使用效率,可以使用较小的SSRAM块。网络搜索引擎不需要复杂的软件算法,因此减少了开发时间。

相关技术