新闻中心

EEPW首页>手机与无线通信>设计应用> 基于多核处理器设计网络接口卡

基于多核处理器设计网络接口卡

作者: 时间:2017-06-12 来源:网络 收藏

在IP网络一统天下的时代,各种网络设备都需要以太网接口来实现与其他设备的互联互通,比如传统的TDM设备就通过伪线技术实现了以太网封装,具备了与IP网络对话的能力。对于服务器来讲,通常也需要配备卡(NIC)来实现与其他网络的数据对接与传送。卡可以帮助系统捕获报文,对网络性能进行监测并检测服务质量,实现必要的OAM功能;在保障安全的IPSec功能基础上,卡还可以通过对接收流量进行深度的报文检测,识别不同应用与业务,对不同业务类型进行分门别类的处理。

本文引用地址://m.amcfsurvey.com/article/201706/352984.htm

随着多核技术的发展,越来越多的网络接口卡开始采用多核处理器方案,通过分配不同的业务处理到不同的核,多核架构可以灵活应对各种复杂的业务需求。不过,随着网络带宽的不断提升,纯多核架构也面临一些问题。以网络接口卡基本的安全功能为例,通常在第一层保护中需要ACL、防火墙/NAT/PAT、ALG、L2TP和IPSec VPN等;第二级保护中需要对接收数据深度检测,进而识别应用、ToE、IPSec;第三级保护中需要MAC/URL过滤,端口 /MAC认证等。如果将这些处理完全交给,不仅CPU的业务负荷过大,影响到单板功耗和系统软件设计,而且随着带宽需求的不断增加,CPU核会面临处理瓶颈的问题。


LSI公司推出的Axxia系列多核通信处理器,采用异构多核的方式,创新性的将多核与快速处理引擎通过专利技术虚拟管道(Virtual Pipeline)技术相连,解决了纯CPU多核以及同构多核在处理复杂业务时性能下降的问题,在保证业务线性处理的情况下仍然保留CPU核资源用于控制、管理、业务后处理等工作。


Axxia通信处理器


LSI公司第六代通信处理器的核心是高性能的多核处理器和一系列基于硬件的业务加速引擎,通过灵活的Axxia平台架构,处理器核可以有多种选择,如ARM、PowerPC或者MIPS。本文将对以PowerPC为主的Axxia通信处理器进行介绍,处理器的基本框图如图1所示。


图1:基于PowerPC的AXXIA通信处理器内部框图。


图1中PPC476核由IBM和LSI联合研发,兼容Power ISA Version 2.05,最高主频可以达到2GHz;用来提供快速处理通路的各加速引擎得益于LSI公司多年来的研发积累,技术成熟可靠,多代产品经过市场考验,这些引擎主要包括:报文处理、安全引擎、正则处理引擎、流量管理/调度器(六级调度)。


Axxia设计采用异构多核的架构,创新性的采用虚拟管道技术来实现各加速引擎,CPU核以及各子系统间的通信,这个全新的消息传递机制保障Axxia无论报文长短,系统负荷以及协议类型都可以提供确定性的处理性能,避免同构多核在核数目与系统性能提升间不成比例的问题。在虚拟化日益普及的情况下,低延时和可确定的处理性能已经成为网络设备的首选条件。


Axxia处理器提供一系列高速接口,包括8路基于SerDes的SGMII,2路基于XAUI的10GbE,3路PCIe接口,支持x1/x2/x4,同时它还支持IEEE1588v2协议。

网络接口卡的硬件设计


Axxia兼备灵活的数据处理和强大的主控CPU,单芯片方案提供丰富的高速接口和低速调试接口,由此非常适合应用于嵌入式的单板设计。图2为基于Axxia芯片的网络接口卡方案框图。Axxia芯片的快速处理引擎可以用来实现数据层面的加速,PowerPC核可以用来实现附加功能以及主控层面的处理。


图2:基于AXXIA芯片的网络接口卡方案框图。


单板设计采用Axxia系列中中端的ACP3423,配置了2G DDR3 SDRAM,背板侧PCIe x4 Gen2用做管理,6个SGMII和XAUI用做数据交换;网络侧为10GE SFP+;支持IEEE1588和同步以太网。


