设备制造商正面临挑战,因为消费者要求其设备具有完整的功能,而移动设备正变得越来越复杂和功能丰富。除了完整的功能外,消费者还希望获得持久电池寿命的便利。不幸的是,对于设备制造商来说,这两个设计目标只能以相互为代价来实现。当开发人员被拉向这两个不同的方向时,可以做些什么来减轻他们的痛苦?
当设计团队试图将两者都提供给要求苛刻的消费者时,性能与节能的二分法可能会令人抓狂。满足这些要求意味着不断突破性能的界限,同时从其构建中挤出每一点电池寿命。幸运的是,设计团队拥有触手可及的资源,使他们能够做到这一点。以下讨论提供了有关设备制造商如何通过嵌入式 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 处于活动状态和空闲状态时利用节能效果仅仅是开始。存在关于电源管理这一重要主题的其他注意事项和策略,因此请务必为即将开展的项目进一步研究这项技术。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !