浅谈网络处理器

网络处理器

 

一 引言

网络处理器(Network Processor,简称NP),根据国际网络处理器会议(Network Processors Conference)的定义:网络处理器是一种可编程器件,它特定的应用于通信领域的各种任务,比如包处理、协议分析、路由查找、声音/数据的汇聚、防火墙、QoS等。

自1999年第一款网络处理器问世以来,NP就得到许多半导体公司、网络设备厂商的关注,不同体系结构的NP相继出现并投入使用。与此同时,针对NP其应用技术的研究也成为近年网络领域的研究热点。

本文从不同种类的网络处理器的介绍入手,回顾和综述了网络处理器各方面的发展情况,研究了其体系结构的基本组成,并对典型NP的体系结构特征进行介绍和总结,最后对所介绍的NP进行分析与比较,并对其进行总结。

二 网络处理器种类介绍

目前已有30个网络处理器厂商完成超过500个的NP设计,产品主要面向2.5Gbps~10Gbps的网络应用,40G的NP正在走向市场。本章将选取目前市场上的典型网络处理器进行介绍。

3.1 Agere(PayloadPlus)

Agere网络处理解决方案由三个独立的芯片组成:快速模式处

理器(FPP),路由交换处理器(RSP)和Agere系统接口(ASI)。主要数据流水线从物理接口到FPP再到RSP。 ASI仅用于特殊情况和总体管理。该解决方案针对2-4层处理,并支持高达2.5 Gbps的数据包速率。

架构
系统架构由三个芯片组成:快速模式处理器(FPP),路由交换处理器(RSP)和Agere系统接口(ASI)。图16显示了PayloadPlus系统和它是如何与网络结构进行连接通讯,并标注了从物理接口到快速模式处理器再到路由交换处理器以及返回到网络结构中的主数据路径。


图1  Agere PayloadPlus系统。


Agere系统接口(ASI)

ASI的主要功能是处理“慢路径处理”即初始化,路由表更新,队列处理更新,异常处理和统计信息收集。

有一个用于外部管理的PCI接口和用于访问片外存储器的PC133 SDRAM。用于编程RSP的相同脚本语言用于ASI。


3.2超微Alchemy AU1000

超微AU1000是一种低功耗MIPS核心,有一些新的指令和多种集成外围设备支持,其公司声称其设备也应用于边缘路由器和线卡。

结构

AU1000 是一个基于标量MIPS的处理器,有5级流水线优化,以减少分支惩罚,另外还有一个32x16 MAC(乘加)并行运行的CPU流水线。有条件移动的特殊指令用于计算前导零和预取内存。

有核,有两个以太网控制器,一个红外端口,支持USB,4UARTs。有16KB指令和数据高速缓存。

可编程性

该设备基于MIPS核,因此它支持C编程,程序员可以利用它的软件开发工具以及各种第三方工具。此外,还有对微软CE、Linux和VxWorks操作系统的支持。


3.3Applied Micro Circuits, formerly MMC Networks

应用微电路NP7网络处理器家族是建立在epif-200上的包处理器,epif-200s在单一芯片上,可以支持10Gbps的np7xxx包速率。NP系列针对2-7层网络。

结构

epif-200是一个64位的处理器与网络优化的指令集和zerooverhead任务切换在8线上。有用于分组分类的可编程策略引擎和用于第2层VLAN桥接和第3层最长前缀匹配查找的搜索引擎。数据包转换引擎执行所有必需的数据包操纵。此外,有统计引擎兼容的数据采集远程监控。epif-200设计与其他epif-200,MMC,开关芯片,和NP家庭协处理器无缝工作。

可编程性

应用微电路简化了多处理器编程模型,程序员可把设备看作一个逻辑CPU。此外,他们提供了一个C / C++编译器、汇编器、调试器。


3.4 BRECIS通讯(MSP5000)

BRECIS的 MSP系列处理器主要处理来自PBX的语音流量和从网络核心到LAN的数据流量。他们的解决方案的核心在于连接了主要处理元件,并且在总线事务级别固有地支持QoS(Quality of Service,服务质量)的多业务总线架构。其顶级产品MSP5000可同时支持8-24 G711语音通道,4-10 G729语音通道和52Mbps数据速率。

