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

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

3天内不再提示

使用嵌入式Linux的动态电源管理策略

星星科技指导员 来源:嵌入式计算设计 作者:Troy Kitch 2022-06-22 11:07 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

设备制造商正面临挑战,因为消费者要求其设备具有完整的功能,而移动设备正变得越来越复杂和功能丰富。除了完整的功能外,消费者还希望获得持久电池寿命的便利。不幸的是,对于设备制造商来说,这两个设计目标只能以相互为代价来实现。当开发人员被拉向这两个不同的方向时,可以做些什么来减轻他们的痛苦?

当设计团队试图将两者都提供给要求苛刻的消费者时,性能与节能的二分法可能会令人抓狂。满足这些要求意味着不断突破性能的界限,同时从其构建中挤出每一点电池寿命。幸运的是,设计团队拥有触手可及的资源,使他们能够做到这一点。以下讨论提供了有关设备制造商如何通过嵌入式 Linux 的动态电源管理功能最大限度地节省手持设备的功耗的见解。

电源管理案例

电源管理是一个系统范围的设计目标,需要硬件、内核和用户空间应用程序的协调与合作。通过在 CPU 处于活动状态以及处于非活动状态时提供节能选项,Linux 为工程师提供了多种工具,使他们能够在设计构建中最大限度地节能。

但为什么电源管理如此重要?首先,电源管理功能是消费者的首要任务。无论设备的最终用途如何,无论是语音、视频、音乐还是 Web 访问,最终用户都希望他们的移动设备具有持久的电池寿命。因为电源管理对于想要在市场上获胜的制造商来说是必不可少的,所以他们必须将长电池寿命作为首要功能。工程师实现这些期望的能力可以在赢得市场和成为失败者之间产生差异。

制定一个可靠的电源管理策略以最大限度地节省功耗是设计过程早期的关键步骤。这个想法是以对最终用户透明的方式来计划节能。鉴于节能方法总是以性能或功能换取能源,因此必须制定明确的战略。一些成功的设计工程师这样做的方法是在处理器不忙时缩减性能,或者在不使用外设时将其置于待机模式。

全球视野

在制定电源管理策略时,重要的是要全面了解功耗,以节省时间并尽可能节省电能。关注系统中所有的耗电大户,而不是对已经提供足够回报的算法进行复杂的优化,从而获得更好的努力回报。

例如,想想普通移动设备的主要功耗来源。细分表明,片上系统 (SoC) 只是整个战略的一个组成部分。完整的功率图包括其他大量能源消耗,包括背光、DC-DC 转换器功率放大器等。

CPU 是嵌入式系统中功耗的主要来源,必须仔细调节其功耗以实现激进的电源管理目标,例如延长电池寿命。CPUfreq 和 CPUidle 是 Linux 内核中的系统,它们通过称为动态电源管理(DPM) 的技术来管理 CPU 电源使用情况。

DPM 的前提是系统在运行期间会遇到不均匀的工作负载。因此,DPM 包含一组技术,通过选择性地关闭系统组件或在它们不是完全必要或满负荷需要时降低它们的性能来实现节能计算。CPUfreq 通过动态调整 CPU 的电压和频率以响应系统不断变化的性能要求,为节能设计提供了框架。CPUidle 控制当 CPU 无工作时进入哪个低功耗空闲状态。

制定计划:先 DPM,然后再深入

动态电源管理可以在设计过程中的两个关键点实现:CPU 处于活动状态和 CPU 处于非活动状态。

· 当 CPU 处于活动状态时:这可以使用称为负载缩放的技术来实现。在执行代码时动态调整处理器的电压/频率可以节省大量电力。使用称为调速器的插件控制算法,可以根据包括工作负载在内的任意数量的指标调整电压/频率。

· 当 CPU 处于非活动状态时:这可以通过另一种称为空闲缩放的技术来完成。空闲缩放涉及在系统空闲时进入处理器的低功耗状态之一,然后在有指令执行时返回到活动状态(由 CPUfreq 控制)。

为了获得最大效果,两种技术可以一起使用。可以想象,当同时应用空闲和负载扩展策略时,节能的潜力是巨大的。这两种策略都被证明是有效的;他们是真正的主力。

更深奥的策略会产生增量改进。这些通常不值得付出努力。当将称为应用程序扩展的策略应用于执行 MPEG-4 播放的嵌入式系统时,仅比负载扩展策略额外节省 4% 的功率。

应用程序缩放需要修改播放应用程序以实现一种称为提前工作的技术。解码完帧后,前处理算法立即开始在较低的操作点解码下一帧。它继续向前工作,在更节能的操作点解码未来的帧,直到它注意到它有错过最后期限的危险,此时它会将系统限制到更高的性能水平以迎头赶上。这种复杂的优化仅在负载缩放策略上实现了很小的功率节省。商业 Linux 解决方案为空闲和负载缩放技术提供了开箱即用的支持,这使设计人员能够自由地研究和降低系统其他部分的功耗。

提前规划电源

对电源管理的需求不会消失。相反,它正在成为移动设备设计中越来越重要的特征。采用强大的电源管理策略构建的设计团队可以利用 Linux 的功能来提供消费者所需的节能,而不必在性能方面做出不可接受的牺牲。

在设计过程的早期制定节能策略,从全局角度了解功耗,并在 CPU 处于活动状态和空闲状态时利用节能效果仅仅是开始。存在关于电源管理这一重要主题的其他注意事项和策略,因此请务必为即将开展的项目进一步研究这项技术。

