网络全光化进程的加速以及网络技术的演进扩展了传统数据业务以外的多业务模式,诸如音视频下载、P2P流媒体等业务对网络的业务承载能力提出了新的挑战。随之而来的线速处理和可管理需求已使传统网络设备不堪重荷,因此新型网络设备需要具备快速的业务升级能力和高性能的处理能力以提高网络容量。目前,采用多内核和并行处理结构的网络处理器(Network Processor)在中高端网络设备中的使用已逐渐成为趋势。但与计算和消费市场一样,通信网络市场的多核并行处理的开发也面临着前所未有的挑战,因此如何突破NP多核架构的开发瓶颈已成为业界关注的焦点。
多业务流催生新型多核网络处理器
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:飞思卡尔即将推出的多核通信平台将支持三级缓存多核NP在高层应用中面临挑战
传统NP不支持标准操作系统和C/C++代码。新型多核NP已经发展成为可以支持标准编程设计模块、C/C++和Linux、VxWorks和BSD等操作系统的NP。多核架构因为可以通过不同的处理单元并行处理任务,因此可以为整个系统带来好处。根据阿姆达尔定律,多核软件性能将很大程度上依赖于顺序执行的代码数量。嵌入式系统复用了旧系统大量的遗留代码,而其中大部分的代码库是为单核处理而编写的。通常这些已写好的软件是单线程的,必须依赖代码的顺序执行。因此需要把代码分割成很多小片,同时减少顺序执行代码的数量。在利用多核NP进行设计的时候,开发人员必须时刻提醒自己是在使用多核与硬件加速。
单处理核心的负载平衡可以由OS很容易的完成。但是对于多核来说,要视乎是不对称多重处理(AMP)还是对称多重处理(SMP)操作系统。AMP OS的负载平衡是静止的并依赖于程序员来分割代码。因此当工作量不一致时问题就出现了,而静态平衡则意味着他们需要对代码进行重分割以适应不同的环境。其他的问题还包括并行处理时内核间的优化、处理器的共享数据的优化、在多核环境下寻找重部署代码库的方法以及用软件包集成通用产品和性能。
如何在多核之间分割代码变成一项极为艰难的决定,无论是使用SMP、AMP还是两者的结合形式。很多的单核应用必须将数据平面和/或控制平面功能从单核处理器分离到多核方案里。而了解分布软件的选择则变得重要。
一些工程师觉得多核NP在做交换时效果很好,但其在更高层应用的效果并不理想。对此,飞思卡尔的Jeffrey Ho认为当多核处理器超过4个内核的时候,互连性能的瓶颈必须得到优化,这样才允许架构可以扩展到8内核甚至是16内核以上;同时,Jeffrey Ho指出多核NP现在的确是出现了编程问题的瓶颈,传统NP和嵌入多核产品由于缺少编程能力以及基础工具和驱动,因此源代码库对于L1和L2功能非常高效,但对于多核NP的高层应用则无法得到优化。此外,AMCC集成通信产品业务部副总裁兼总经理Daryn Lau则认为4个内核以上的NP是无法达到平衡的,而使用双核NP则可分别对数据平面和控制平面进行高效的管理,因此双核NP有望成为未来的主流。
为多核NP选择合适的开发平台和工具
具体说到嵌入式操作系统对于多核NP软件的开发,常常是把Linux与风河的VxWorks相提并论。这两种操作系统各有其适应性,在不同的情况下都会发挥各自的优势。Linux的优势之一是这种操作系统不仅在设备软件领域得到应用,而且在许多服务器环境中得到大量应用,而网络设备常常需要与高层管理软件配合使用,因此在某些情况下,如果网络设备本身和其上层的管理软件都是由Linux编写的,在集成性方面有可能会有一些便利性。
Linux的应用范围将会很广,但设备嵌入式软件开发与PC或服务器软件开发最大的不同之处之一就是与硬件的相关性,PC或者服务器基本上是在一个标准的硬件环境中运行,而设备软件的运行环境有很大的差异,所以应该从产品研发和适用的环境去分析和判断一个产品应该采用Linux还是VxWorks来作为开发和运行平台。选择了Linux的开发人员应该非常注意:到底要用多长的时间、人力和资源来维护和集成Linux平台和工具,又可以用多长的时间、人力和资源来开发属于自己的产品?因为Linux是开发源代码的,可以自行从源代码社区获得所有的操作系统、开发工具和中间件,然后自己再把这些不同的部分集成起来,但这些工作一定会消耗大量的人力、时间和其他资源。从目前的状况来看,大多数公司为了集中开发自身产品的独特功能,目前还是选择从开发工具提供商那里直接获得集成、测试、验证好的集成化Linux开发平台套件。
风河中国区总经理韩青指出,在多核处理器开发中选择什么样的OS虽然重要,但是选择什么样的开发与调试工具更重要。多核开发人员总是都期望有一种工具,能够把已经为单核处理器开发的软件直接转换成可以在多核环境中运行的软件。虽然有些厂商也宣称,只要把用户原有的单核处理软件直接运行在自己的多核处理器上就可以大幅度提升性能,但到目前为止,甚至在今后一段时期内,这种期望都是不现实的。从目前的技术手段来看,要充分利用多核处理技术带来的好处,例如获得更高的处理性能、更有效的电源利用率,或者缩小装置的体积,最有效的方法仍然是“调试”,也就是通过不断的试验来“发现”和“优化”自己的算法。因此,拥有高效率的调试工具,是目前充分利用多核处理技术的最佳捷径。
风河的Workbench是目前唯一能够同时支持VxWorks、Linux和其他专用操作系统的跨平台IDE,其可同时支持多任务、多线程、多进程、多CPU、多板调试等。而风河的JTAG解决方案使开发人员能够同时停止或者启动任何内核,在一个或者多个内核上设置断点(包括条件断点)。开发人员可以在诸如硬件Bring-Up、内核、中间件和其他应用功能调试的时候采用JTAG连接。另外,Workbench Eclipse还支持基于代理的调试方式帮助开发人员在适当的时机平滑地转移到基于代理的调试,而这些调试工作都是围绕着同一个应用进行的。
本文小结
数据、语音和视频以及多功能的融合将驱动基础设施市场,高网络带宽和更高业务质量需求最终也将推动网络处理器的发展及其市场,但基于多核NP的开发面临挑战。本文介绍了网络处理器是如何帮助满足网络业务的爆炸性需求,另外还阐述了有助于采用多核NP进行开发的观点并介绍了相应的开发工具。
5/7/2008
|