架构

BRECIS的MSP网络处理器是通过高带宽总线连接三个处理器,两个分组和语音处理DSP(LSI ZSP400s)以及用于控制平面操作的MIPS R4KM处理器。

多业务总线架构具有3.2Gbps的峰值带宽,连接网络处理器的主要器件包括DSP,控制处理器,安全协处理器,以太网MAC和外设子系统。 总线支持三个优先级之间的同时事务和动态优先级切换。 每个子系统的总线接口(每个处理器一个)由分组分类器和三个分组队列组成,它们直接映射到由该设备处理的三种类型的流量(语音,数据和控制)。每个子系统还包含一个上下文感知的DMA引擎,它从数据处理器中卸载数据包传输任务。对于电话支持,MSP5000具有双TDM接口(每个支持128个通道)。

可编程性

BRECIS为应用程序特定的引擎提供API,如安全协处理器和总线接口中的数据包队列。 第三方工具链可用于编程LSI ZSP400和MIPS R4KM。此外,它们还提供常见网络应用(ATM AAL0 / 2/5,ATM SAR,帧中继封装和VoIP)的固件。 MSP系列支持VxWorks,Linux和BSD操作系统。


3.5Cisco (PXF/Toaster 2)

思科PXF是思科边缘路由器的内部产品。他的技术⽂档资料⽐较粗略,但是他是路由器中使⽤的⼀种⽹络处理器,例如在Cisco 10000边缘服务路由器(ESR)上使⽤。 PXF仅⽤于执⾏第3层数据路径计算。 有⼀个单独的路由处理器来处理⽹络管理任务。
架构
PXF由⼀对IC组成,每个IC由四个管道中排列的16个处理器组成。 当⼀起使⽤时,该对PXF产⽣4x8的⼼脏收缩阵列。 32个处理器中的每⼀个都具有⽤于分组处理的特殊指令的2发VLIW。 每个处理器都有⼀个独⽴的内存,每列处理器可以访问⾃⼰独⽴的内存(⽚外)。流⽔线中的8个级别中的每⼀个负责不同的分组转发功能。思科公司称微处理器的功能分配是灵活的,但是由于专门的硬件可能⽤于加速这些计算, 因此⼤家不太清楚这个微处理器可以发挥什么作⽤。Connected Components Corp.最近为PXF编写了⼀个C编译器。 此外,PXF⽀持思科的内部操作系统IOS。


3.6EZchip

使用专门的处理器进行网络处理所需的不同任务。这些专用处理器或任务优化处理器(TOP)是它们是以流水线方式排列的超标量处理器。 NP-1专为处理第2-7层数据包而设计处理速度为10Gbps。 有一个单独用于用于控制处理器来处理控制平面操作的接口。

架构

EZchip NP-1有许多任务优化处理器(TOP),每个都有自己的定制指令集和数据路径。这些TOP以流水线的方式排列。

四种类型的TOP:

识别和提取各种数据包头和协议

执行不同级别的查找(第2-7层)

将数据包分配到适当的队列和/或端口

修改包内容

此外,他们声称拥有正在申请专利的算法来利用嵌入式存储器来搜索外部存储器以支持10Gbps的线路速率。 这些算法和相关联的数据结构可以实现长和可变长度的字符串搜索。 他们的进一步细节

方法还没实现。

可编程性

EZchip具有用于NP-1的软件开发环境,包括汇编器,调试器和仿真器。 计划用于未来设计的高级语言编译器。此外,他们还提供了一个常用的交换和路由应用程序库。软件开发环境的成本为20,000美元,每年维护费用为15%。


3.7 IBM(PowerNP)

PowerNP设备是⼀个拥有⼗六个协议处理器(protocol processors), 七个专有核处理器(specialized co-processors)和⼀个PowerPC处理核⼼的多功能处理器解决⽅案。 PowerNP⽀持分组业务(Packet Over SONET)⽹络和具有2.5Gbps的报⽂处理能⼒, 并且它主要处理⼆到五层的协议。

