新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 多核网络处理器及其开发考虑成为关注焦点

多核网络处理器及其开发考虑成为关注焦点

作者: 时间:2016-09-12 来源:网络 收藏

网络全光化进程的加速以及网络技术的演进扩展了传统数据业务以外的多业务模式,诸如音视频下载、P2P流媒体等业务对网络的业务承载能力提出了新的挑战。随之而来的线速处理和可管理需求已使传统网络设备不堪重荷,因此新型网络设备需要具备快速的业务升级能力和高性能的处理能力以提高网络容量。目前,采用多内核和并行处理结构的网络处理器(Network Processor)在中高端网络设备中的使用已逐渐成为趋势。但与计算和消费市场一样,通信网络市场的多核并行处理的开发也面临着前所未有的挑战,因此如何突破NP多核架构的开发瓶颈已成为业界关注的焦点。

本文引用地址:https://www.eepw.com.cn/article/201609/304754.htm

多业务流催生新型多核网络处理器

NP融合了CPU的灵活性和ASIC的高性能特点。NP拥有很强的硬件并行处理能力,其可通过多内核实现处理器级的并行处理,因此使用多核NP实现并行交换(PPS)能很好地提升网络容量。高性能系统需求可以说是驱动多内核和快速处理技术需求的动力。新型多核NP被应用在控制平面、数据平面以及两者结合的处理。目前主要的多核NP半导体厂商有MIPS架构阵营的Cavium、RMI、博通,以及PowerPC架构阵营飞思卡尔。

很多应用具有宽广的性能范围和能根据内核性能和数量进行缩放的解决方案。这些能力可以使系统厂商很容易实行跨平台保存和重新利用遗留代码并移植到未来的应用,因此增加性能和添加增值功能对网络设备而言十分有必要。多核NP主要通过可缩放的方式卸载TCP性能,而新型多核NP的片上内容处理卸载可以对L4层以上的分组提供处理并能够实现片上压缩/解压。为了帮助内核卸载,多数多核处理器的厂商都集成了特殊的硬件加速器进行那些可用硬件更高效实现的处理。由于新的多核处理器结合了硬件加速技术,多内核与多I/O可以共享同一数据报内的分组的所有部分,来自这些模块的关于位置和数据可追踪与可接入的信息实质上可以用来调试软件。而通过平台利用这些信息优化性能同样变得重要。可视化是驱动多核处理器的管理程序功能支持的另一个趋势。

面对日益增长的P2P业务流,深层包检测(DPI)技术被认为是对付网络多业务所带来的管理/控制挑战的有效方法。模式匹配是实现DPI的基础,而多核 NP能对DPI的模式匹配提供有力的支持。实现DPI的模式匹配主要有TCAM(三态内容可访问存储器)模式匹配以及正则表示模式匹配。其中,TCAM是一种用于硬件加速查找的外接式存储器,广泛用于早期的高端路由器上。但其灵活性较差、功耗大。面对下一代网络的高吞吐量需求LA-1接口已经逐渐不能满足,目前主要TCAM生产厂商正为下一代TCAM制定新接口。正则表示式(regular expression)模式匹配由于具备高性能和高灵活性特点正逐渐成为DPI模式匹配的主流。

由于在DPI下交换协议、病毒定义和频繁的更新需要模式数据库,而为实现DPI性能需求,也对存储器带宽提出了需求。飞思卡尔半导体通过模式匹配引擎(PME)提供快速编译和提升了模式更新,因为可以使用廉价的DDR2存储模式使PME的吞吐量无需依赖于外部存储器。PME使用NFA(非确定性无限自动机)解决DPI中的模式剖析问题。另外,在分组的状态检测过程中也可以使用状态规则引擎(stateful rule engine)卸载更多的CPU带宽。多核处理器不但需要低延时存储器访问以进行高性能的L2和L3路由判决,而且需要具有高性能正则表示式的查找加速以允许分组能够被安全应用搜查到,也同样需要安全加速以处理分组的压缩/解压。所有这些加速器和多个内核共享数据和状态使得高带宽互连变得尤其重要。而这个互连必须是完全缓存一致性的。据飞思卡尔半导体网络和多媒体应用处理器部门的Jeffrey Ho介绍,飞思卡尔即将推出的多核平台将会支持三级缓存体系以满足那些同时需要共享前端缓存和本地后端缓存的应用。另外,由于用于L4层及以上的应用的模式匹配卸载需要灵活性和易于编程,在那些快速的业务更新里就无需外接昂贵的TCAM和RLDRAM了,PME引擎能围绕匹配的状态操作也无需进行软件的交互。

总的来看,新型多核NP相对于传统的微引擎/微码NP有很多优势。首先具有更好的编程性,例如能使用Linux、VxWorks或者BSD这些基于C /C++语言的标准嵌入式操作系统,以及多种标准开发环境;并能够将控制、管理和数据平面软件集成到单芯片里面。但高应用吞吐量才是高端NP首要关注的,低端NP提高集成度是为了达到降低成本的目的。而在应用中是否采用NP和ASIC/FPGA结合的方式则要视乎具体情况而定。目前,有厂商把控制和数据平面集成到单颗NP里面,但高端应用仍将它们进行分离处理。因为这更多的是取决于遗留代码、软件及具体方法而不是由NP的功能集成的支持度所决定的,所以在未来的高端设备设计当中NP和ASIC/FPGA将长期共存,这样才能够进行诸如背板事务的处理以及能为产品提供区别于竞争对手产品的附加值。

图1:飞思卡尔即将推出的多核通信平台将支持三级缓存。

图1:飞思卡尔即将推出的多核通信平台将支持三级缓存。

多核NP在高层应用中面临挑战

传统NP不支持标准操作系统和C/C++代码。新型多核NP已经发展成为可以支持标准编程设计模块、C/C++和Linux、VxWorks和BSD等操作系统的NP。多核架构因为可以通过不同的处理单元并行处理任务,因此可以为整个系统带来好处。根据阿姆达尔定律,多核软件性能将很大程度上依赖于顺序执行的代码数量。嵌入式系统复用了旧系统大量的遗留代码,而其中大部分的代码库是为单核处理而编写的。通常这些已写好的软件是单线程的,必须依赖代码的顺序执行。因此需要把代码分割成很多小片,同时减少顺序执行代码的数量。在利用多核NP进行设计的时候,开发人员必须时刻提醒自己是在使用多核与硬件加速。

单处理核心的负载平衡可以由OS很容易的完成。但是对于多核来说,要视乎是不对称多重处理(AMP)还是对称多重处理(SMP)操作系统。AMP OS的负载平衡是静止的并依赖于程序员来分割代码。因此当工作量不一致时问题就出现了,而静态平衡则意味着他们需要对代码进行重分割以适应不同的环境。其他的问题还包括并行处理时内核间的优化、处理器的共享数据的优化、在多核环境下寻找重部署代码库的方法以及用软件包集成通用产品和性能。


上一页 1 2 下一页

关键词:

评论


相关推荐

技术专区

关闭