Navigator Runtime帮助您最大限度提高多内核效率

Navigator Runtime帮助您最大限度提高多内核效率,第1张

 

  引言

  多内核处理器给编程人员带来了新的挑战。在多内核项目中,半数以上的成本来自软件开发。多内核编程的具体挑战是非对称多内核处理器 (AMP),因为其中相同的器件中驻留着 RISCDSP 内核等不同类型的处理单元。这主要是因为 *** 作系统 (OS) 对资源管理与负载均衡的支持非常薄弱甚至根本没有,导致可扩展性差与资源利用率低。德州仪器 (TI) 创新型 KeyStone II 多内核架构提供专用硬件帮助实现调度与负载均衡功能,可简化多内核可编程性。KeyStone II通过这些措施实现了多内核编程的性能突破。

  AMP 编程挑战

  随着多内核技术的演进,越来越多的 SoC 提供对称多内核架构实现低成本以及更高的性能。典型的 AMP 具有运行在不同 *** 作系统上的异构内核、硬件加速以及非所有内核共享的分布式存储器。在对称多内核处理器 (SMP) 应用中,内核完全相同并运行支持相同共享存储器架构的相同 *** 作系统,因此使用 *** 作系统带来的内核间通信、调度以及负载均衡功能相对而言更为直接。AMP 器件的编程需要更高的并行编程技能,才能通过控制和协调不同的内核及 *** 作系统实现可满足单内核或 SMP 编程需求的高稳定性及高性能。

  传统非对称多内核处理要求在编译时对多内核资源进行静态分区。这样做难度往往较大,因为运行时的软件加载不能提前判别,尤其是 4G LTE、LTE Advanced 以及云计算等尖端技术。一般解决办法是预留额外的空间,以确保系统在最恶劣应用条件下也能正确运行。资源过度分配的不利影响是资源利用不足,最终会导致产品成本上升。另一方面,首次使用时或者引入新功能、需要现场强化或需求改更时,手动重新分区及软件优化会带来大量的软件工作。

  同步性及处理器间通信 (IPC) 的效率在多内核编程过程中至关重要。缺乏对各种同步性与 IPC 机制的适当硬件支持,会因过多的软件开销而导致多内核利用低下,降低系统性能。

  这对 AMP 多内核系统而言尤为如此,因为难以实现软件可扩展性与灵活性。

  多内核导航器助力实现创新

  多内核导航器为 CorePac、AcceleraTIonPac 以及 I/O 提供统一接口,可将硬件队列用于图 1 所示的不同系统端点。这可为所有 IP 块提供支持通用通信方式的 AMP 系统。多内核导航器可充分利用内建在队列管理器中的 uRISC 内核来管理流量路由、IPC、资源管理、调度以及负载均衡,从而可优化和加速数据流。各种任务可由队列管理器按需派送和分配给负载最轻的内核或 IP 子系统。

Navigator Runtime帮助您最大限度提高多内核效率,第2张

  图 1:多内核导航器子系统

  多内核导航器可提供高效率内核间通信机制。硬件队列与数据包 DMA 是 IPC 的基本构建块。某些队列经过精心设计,可对 IPC 内核产生中断。多内核导航器内部的 uRISC 内核使用可编程中断通知功能实现自动队列监控与管理。多内核导航器可充分限制软件开销,降低同步时延,并可提高 IPC 吞吐量。此外,它还支持无锁编程模型。图 2 是使用多内核导航器的 IPC 示意图。

Navigator Runtime帮助您最大限度提高多内核效率,第3张

  图 2:使用多内核导航器实现处理器间的通信

  虽然采用 TI KeyStone II 硅芯片架构已经解决了多内核挑战,但只有应用软件开发人员充分发挥多内核性能,才能真正实现这种硬件架构的各种优势。在软件方面,TI 正在投资标准编程方法,让支持多内核导航器的 KeyStone II 的各项优势充分体现在应用中。行业中及学术界已经涌现出大量有望成为标准的多内核编程趋势。所有这些方法的共同之处在于应用软件开发人员先通过语言表达,采用特定手段描述其应用的并行性,然后再映射至底层运行时。该运行时可掌控将过程映射至底层硬件架构。

  Navigator Runtime 是一个可扩展薄软件层,可帮助多内核导航器实现更高水平的并行编程性能,提高可扩展性、移植性及效率。对 AMP 编程挑战而言,多内核导航器和 Navigator Runtime 的完美结合是一款功能强大的独特解决方案。

  Navigator Runtime 的主要功能是将工作任务分配给多个内核。先将工作任务放入待执行的虚拟队列,然后由嵌入在多内核导航器硬件中的 uRISC 内核执行中央调度。调度器根据优先级、原子性以及本地性选择工作任务,然后分配给软件分配器。软件分配器是驻留在每一个内核中的 Navigator Runtime 的必备部件。分配器随即将每项工作任务发送至处理元件执行,处理元件可能是内核、AccelerationPac 或 I/O 端点中的线程。

  充分发挥多内核导航器的作用,工作任务制定者及使用者的抽象可由 Navigator Runtime 完成。将嵌入式 uRISC 内核用于集中调度工作(无需消耗主 DSP 或 ARM® 内核的 MIPS),可实现低开销、低时延以及每个内核 25 万个任务的高吞吐量,实现无与伦比的并行编程性能。
图 3 主要展示 Navigator Runtime 概念及其与多内核导航器的互动。

Navigator Runtime帮助您最大限度提高多内核效率,第4张

  

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2714094.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存