体系结构
IBM的⽹络处理器包括嵌⼊式处理器复合体(EPC),专有的帧处理硬件和外置的接⼝。 EPC含有⼀个PowerPC核⼼和⼗六个可编程协议处理器(组成嵌⼊式处理器)。每对协议处理器都共享硬件核处理器来加速树形搜索和帧节操作。 每⼀个协议处理器都有⼀个三级流⽔线。 协议核处理器中有两个特殊的, ⼀个是“引导帧”处理器(允许加速器同别的⽹络处理设备交流) , 另⼀个是建⽴查找表处理器。 七个核处理器主要有以下七个功能:

  •  数据存储: 接⼝帧缓冲区 ⽀持直接内存访问(DMA)
  •   校验: 计算校验头
  •  ⼊队: 完成单元使帧在交换机和端⼝(tarsgetport)中按序排队
  •   接⼝: 使所有协议处理器可以访问内存寄存器, 计数器和存储器
  •   字符串的复制: 允许在EPC中进⾏⾼效的数据移动
  •   计数器: 管理协议处理器的计数器更新
  •  策略: 检查流量控制信息和是否符合预先分配的带宽

每个协议处理器都具有8kb的指令寄存器。 同时每个协议处理器上都分布有8kb到32kb不等的内部控制寄存器。

可编程性
代码开发套件包括⼀个picocode汇编器, 调试器和系统模拟器。


3.8 英特尔-IXP1200

IntelI XP1200是面世的首款网络处理器之一,主要用于2-4层处理(数据层-网络层-传输层),可以支持2.5M/s的数据包速率,可以通过将外部处理器连接到PCI接口来支持更高层。IXP由6个“微型引擎”和StrongARM处理器组成。每个微型引擎具有最多4个线程的硬件支持,另外还有专门的硬件来执行哈希函数,排队和单循环移位和调换。

 

结构

IXP 1200由六个可编程微型引擎和一个200MHz StrongARM组成,用于协调系统活动。一个64位总线的IX总线提供高带宽连接到微型引擎,StrongArm,内存和非芯片设备,如MAC设备或其他IXP1200。 PCI总线接口允许与外部控制处理器集成。

 

微型引擎执行所有的数据包处理任务。它们为每个四个线程提供了硬件支持(即零空间交换),总共有24个线程在芯片上。虽然微引擎上的四个线程共享一个共同的寄存器文件中存在将寄存器文件分为四个部分(每个线程一个)的软件策略。这使得设备可以在单个周期内交换上下文。微引擎还具有用于数据包处理的特殊指令, 喜欢找到第一位设置,桶位移和提取字节/字。

 

除了微型引擎,IXP还有一些特殊的硬件单元可以帮助数据包处理。 有一个可编程的哈希引擎和专用的队列共享所有的微型引擎和StrongARM。 接收(发送)FIFO提供接口通过读取(写入)数据包到(出)的片上队列中,到MAC层设备通过IX总线访问。拥有一个8KB的片上数据缓存,StrongARM的16KB指令缓存,和4kbyte的片上Scratchpad SRAM。

 

可编程性

编程IXP1200都是在宏组件中完成的,尽管它们将释放一个C编译器在2H01。 考虑到6台微型发动机并联运行,编程IXP证明是一项艰巨的任务。 汇编语言加剧了这个过程包括上下文切换等独特功能。 但是,他们的IDE(Integrated开发环境)极大地帮助了设备的编程。 其可配置的模拟环境和可视化清楚地显示了芯片的所有活动,使调试更容易。


三 分析与比较

   本文主要选取了目前市场上较为典型的网络处理器的体系架构和可编程性方面进行详细介绍,下面是对这几种处理器的分析与比较。

3.1 硬件方面

硬件特性以及硬件之间的集成情况对于最终的网络处理器成品的影响是相当重要的,经过研究,可发现这些处理器在使用的硬件上各有特色,从而最终实现的功能也各有千秋。