审核编辑:郭婷

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

    关注

    117

    文章

    6559

    浏览量

    147550
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11223

    浏览量

    223000
  • Linux
    +关注

    关注

    88

    文章

    11631

    浏览量

    218024
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式应掌握的几种能力

    1. 编程语言 基本掌握嵌入式必备的编程语言。C语言为主,C++为辅。在资源有限的情况下,大多数嵌入式产品还是使用C语言为主的,特别是底层驱动开发。上层应用开发大多用C,在一些资源比较充足的平台
    发表于 12-08 06:05

    嵌入式开发工具版本的选择策略

    今天,我们就来结合嵌入式常见的几个软件(如Keil / IAR、VS Code 、Source Insight、VMware、Git等),简单讲一讲嵌入式开发工具软件版本选择策略。 开发团队软件工具
    发表于 11-25 06:11

    嵌入式Linux新手入门:为什么迅为RK3568+迅为资料是黄金组合

    嵌入式Linux新手入门:为什么迅为RK3568+迅为资料是黄金组合
    的头像 发表于 11-04 14:05 261次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>新手入门:为什么迅为RK3568+迅为资料是黄金组合

    嵌入式需要掌握哪些核心技能?

    嵌入式需要掌握哪些核心技能? 若想通过学习嵌入式技术提升就业竞争力,需重点掌握C语言、嵌入式硬件架构、RTOS/Linux开发、通信协议四大核心技能,并结合行业需求积累项目经验。
    发表于 10-21 16:25

    嵌入式达到什么水平才能就业?

    :包括GPIO、定时器、中断、ADC 等外设的配置与调试,能实现如温湿度采集、电机控制等功能掌握嵌入式 Linux 驱动开发基础:能编写简单字符设备驱动,实现设备的初始化、读写操作,会用内核调试
    发表于 09-15 10:20

    怎么结合嵌入式Linux,和FPGA三个方向达到一个均衡发展?

    嵌入式领域,不少人都怀揣着让嵌入式Linux 和 FPGA 三个方向实现均衡发展的梦想,然而实践中却面临诸多挑战。就像备受瞩目的全栈工程师稚晖君,他从大学玩单片机起步,凭借将智能算法融入
    的头像 发表于 06-25 10:08 655次阅读
    怎么结合<b class='flag-5'>嵌入式</b>,<b class='flag-5'>Linux</b>,和FPGA三个方向达到一个均衡发展?

    Linux嵌入式和单片机嵌入式的区别?

    Linux嵌入式与单片机嵌入式在多个方面存在显著的区别,以下是详细的比较和归纳: 一、基本概念 1. Linux嵌入式: 定义:将
    发表于 06-20 09:46

    【书籍评测活动NO.61】Yocto项目实战教程:高效定制嵌入式Linux系统

    扩展、自动化的构建工具集 。它采用模块化架构、分层构建体系和软件栈管理机制,使开发者能够高效定制、优化和维护嵌入式 Linux 系统,可提高开发效率并降低适配成本。 Yocto 项目已成为定制
    发表于 05-21 10:00

    嵌入式开发入门指南:从零开始学习嵌入式

    特定功能的计算机系统,广泛应用于智能家居、工业控制、医疗设备、车载系统等领域。 2. 学习嵌入式开发的前置知识熟悉C语言编程掌握基本的数据结构与算法了解数字电路与微控制器原理熟悉Linux操作系统
    发表于 05-15 09:29

    怎么嵌入式linux下控制dlp?

    请问怎么嵌入式linux 下控制dlp,有没有支持
    发表于 03-03 07:02

    嵌入式系统存储的软件优化策略

    嵌入式系统开发领域,存储器作为信息交互的核心载体,其技术特性直接影响着系统性能与稳定性。然而,有些人在面对Linux、安卓等复杂操作系统环境时,理解其存储机制尚存局限,为突破这些技术瓶颈,飞凌
    发表于 02-28 14:17

    ARM架构嵌入式主板特点

    极其广泛。ARM架构嵌入式主板有什么特点呢?一、工作时间及环境:ARM主板不受时间限制,可常开机,无需人员维护。在有电源调节的情况下,只要接通电源,就会自动启动,
    的头像 发表于 12-31 16:03 1851次阅读
    ARM架构<b class='flag-5'>嵌入式</b>主板特点

    嵌入式开发必备-RK3562演示Linux常用系统查询命令(上)触觉智能出品

    实用干货!嵌入式开发学习必备-RK3562演示Linux常用系统查询命令(上)关注触觉智能持续为大家带来更多嵌入式开发内容
    的头像 发表于 12-31 10:51 117次阅读
    <b class='flag-5'>嵌入式</b>开发必备-RK3562演示<b class='flag-5'>Linux</b>常用系统查询命令(上)触觉智能出品

    LDO在嵌入式系统中的应用 常见LDO故障及解决方法

    LDO在嵌入式系统中的应用 LDO(Low Dropout Regulator,低降压线性稳压器)是一种常用的电源管理集成电路,它在嵌入式系统中扮演着至关重要的角色。以下是LDO在
    的头像 发表于 12-13 09:08 3102次阅读

    新手怎么学嵌入式?

    的运行机制。例如,了解数据结构中的链表、栈和队列,对于在嵌入式编程中管理数据非常有帮助。 2. 选择合适的编程语言 嵌入式开发中常用的编程语言有 C 和 C++。C 语言是嵌入式开发
    发表于 12-12 10:51