Axxia通信处理器为支持SGMII、XAUI、sRIO和PCIe等高速接口,芯片内部包含有多条SerDes PHY接口,这些协议可配置接口根据不同的发送和接收数据对被分成两大组:SGMII/XAUI和sRIO/PCIe。对单板的硬件设计来讲,这些高速接口的信号完整性非常重要,在设计过程中要保证PCB板、背板、线缆等有干净的供电,良好的接地,在布线过程中要对走线做阻抗匹配。LSI公司提供了详细的硬件设计文档和SerDes设计文档。


软件开发


如前文所述,Axxia确定性的性能来自于优良的硬件架构,同时,作为整个接口卡方案的“灵魂”,LSI公司还为Axxia系列处理器的软件开发提供基于各种操作系统的软件包,包括Axxia运行开发环境RTE,Axxia软件环境ASE等。对于网络接口卡开发还提供完整的Linux BSP实现以及Axxia应用开发套件(ADK)。ADK由一系列针对特定协议的数据层和控制层软件模块组成,有了这些模块软件开发者无需关注底层细节,可以很灵活方便的直接用高级语言如C进行应用程序开发。软件基本框架如图3所示。


图3:Axxia软件开发框架。

应用案例


1.ARP(地址解析协议)处理加速


以太网中的数据帧从一个主机到达网内的另一台主机不是根据32位的IP地址而是根据48位的以太网地址即硬件地址来确定接口。内核如驱动必须知道目的端的硬件地址才能发送数据。由RFC826我们知道,ARP地址解析协议就用于将计算机的网络地址即IP地址转化为物理地址即MAC地址。由于传统的物理网络接入的是物理服务器,并且整个网络只能为一个用户使用,普通CPU就可以处理报文的ARP请求,但随着服务器的虚拟化,以及云计算多租户的出现,网络对ARP处理的性能需求也大幅提升。采用纯CPU方案不仅大量耗费CPU资源,而且无法提供可确定的性能,无法防范可能的网络攻击。采用ACP3423的网络接口卡方案就可以很好的解决这个问题。


ACP3423处理ARP报文主要用到图1中的网络输入输出EIOA模块和流分类MPP模块,无需内部PowerPC核的参与,也就是说ARP流程完全卸载到快速通路来处理。EIOA模块主要用来从网络收发报文并执行以太CRC校验;MPP模块主要用来根据以太网类型字段过滤ARP报文,ARP报文操作验证诸如请求或者回复,MAC_DA flooding校验,对给定AR_IP寻找对应AC_MAC,生成ARP响应报文等。ARP处理流程图如图4所示。


图4:ARP地址解析协议处理流程图。


以具有100K条目的ARP表项为例,Axxia可以处理超过1250万ARP报文/秒,即使在过载状态,Axxia也可以保证确定性的性能,有效防范各种攻击。


2. DPI(深度报文检测)


在多租户应用环境中,不同等级客户会有不同的服务等级,此时传统的五元组检查无法提供精细的控制,这就需要有DPI技术来对报文进行深入到7层的检测。通过Axxia的流分类引擎MPP,深度报文检测DPI引擎以及内置的多核芯片,网络接口卡可探测识别的应用种类超过5500种。


处理流程既可以通过Axxia的MPP引擎检测固定特性应用,也可以利用DPI引擎和CPU核对报文进行深度排查。基于固定特性表的应用识别主要通过目的端口号和协议来识别应用,MPP引擎具有表查找功能;基于特征的应用识别通过DPI引擎来检查特征时,在需要CPU干预或做后处理时,Axxia可以将报文送至内部CPU核做进一步判别处理,也可以送至任意外部主处理器做进一步操作。


本文小结


的网络产品应用中,既要保证交换速度足够快,满足某些金融用户做高频交易服务的需求,另一方面要把容量做得更大,更具扩展性,满足像谷歌、Facebook这样的互联网用户的服务。LSI公司的异构多核通信处理器Axxia通过灵活的架构将硬件加速引擎与CPU相结合,很好解决了通用多核CPU处理效率与核数目增长非线性的关系。Axxia完全卸载业务到快速通路的业务流程保证了系统具有确定性的性能,同时可减低系统的成本和功耗。基于Axxia处理器的网络接口卡很好的满足了虚拟化环境下对网络设备提出的新需求。



评论


相关推荐

技术专区

关闭