首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA的网络处理技术的性能和灵活性分析

基于FPGA的网络处理技术的性能和灵活性分析

 网络处理是指对在通信和网络设备中传送的数据包进行的处理,网络处理不仅出现在网络核心,还出现在MAN/LAN(图1)中。网络处理可通过几类半导体器件实现,因而网络OEM能根据特定需求选择适当的器件组合。那么究竟由谁决定需求呢?这些需求是由通信运营商和互联网业务提供商(ISP)决定的。业务提供商要求网络设备的架构和增值功能不仅能为客户提供不同类型的业务,而且还能增加收入。业务提供商与商业用户签署了数百万美元的业务品质协议(SLA),以确保特定的业务类型和品质。因此业务提供商在开发构成网络设备的半导体器件中,为获得适当的特性和灵活性,需要投入大量资金。
  揭开网络处理的面纱
  网络处理最基本的概念是建立在预定义分类和规则上的网络数据包智能分组处理分析、流程和实现准则。需要注意的是,分类和规则必须可定制,以满足不同业务提供商的需求。本文将重点讨论线路卡。每个线路卡的入口和出口信道上均带有数据通路和控制通路,数据通路负责以线速率处理和传送分组数据而不产生较大的延迟,而控制通路则负责提供处理智能、强化规则、处理意外情况并监控统计数字。
  图2显示了线路卡网络处理的核心功能,其
中虚线包围的3个模块给出了主要的网络处理功能。尽管网络处理限制在线路卡以内,但也足以影响整个系统的架构。例如,某些路由器专用于一组独立的线路卡,以获取专项功能(如安全处理)。根据网络处理所需的设备,系统可以(或不必)需要这些线路卡。

  选择适当的半导体器件
  网络处理可采用多种半导体解决方案,但可广义地归为ASIC和可编程器件两类。那么这两类器件是如何实现网络系统设计的呢?应用于网络处理的ASIC和可编程器件的主要原理与任何其他应用并无区别。从高端角度看,ASIC可为固定功能提供较高性能,但灵活度很有限。虽然ASIC的流片费用(NRE)较高并且产品的上市时间较长,但其高产量还是颇具成本效益。
  另一方面,可编程解决方案可提供较高的系统速率,包括复杂功能(特殊和异常处理)、灵活性和最短的产品上市时间。可编程器件无需流片费用,价格比相应的ASIC略为昂贵。因为可编程解决方案灵活度较高并可升级,因而具有比ASIC更长的产品寿命,由此降低了整体系统的成本。
  尽管上面对ASIC和可编程解决方案进行了区分,但目前还没有能综合两种半导体优势并满足各种需求的完美解决方案。器件的最终选择取决于特定需求,首先考虑应用于网络处理的可编程解决方案。
  1. 可编程解决方案
  可编程解决方案主要有两类:网络处理器(NPU)和FPGA,两者都是可编程的。NPU可提供以处理器为中心(即以软件为中心)的可编程特性,而FPGA则提供以硬件为中心的可编程特性。设计人员很快就能认识到以软件为中心的方法的性能将低于以硬件为中心的方法。理解网络处理和网络处理器之间的差异相当重要:网络处理是一种功能,而网络处理器则是一类可编程器件。
  2. 实现网络处理器
  网络处理器最初被用于设计网络设备中的现成器件,这些器件在各方面提供灵活性和扩展性的同时,还提供了充分的性能。几家大型和小型半导体公司参与了竞争,并推出带有极高灵活性和超短产品上市时间的线速网络处理器。大多数NPU均带有多种编程特性经过优化的嵌入式RISC CPU以及适用于通用分组处理功能的类ASIC硬件电路(图3)。每个RISC引擎经过优化以执行特定任务。该思想有利于在硬件电路中处理常规层2/层3功能,而RISC引擎则处理复杂和特殊情形。当然,所需的任何定制均可委托给RISC引擎。NPU通常采用汇编/微代码,有时也采用定制的C语言实现可编程特性。

  3. FPGA
  FPGA是对数据进行高速并行处理的理想器件,具有极强的灵活性和扩展性。FPGA总是通过增添简单实用的网络设备,解决由NPU引发的问题并紧跟市场。例如, Virtex-II Pro FPGA包含高性能的可编程架构、嵌入式PowerPC处理器和3.125Gbps收发器,从而成为网络处理的理想选择。FPGA是OEM跨接层2/层3不同传输流并实现高速功能(如安全协处理器)的最佳选择。通过增强网络特性,FPGA可提供高性能的数据和控制处理功能。但与NPU不同,FPGA不带有内置的网络处理功能,因而必须通过编程以进行网络处理。对于NPU,OEM必须开发汇编代码(或某种层次的C代码)以实现网络处理功能;而对于FPGA,OEM必须采用硬件描述语言(HDL)、具有知识产权的内核和C语言实现FPGA中的数据通路和控制通路。
返回列表