多核网络处理器及其开发考虑成为关注焦点
如何在多核之间分割代码变成一项极为艰难的决定,无论是使用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进行开发的观点并介绍了相应的开发工具。
评论