0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软件如何利用内核实现高效运行

要长高 来源:epsnews 作者:Ann Steffora Mutschle 2023-11-23 14:50 次阅读

作者:Ann Steffora Mutschler

在编写软件时,设计工程师如何确定它将在特定目标平台上消耗多少功率?虽然这个问题看起来很简单,但答案并非如此。

Synopsys低功耗解决方案集团技术营销总监Cary Chin表示,该行业才刚刚开始发展在该领域

获取一些数据的能力。“当我们能够做到这一点时,我认为你会发现移动应用程序的编写方式实际上与你在笔记本电脑上运行的应用程序不同,因为它们将更好地优化功能,并且可能会在缓存数据方面做不同的事情。

不过,要达到这一点并不容易。ARM操作系统架构师Jason Parker表示,高能效软件需要从一开始就成为设计的一部分。“设计师需要不断问自己,‘这是解决这个问题最省电的方法吗?’试图将电源管理和效率改造到现有设计中是一项艰巨的工作,而且所有的银弹在很久以前就用完了。多处理器设计为电源管理开辟了额外的技术和限制。

了解表面之下发生的事情是一个开始。线程和进程是表示 CPU 执行和可见内存空间的软件抽象。线程表示 CPU 的执行状态,例如程序计数器、寄存器和标志。他解释说,进程是受限的进程内存空间,供一个或多个线程在其中执行,而MMU则用于提供此内存。一个进程中通常可以有多个线程,并且它们都共享相同的数据。

在单核处理器中,CPU 由操作系统内核调度程序在线程之间共享,执行由线程调度管理,线程优先级和时间切片和切换线程称为上下文切换。相比之下,多处理器 (MP) 将多个高效 CPU 组合在一起,可以以比单个高性能 CPU 更低的总功耗提供更高的聚合性能,并提供更多的电源管理选项,Parker 指出。

MP系统分为对称系统和非对称系统。“非对称系统可以在不同的内核上运行不同的操作系统,协同工作以提供整个系统解决方案。例如,智能手机具有用于 Android 用户界面的 ARM CortexA8 应用处理器,以及在 RF 调制解调器中运行实时电话堆栈的不同 Cortex R4 处理器,以及用于图形、视频和低功耗音频的附加内核。这些系统的优点是可以定制每个子系统的处理器和资源,以最小的功耗提供预期的性能。缺点是系统架构通常是固定的,可能无法实现未来的要求,例如新的视频格式。

同时,对称系统在相同的内核上运行单个操作系统内核,并有一个连贯的内存系统将它们连接在一起,Parker解释说。“SMP 操作系统将同时运行多个线程,旨在通过集群内的核心分担工作负载。结构良好的代码和算法是可并行化的,能够利用多核的性能。现有的代码和串行算法可能无法利用多个内核。SMP 操作系统中的电源管理系统将通过使用 DVFS 扩展内核的性能来控制功耗,并将关闭未使用/未充分利用的内核。

当今复杂的 SoC 包含 SMP 和 AMP 子系统的混合体,其功耗针对各自的任务进行了优化。例如,“多核Cortex A9系统为开放平台操作系统提供了灵活性,其中未来的应用需求是未知的,而LTE调制解调器的CPU要求在设计时是已知的,”他说。

实现最佳核心利用率

但是,仅仅了解系统的结构是不够的。为了实现软件对内核的最佳利用率,应实施某些技术,同时牢记内核利用率是由子系统分区以及系统代码和算法的进一步并行化驱动的。Parker说:“操作系统调度器可以通过将线程及其数据保留在相同或本地CPU上来最大限度地提高执行效率,而应用程序软件可以通过使用线程亲和性来强制执行。

最大限度地提高内核利用率将推动最大性能。然而,对于每个硅工艺来说,它可能不是最节能的解决方案,特别是那些具有电源管理功能的解决方案,当所需的总软件负载只是总性能的一小部分时,可以优化线程调度。例如,在一个 CPU 上总负载为 80% 的双核系统中,要问的关键问题是:

1. 内核是否以 100% 的性能运行一个 CPU,而关闭第二个 CPU?

2. 内核是否以 50% 的性能运行两个 CPU,频率、电压和总功耗较低?

Parker说,除了子系统分区之外,还有其他方法可以优化软件利用内核的方式,但这取决于手头的任务,包括使用虚拟机管理程序将多个操作系统整合到单个CPU或集群上。此外,虚拟化操作系统的许多实例可以使用虚拟化分布在多个内核上,例如在 Web 服务器的情况下。在天平的另一端,令人尴尬的并行问题可以移交给 GPU,例如在图像处理中使用 Open CL。

“中间是事情有趣的地方,”他说。“现有系统如何跨多个内核进行扩展?这是一个 30 年来一直存在的性能问题,以及最近的电源成本问题。对于现有代码和几个内核(少于 《》 个)来说,使用线程是一种可行的解决方案,但它们很难编程。测量和分析一如既往地是所需的工程技能。如果没有对系统有很好的了解,就很难充分利用多核硬件

何时使用多核

Synopsys 的 Chin 表示,如今一切都朝着多核的方向发展,“随着处理器的频率不断提高,这推动了技术的发展,并使电源问题越来越严重。试图通过在某些处理单元中将内核复制到双核、四核、六核或更多内核来增加吞吐量或提高处理能力的想法一直是大多数处理器制造商所走的道路。在过去的 8 或 10 年里,人们一直在谈论这个问题。

“因此,我们看到了很多处理器——英特尔酷睿 i5、酷睿 i7 等四核和六核处理器在今天非常主流,非常有趣,尽管移动电子产品的架构还没有真正走上这条路。我想说,这更像是异构内核的想法,在这种内核中,您将特定内核用于更具体的任务。在移动应用程序中,对优化处理器功能以满足手头特定任务的需求更大,“他指出。

