当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]Navigator Runtime 帮助您最大限度提高多内核效率

引言

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

AMP 编程挑战

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

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

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

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

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

多内核导航器是一种基于数据包的创新基础设施,支持数据传输与多内核控制。TI 异构 KeyStone 架构完美整合了 DSP Core-Pac、ARM® CorePac、硬件 AccelerationPac 以及 I/O 外设。它们不但可通过 TeraNet 进行物理互连,而且可通过多内核导航器进行逻辑互连。在 TI KeyStone II 架构中,多内核
 

导航器不但包含可容纳 1.6 万个硬件队列的队列管理器,通常存放指向各种数据包(由描述符及数据有效负载组成)的指针,而且还包含 8 个 3,200 MIPS uRISC、用于传输数据的数据包 DMA 以及支持 100 万个描述符的硬件数据结构。此外,还可在 AccelerationPac 与 I/O 子系统中构建数据包 DMA,这样多内核导航器无需内核干预,便可将数据从任何单元传输至任何端点。

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

图 1:多内核导航器子系统[!--empirenews.page--]

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

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

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

虽然采用 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 万个任务的高吞吐量,实现无与伦比的并行编程性能。[!--empirenews.page--]

 图 3 主要展示 Navigator Runtime 概念及其与多内核导航器的互动。

图 3:Navigator Runtime 与多内核导航器的互动

多内核性能可使用加速性进行测量,加速性的定义是用单内核串行执行时间除以多内核执行时间。在理想条件下,8 内核系统的加速性等于 8。但在实际中,由于多内核总线判优、存储器访问时延、高速缓存一致性管理、同步以及 IPC 等多内核开销的影响,典型加速性与理想条件相距甚远。Navigator Runtime 消耗的开销极少,以尽量接近理想加速性,实现多内核性能的最大化。

以 LTE 上行链路物理层处理为例,串行代码可细分为 1,024 个工作任务用于实现天线数据处理、通道估算以及均衡等。平均每个工作任务有 4K 输入数据及 2K 输出数据驻留在共享存储器中。Navigator Runtime 将用于调度这些工作任务并分配给 8 个不同的内核,故加速性的计算如下:

8 内核加速性 = 采用本地 L2 存储器中的数据单内核串行执行代码的时间 ÷ 采用共享 DDR3 存储器中的数据 8 内核并行执行的时间

在并行 8 内核执行示例中,在处理前可分配多个导航器数据包 DMA 通道将 DDR3 中的数据预加载到本地 L2 存储器中,并在处理后将数据从 L2 返回至 DDR3,就像为降低存储器访问时延的 CPU 高速缓存运行一样。结果所测得的 KeyStone 器件的加速性为:在 3.2 万个周期的工作任务中,从 8 内核 KeyStone 器件中测得的基准数据可实现 7.8 的加速性,而在 1.6 万个周期的工作任务中,其则可实现 7.7 的加速性,非常接近理想的 8 加速性。与 KeyStone I 相比,KeyStone II 中的导航器已得到了明显的改进:4倍uRISC 引擎数量可实现更多的调度资源,而数据包 DMA 通道、硬件队列以及描述符数量翻番,则可提高执行吞吐量。

 图 4 为 KeyStone Navigator Runtime 在各种工作任务量情况下,2 至 8 内核的实际加速性与理想加速性的比较。

图 4:采用 Navigator Runtime 实现的多内核加速性

此外,TI KeyStone II 架构还可为所有异构内核提供 6MB 的片上共享存储器(MSMC 存储器)容量。MSMC 的存储器访问性能非常接近 L2 存储器访问性能。当数据存储在 MSMC 中时,无需使用导航器预加载和后存储数据,便可实现与上面情况类似的加速性。与其它可选解决方案相比,大型片上共享存储器可利用低系统时延为多内核性能带来独特的优势。[!--empirenews.page--]

Navigator Runtime 不但可支持各种系统应用,而且还能够与 OpenMp 等高级多内核编程范式集成。

OpenMP 是一款支持多平台共享存储器多处理编程的应用编程接口 (API),由编辑器指令、运行时库程序以及环境变量构成。在 OpenMP 中,用户可使用语言指令(例如编译器指令)来识别其软件中的并行性,也可使用工具帮助识别。使用兼容 OpenMP 的编译器可读取编译指令,其可将编译指令所注释的串行代码转换成并行代码,并在 OpenMP 运行时中插入调用。对在特定器件上运行的应用而言,多内核编程方法的运行时时延及开销性能将会限制可实现的并行性。更低的时延与开销可在应用中实现并行化创造更好的条件,进而实现更高的多内核效率。

开始已经为共享存储器架构指定了 OpenMP。我们现在讨论分布式存储器及异构处理器架构支持。TI Navigator Runtime 可用作 OpenMP 的运行时系统。多内核同步与 IPC 可使用导航器中的数据包 DMA 引擎有效处理。前面的基准显示,将 Navigator Runtime 用作 OpenMP 运行时不但可显著降低编译器指令的构建开销,而且还可显著提升多内核系统内的并行性,让编程人员专注于识别并行任务。调度及负载均衡由 Navigator Runtime 自动管理,不但可简化编程,而且还可最大限度地提高多内核效率。

下页图 5 显示的是使用 Navigator Runtime 与 OpenMP 的 KeyStone AMP 编程流程。随同 Code Composer Studio™ 集成开发环境提供的 Code Gen Tool 7.4 版是一款立即可用于 OpenMP 的编译器。该编程流程具有通用性,不但可用于各种多内核应用,而且还可通过扩展支持各种不同内核及系统规模。其目的是以单内核编程的便捷性实现多内核的高性能。

图 5:使用 Navigator Runtime 的 KeyStone AMP 编程流程

结论

多内核导航器是一款面向 KeyStone 器件的创新型智能芯片基础设施,可推动多内核编程的发展。多内核导航器与 Navigator Runtime 可为每个硬件组件带来抽象性,通过资源管理、调度以及动态负载均衡功能实现平台虚拟化,从而可最大限度地提高多内核效率,以更低的系统成本实现更高的硬件利用率。将 Navigator Runtime 与 OpenMP 等高级多内核编程模式相结合,可简化 AMP 多内核软件设计,提高多内核程序的可扩展性与灵活性,并能够以更低的成本快速部署新技术。

重要说明:德州仪器公司及其在此所提及各子公司的产品与服务均根据 TI 标准销售条款进行销售。TI 建议用户在下订单前查阅最新最全面的产品与服务信息。对于应用协助、客户的应用或产品设计、软件性能或者专利侵权,请恕 TI 概不负责。有关任何其它公司产品或服务的发布信息均不构成 TI 因此对其的批准、保证或授权。
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