全球对计算功率和性能日益增长的需求已经将嵌入式计算推向多核系统发展路径。该迁移带来一系列复杂的问题:我该如何迁移传统软件,使其与多核硬件一起使用?我是否需要通过虚拟化实现更高性能?我如何能够在一个对我来说可以承担的功率范围中获得所需的性能?通过结合高性能硬件;强大的、用户友好型软件和工具;以及广泛的开放式生态系统,飞思卡尔可以帮助您解决这些问题和更多其他问题。
虽然向多核的迁移开始于网络和无线基础设施等高端应用,多核也开始用于过去应用较少的领域,例如汽车、工业控制应用的安全关键领域、以及打印机和影像应用—可以使用更高速度和功率的任意应用。向全球网络连接性的迁移给网络带来巨大压力,并增加了对更高处理功率的需求。如果没有呈几何级增长的功率,单线程性能无法继续提高,这种方法会影响系统成本和可靠性。为了将功率保持在可以管理的等级,应用必须迁移至多核,而不是不断增加频率。
实现多核性能等级不像向系统中添加更多内核那样简单。当从单核迁移至多核硬件时,出现许多与传统软件的迁移有关的复杂问题。总体来看,在这种迁移和多线程编程领域软件工程师缺乏培训。虚拟化对于最大限度发挥多核硬件投资的价值至关重要,是一种截然不同的思考操作系统和资源分区的方式。当您在解决方案中添加更多处理功率时,多核系统当然无法避免发生问题:功耗。
飞思卡尔是世界领先的嵌入式处理技术提供商,至今已向世界各地发送了3亿多个通信处理器。我们的多核QorIQ通信处理器、面向片上基站无线系统的QorIQ Qonverge平台和VortiQa软件解决方案——在全球有众多经验丰富的现场支持工程师和强大、开放的合作伙伴生态系统—将我们的嵌入式处理技术带入新网络纪元。
软件问题
向多核迁移路径中两个巨大的障碍都涉及软件。 第一个问题是其中的一项迁移。 用于单处理器顺序执行程序的数百万行传统代码必须迁移以便保护投资。 在映射和迁移变得更加简单和更加高效之前,从单核迁移至多核系统在某种程度上将非常困难。 第二个问题是缺乏关于多核系统编程的基本知识。 从硬件来看,安装多个内核非常简单,但是与以前的单核编程相比,多核编程需要不同的思路和不同的培训。
飞思卡尔在培训和工具上进行了大量投资,使向多核迁移变得更加简单。QorIQ多核软件开发套件(SDK)和CodeWarrior开发工具等开发工具有助于移植流程。飞思卡尔和我们的合作伙伴还提供用于仿真和建模分析的工具,包括处理器分区的“假设”分析。 开发人员的培训始终是需要关注的重点。提供了在多核处理器上重新映射序列应用的流程的真实案例,飞思卡尔还根据这些研究为开发人员开发了应用说明、演示文档和文章。
飞思卡尔预计约有60%至70%的多核研发预算都用在软件而不是硬件上。飞思卡尔始终关注这一点,使多核产品对软件的适应性非常强。 飞思卡尔在QorIQ平台架构中设计了许多功能,提高了软件工程师在迁移旧代码和编写新代码方面的工作效率。之前已经提到,软件研发时间占到60%至70%,根据预计有超过50%的时间用在调试软件和优化性能。飞思卡尔的产品帮助缩短这一时间,并使软件工程师更加高效。
例如,飞思卡尔的用户空间数据路径加速架构(USDPAA)软件比传统的通过内核访问驱动器的方式在性能上有很大的提高。该软件包含通过多个CPU内核支持简化共享网络接口和加速器的硬件组件。队列管理器和缓冲器管理器组件提供了基础架构,用于与内核、硬件加速器和接口之间往复传递数据包。软件通过称为门户的硬件组件访问数据路径加速架构。USDPAA是一款使Linux用户空间应用能够通过高性能的方式直接访问门户的软件框架。USDPAA帮助传统Pthread/用户空间应用的开发和移植变得非常简单。
虚拟化和可视性
多核开发与单核开发不同的另一个方面是如何集成软件和硬件。第一代多核处理器具有相同内核的多个实例。从另一方面来说,飞思卡尔QorIQ Qonverge平台在一个芯片上混合了处理元件:Power Architecture内核、StarCore DSP和多个加速引擎。未来的产品将在一个芯片上提供更多内核,并且在一个芯片上混合不同的内核类型。最大的区别是所有内核都将被虚拟化。在一个虚拟化的系统中,应用的每个任务都需要映射至相应的处理模块。目前,该流程需要很多人力来完成。必须提供以更紧密的方式集成的分区工具、映射工具和分解工具,使软件工程师能够快速可视化分区,根据性能、功率、存储器等执行“假如”分析,然后选择目标实施并执行。
下一个步骤是调试应用。该步骤的关键是能够观察这些复杂芯片的所有等级。大多数芯片在处理器内核等级都将具有可视性,但是您最终需要完整的内部可视性,包括I/O、存储器控制器和加速引擎。当您具有可视性以后,您还需要可控制性。
您是否能够以非常精细的方式控制这些具有许多内核和不同内核类型的高度复杂的芯片? 您是否能够控制数据的移动方式?为了找到答案,您可以针对数据如何移动执行快速的“假如”分析。这使您可以获得系统可视性。然后,您拥有了一个“旋钮”,您可以从来自“假如”分析的目标方案中获得更高性能。这涉及软件和硬件。 芯片中如果没有正确的调试hook,它将不具有可视性。如果调试hook存在,但是API未将其暴露给工具和调试器,将没有可视性。如果没有芯片hook也将没有可控制性,并且hook应与工具套件集成。
飞思卡尔QorIQ多核SDK和CodeWarrior开发工具嵌入了广泛的可视性,可接入至我们的处理器中,因此开发人员可以完全利用内核和资源,并调试复杂的片上交互。
飞思卡尔的嵌入式管理程序对于虚拟化非常重要,它是嵌入式通信处理领域第一款具有最高性能的处理器。管理程序是系统级软件,允许多个操作系统访问常用外设和存储器资源,并且在多个内核之间提供通信机制。 在一个多核系统中,任务不应以物理的方式映射至处理资源。
如果资源进行虚拟化,那么任何任务都可以访问任何虚拟资源,以便使工作完成。这使计算资源能够灵活、有弹性并且不会硬性绑定至任何任务。例如,作为嵌入式应用中的虚拟化选择,在基于飞思卡尔Power Architecture的多核SoC中支持基于Linux内核的虚拟机(KVM)。这是一个非常复杂的领域,飞思卡尔投入了巨大的资金,以便为客户提供多核系统最重要的优势之一:灵活的资源使用。
面向多核设计的硬件
由于系统有了更多的多核处理器和处理能力,因此需要将不同应用上的硬件充分利用起来,这些应用在整个系统解决方案内可能并行运行,执行不同的任务。在多核系统中,许多不同的应用都需要访问外设和SoC。例如,您可以在SoC接入多个内核,但是无法始终在系统中增加相应的I/O,因为受到芯片中引脚数量的限制。为了将八个内核集成至SoC,并且能够使两个以太网端口对于不同内核以多个以太网端口的形式出现,您必须添加针对不同应用隔离SoC的不同部分的虚拟化技术。软件芯片在该单一SoC上运行,同时感知底层硬件具有为其提供的数量显著较大的资源。
飞思卡尔的优势之一在于我们如何在SoC中采用该虚拟化并提高性能。当飞思卡尔开始开发多核SoC时,我们需要基于不同的应用类型以许多不同的方式为其提供安全、可靠的分区方式。基于现有SoC基础设施开发多核SoC的一个常见方式是使用共享总线。但是,该方法限制带宽和延迟。飞思卡尔从一开始就解决了这些架构挑战。 利用具有规模合适的互联,因为SoC本身是一个小型网络,各个SoC组件之间不会争用资源。从一开始起,针对在我们客户的系统中指配多核器件的最佳方式,飞思卡尔已经制定了多个架构和应用级决策。
节省能源
在关注多核能源管理方面,飞思卡尔具有多年的历史。符合美国的EnergyStar、日本的Top Runner和EU Code of Conduct等协议使我们的客户能够随时间推移节省能源。我们的PowerQUICC 8315、8536处理器和QorIQ P1022处理器具有数据包无损以太网等功能,可以使设备进入深度睡眠模式。该模式关闭内核和缓存,并从SoC中去掉电源。SoC的各个部分是有效的,并且能够处理一些关键事件,可以在合适的时间、合适的条件下唤醒设备。当有效负载被处理后,它将进入深度睡眠模式。QorIQ P1022处理器用于打印机等EnergyStar设备,并满足多种能源要求,例如在深层睡眠模式中只有200–300毫瓦的损耗。
飞思卡尔另一个领先的节电技术称为级联电源管理。在非峰值活动期间,该技术将任务转向较少数量的内核,以便空闲内核可以进入最小功率或“昏睡”状态。当数据包流量再次增加时,该技术允许返回至全负载条件。级联电源管理不像节电技术那样简单,它也是一个以更高效的方式分发数据包处理的工作负载管理技术。
成功的多核合作伙伴
知识非常丰富的全球现场工作人员是多核迁移成功的关键组件。在多核处理器出现之前,飞思卡尔也帮助我们的客户通过高性能嵌入式处理器将产品推向全球市场,飞思卡尔在嵌入式处理领域拥有世界最大的现场工程师团队之一。多核应用的软件非常复杂。经验丰富的合作伙伴可以帮助您设计、调试和优化。
通过我们的Freescale Connect Partner计划,飞思卡尔继续与嵌入式行业中的领先软件和工具公司密切合作,以帮助确保全面的解决方案能充分利用QorIQ架构的优势。飞思卡尔拥有一个开放、广泛的生态系统,以便简化向多核架构的迁移。我们的首选合作伙伴包括Enea、Green Hills、Mentor Graphics和QNX,提供在QorIQ平台上实现最高性能的优化集成解决方案。广泛的合作伙伴组合包括6Wind、Critical Blue和Wind River,帮助加快向多核的迁移,并缩短上市时间。
行业正在遇到一个转折点,那就是通过添加更多内核来解决性能问题将不再能够提供所需的性能改进。市场正在从简单直接的方法向更加精密的功率管理和软件技术转变。
多核的下一步发展趋势是什么?
多核市场的未来将由对于速度更快的硬件的需求推动,以便处理更多工作负载,并解决现有网络存在的成本压力问题。服务提供商和OEM必须通过具有更高性能的系统做出响应,以便保持网络中的流量质量。在I/O性能方面将出现逐步增加,通过这种方式可以确定处理I/O类型和为处理不断增加的工作负载可以在SoC中使用的内核和存储器缓存数量。
虽然硬件是市场的引擎,软件将决定其过程。通常,开发工具落后于技术变革。但是,在多核领域,进程应该以其他方式出现。市场将见证厂商投入更多努力帮助开发人员创建并优化多核应用。软件将提高总体系统性能,因此有许多工具可以为优化应用提供支持。通过这些系统将可以交付更多的多核软件内容—不仅是设备的支持驱动,还包括更多的中间件和虚拟化软件,以及利用它们的其他参考应用。将提供更多面向多核的优化操作系统,以帮助对这些设备进行排程。
总结
多核解决方案可以使互联社区获得更好的生活质量。无论是用于全球网络、移动无线基础设施、智能电网、自动化工厂、智能医院、航空航天和国防,我们的高级多核硬件、支持软件和飞思卡尔全球技术团队都可以帮助简化您向多核的迁移。