但是,某些应用程序在多核环境中的表现比其他应用程序更好。“在服务器场和移动设备方面,你将看到的性能改进之间的最大区别在于,在服务器场上,虚拟化、数据库和谷歌搜索等应用程序在算法上是并行化的,可以很容易地进行线程化。当你在云或服务器场环境中时,你也有拥有很多很多用户的好处,这为整个场提供了另一个层次的并行化和功能,“Chin说。

在这些环境中,并行化并拥有尽可能多的内核是有意义的,因为启动服务器场的整个想法是提高利用率。“我们的想法是,如果可以的话,让您的农场以接近 100% 的利用率运行,24/7,无论是在线金融应用程序还是季节性圣诞节订购。你希望这与世界其他地区的使用相平衡,“他继续说道。“对于移动应用程序,您只能在操作系统和要运行的应用程序中执行一定数量的线程。在像智能手机这样的东西上,这个想法不是让它一直运行。事实上,这个想法恰恰相反。你希望它尽可能少地运行。

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19118

    浏览量

    228872
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10813

    浏览量

    210891
  • 服务器
    +关注

    关注

    12

    文章

    8981

    浏览量

    85103
  • 操作系统
    +关注

    关注

    37

    文章

    6699

    浏览量

    123151
  • 线程
    +关注

    关注

    0

    文章

    504

    浏览量

    19636
收藏 人收藏

    评论

    相关推荐

    FreeRTOS实时内核实用指南

    FreeRTOS实时内核实用指南
    发表于 09-18 08:02

    如何多核实现算法?

    本人菜鸟,C6678学了一个多月,至今想不出LMS算法如何多核实现? 看多核实现的IMAGE PROCESSING的例程,这个处理比较复杂,数据量也大, 个人理解:这个图像处理的例程是不是基于数据
    发表于 06-21 19:05

    《RT-Thread 内核实现与应用开发实战—基于STM32》分享

    RT-Thread 内核实现与应用开发实战—基于STM32 基于STM32的论文+实战 主要是RT-Thread
    发表于 01-29 15:29

    嵌入式微内核实时操作系统的Wolf测试怎么实现

    介绍嵌入式微内核实时操作系统的体系结构;针对Wolf嵌入式操作系统,设计一套微内核嵌入式操作系统测试实现方案。在Wolf操作系统支持下,已产业化的阅读不耗电电子书(eBook)验证了Wolf操作系统的可靠性。
    发表于 09-05 06:03

    RT-Thread 内核实现与应用开发实战指南

    RT-Thread 内核实现与应用开发实战指南
    发表于 04-03 11:43

    FreeRTOS内核实现与应用开发实战指南

    本书是野火嵌入式教学丛书“RTOS 内核实现与应用开发实战指南的”FreeRTOS 版本,其中机械工业出版社出版的《RT-Thread 内核实现与应用开发实战指南—基于 STM32》是该书的姐妹篇
    发表于 09-28 08:05

    嵌入式微内核实时操作系统分析与测试

    介绍嵌入式微内核实时操作系统的体系结构;针对Wolf 嵌入式操作系统,设计一套微内核嵌入式操作系统测试实现方案。在Wolf 操作系统支持下, 已产业化的阅读不耗电电子书(eBook)
    发表于 05-14 15:51 15次下载

    嵌入式Linux内核实时性研究及改进

    分析了嵌入式Linux 存在实时性缺陷的原因,从Linux 调度机制入手提出了可行的改进方案,并详细阐述了代码实现。经测试,改进后的内核实时性能得到很大提高。在嵌入式技术
    发表于 07-30 10:13 8次下载

    英特尔最小型内核实现边缘智能

    英特尔打造核心技术英特尔最小型内核实现边缘智能
    发表于 12-28 18:10 0次下载

    嵌入式内核实

    嵌入式内核实
    发表于 01-22 13:58 0次下载

    如何利用C/C++编写应用程序加速内核运行

    SDAccel编译器支持OpenCL C,C和C ++,用于定义FPGA执行的内核功能。 了解如何利用用C / C ++编写的现有函数作为FPGA上运行的OpenCL应用程序的加速内核
    的头像 发表于 11-20 06:40 2856次阅读

    FreeRTOS 内核实现与应用开发实战指南PDF电子书免费下载

    本书是野火嵌入式教学丛书“RTOS 内核实现与应用开发实战指南的”FreeRTOS 版本,其中机械工业出版社出版的《RT-Thread 内核实现与应用开发实战指南—基于 STM32》是该书的姐妹篇
    发表于 11-18 08:00 1690次下载
    FreeRTOS <b class='flag-5'>内核实现</b>与应用开发实战指南PDF电子书免费下载

    FreeRTOS内核实现与应用开发实战指南

    本书是首本系统讲解 FreeRTOS 的中文书籍,共分为两个部分,第一部分为“从 0 到 1教你写 FreeRTOS 内核”,即重点讲解 FreeRTOS 的原理实现,从 0 开始,不断迭代,教你
    发表于 05-24 16:26 236次下载

    Linux内核实现内存管理的基本概念

    本文概述Linux内核实现内存管理的基本概念,在了解基本概念后,逐步展开介绍实现内存管理的相关技术,后面会分多篇进行介绍。
    发表于 06-23 11:56 787次阅读
    Linux<b class='flag-5'>内核实现</b>内存管理的基本概念

    内核实时操作系统的介绍

    内核实时操作系统(Microkernel Real-Time Operating System, μRTOS)是一种专为实时设计的操作系统。它采用微内核架构,以提高系统的可靠性、安全性和可扩展性。以下是关于微内核实时操作系统的
    的头像 发表于 05-11 17:13 457次阅读