l  Agere网络处理解决方案由3个独立的芯片组成:快速模式处理器FPP,路由交换处理器RSP,Agere系统接口ASI,其物理接口、FPP、RSP组成了数据流水线,而ASI仅用于异常处理和全局管理。该方案适于2~ 4层处理,最高支持2.5Gbps速率

l  超微AU1000采用基于MIPS内核的处理器芯片,其MIPS架构20多年前由斯坦福大学开发,是一种简洁、优化、具有高度扩展性的RISC架构,包含大量的寄存器、指令数和字符、可视的管道延时时隙,这些特性使MIPS架构能够提供最高的每平方毫米性能和当今SoC设计中最低的能耗。

l  AppliedMicro Circuits(AMCC)的nP7网络处理器家族基于EPIF-200包处理器构建,在一个芯片上集成6个EPIF-200,支持高达10Gbps的速率,主要处理第2~ 7层协议。

l  BRECIS使用 MSP系列处理器芯片,其主要用于处理来自PBX的语音流量和从网络核心到LAN的数据流量,实现了在总线事务级别固有地支持QoS(Quality of Service,服务质量)的多业务总线架构。其顶级产品MSP5000可同时支持8-24 G711语音通道,4-10 G729语音通道和52Mbps数据速率。

l  Cisco的PXF处理器是思科边界路由器(例如Cisco10000边界服务路由器)使用的内部芯片。PXF主要实现第3层数据面处理功能。

l  EZchip采用专门的、流水方式执行的任务优化处理器(TOP),此外还有一个独立的控制处理器实现控制面操作。产品NP-1用于第2~ 7层的10Gbps速率包处理。

l  IBM的PowerNP设备使用拥有⼗六个协议处理器(protocol processors), 七个专有核处理器(specialized co-processors)和⼀个PowerPC处理核⼼的多功能处理器,适于第2~5层处理,支持2.5Gbps的POS和千兆以太链路。

l  IXP 1200由六个可编程微型引擎和一个200MHz StrongARM组成,用于协调系统活动。一个64位总线的IX总线提供高带宽连接到微型引擎,StrongArm,内存和非芯片设备,主要用于2-4层处理(数据层-网络层-传输层),可以支持2.5M/s的数据包速率。

3.2 可编程性

当前市场上网络处理器产品之间的一个关键区别,就在于是否具备可编程性。大多数网络处理器直到最近还在采用低级语言编程去实现器件的最佳性能,但这在生产率方面要付出很大的代价。据估计,开发人员一般要花费多达80%的时间来调整5%的源代码以使性能达到最佳。

目前可编程能力渐成主流,各大处理器开发者更加关注编程方面技术的发展,以实现对各种网络应用的支持和拥有高度的灵活性,在未来更新路由器功能方面也会产生促进作用。

类别

可编程性

Agere网络处理器

使用一种功能性脚本语言来指定协议处理。

超微Alchemy AU1000

支持C编程,程序员可以利用它的软件开发工具以及各种第三方工具

AMMC(npx7

提供了一个C / C++编译器、汇编器、调试器。

 

BRECIS通讯(MSP 5000)

第三方工具链可用于编程LSI ZSP400和MIPS R4KM。 MSP系列支持VxWorks,Linux和BSD操作系统。

Cisco (PXF/Toaster 2)

有一个C编译器,持思科的内部操作系统IOS

EZchip

具有用于NP-1的软件开发环境,包括汇编器,调试器和仿真器。 计划用于未来设计的高级语言编译器。此外,他们还提供了一个常用的交换和路由应用程序库。

IBM(PowerNP

代码开发套件包括个picocode汇编器, 调试器和系统模拟器

英特尔-IXP1200

IDE(Integrated 开发环境) 其可配置的模拟环境和可视化清楚地显示了芯片的所有活动,使调试更容易。

 

 

四 结论

本文介绍了当今市场上一些典型网络处理器的两个关键问题:体系结构和可编程性,并进行对比得出一些结论。另外还有一些成本和具体架构特性并未深入研究, 文章若有不到之处,望读者海涵!

 

 

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值