嵌入式linux更省电,- 基于嵌入式Linux的智能手机省电设计

用户程序API, 用户程序( 应用软件) 分为三类:

(1)可感知电源管理的应用软件; (2)可感知电源管理的“包装器”中的传统应用软件; (3)不带电源管理的传统应用软件。

可感知电源管理的应用软件能够充分利用来自策略管理器的API, 从而建立各自的基础约束, 并强制电源管理策略发生变化, 以便匹配各自的执行要求。不直接带有电源管理功能的传统应用软件可以“包装”到代码或补丁中, 从而实现相当的效果, 它们还可以按照默认行为来运行, 这取决于更宽范围的默认策略管理。

b6a5484b615dde87336c38b9c06051ec.png

嵌入式Linux DPM 下的实际机制包括各种API, 比如dpm_set_os ()( 内核) 、assert_conSTraint ()、remove_constraint () 和set_operaTIng_state () ( 内核和驱动程序) 、set_policy () 和set_task_state()( 经由系统调用的用户级接口) , 以及/proc 接口。

电源管理策略在系统电源管理中扮演了极为关键的角色。DPM的策略抽象模型的执行体系类似于状态机。在DPM中有2个概念很重要: 一个是执行点(operaTIng points), 另一个是执行状态( operaTIng states) 。DPM的执行点来自一些独立的系统参数, 包括执行电压, 频率, 以及总线带宽等等。随着事件的改变, 系统的状态也不断的改变( 如图2 所示) 。在DPM中, 每个系统状态都是一个执行状态, 包括空闲态、活动态和睡眠态。

自适应电压调整(AVS)

在CPU 的选择部分, 我们知道了系统能耗是与电压和频率紧密相关的。现在我们来探讨一下调整电压在降低能耗方面的作用。在电压调整方面, 自适应电压调整是一种很有效的方法。自适应电压调整AVS(Adaptive Voltage Scaling)是通过反馈机制将电源电压调整到给定工作负载(处理量)所需的最小值。这种闭环方式可进一步减小功耗, 但需要将部分电源管理电路置入主处理器。

成功实现AVS 的关键是在基带芯片中集成部分系统电源管理电路, 即内置AVS 控制器(图3)。这一关键模块包含专门的电路和算法, 用来确定给定处理量下的最优电压。通过向电压调整器的参考端输入馈送误差信号, 可以生成最优的VDD, 无需提供不必要的电压余量, 从而减少了电能损耗。对任何闭环方法来说, 环路带宽都是很重要的。环路快速跟踪并稳定的能力决定了基带电源动态调整以自适应工作负载突变的能力。

通过软件方法降低设备功耗

低能耗软件优化对于基于处理器系统的应用程序而言, 是最有发展前途的降低系统能耗的技术方法。这种方法对于那些计算复杂度较高的应用程序最为有效。因为只有在应用程序执行的时候, 才会消耗大量电源。

这项技术的最终目的是在执行较为复杂的应用程序时, 尽量降低能耗。我们的程序用于降低计算的复杂度, 但不能改变程序原本的行为。现在我们通过图4(A) 中的例子, 来阐述一下一些有关软件优化的想法。

考虑主函数中第一次调用过程test。如果档参数a 和差数k都是0 的概率为90%, 我们可以将源代码改写为图4(B) , 通过改写, 我们减少了test 过程中的循环数。但在现实中, 参数a 和k 并不是总是为0。那么test 的过程调用不能被新的过程sp_test 所完全替代。我们用一个条件语句来限定过程的调用, 所有的过程调用依赖于cvd_test()的结果。当过程cvd_test()检测为一般情况( a,k同时为0) , 符合此条件的修正后的代码被执行。如果当过程cvd_test()检测为非一般情况( a,k 非同时为0) , 原有的代码被执行。在另一方面, 当过程cvd_test()检测为非一般情况, 我们提升了程序的计算复杂度, 也相应提高了能耗。

一般而言, 对代码优化有各种各样不同的方法。如果我不考虑参数k, 我们可以将源代码转化为图4(C) 所示。a 为0 的概率大于a 和k 同时为0 的概率。在不同情况下, 对原有代码所做的修改有不同的效果。

最后, 我们必须检验修改过的代码对原有代码的影响, 是不是改变了原有代码的行为, 在任何条件下我们都不能去擅自改变原有代码的行为。代码质量的提升也是相当的重要的。对于C 语言来说, 将一些简单的函数转换为宏定义时一种比较有效的方法。

综上所述, 我们可以将一般情况下代码优化分为4 个步骤:

(1)一般案例的选择。选择最有效的、最长被调用的案例。

(2)一般案例的提炼。为给出的一般案例建立一个过程。

(3)全局检测。检测改变后的调用对于全局的影响。

(4)提高代码质量。使用一些编程语言中的基本技巧, 以提高代码质量。

总结

在移动终端设备设计方面, 节能成为了一个很重要的设计指标。我们选取了更高效的CPU 以降低能耗。对于交互式应用程序而言, 我们使用DPM策略降低处于空闲态的能耗, 这种方法主要使用于OS 层。而AVS 技术是通过电压调整来实现减少能耗。在应用程序层, 我们通过对软件的优化来达到降低能耗的目的。在Intel? PXA27x 处理芯片环境下, 通过以上方法, 我们降低了26%的能耗, 提高了30%的系统性能以及增加了7%的代码量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1619100.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

一级节能和三级节能有什么区别

等级不同:一级节能产品能源效率达国际先进水平,三级的为市场平均水平。能耗量不同:一级和三级节能产品全年耗电量分别为634度781度。省电程度不同:同规格产品在同样条件下,一级节能产品比三级的节能15%左右。 以变频空…

计算机系统节能减排,节能减排,我们怎么做?

原标题:节能减排,我们怎么做? 节能减排 节俭但不算计,环保但不做作 节能环保已被越来越多的人接受 形成了一种特定的文化 保护环境并没有想象中的那么难 只要我们从小事做起 就会让地球母亲焕然一新 空用完拔插头,省电…

android屏幕省电,AMOLED屏幕省电吗 AMOLED屏幕耗电测评测

毫无疑问屏幕是最能够直接影响用户体验的部件之一,而关于AMOLED屏幕好还是LCD屏幕好的争论也从未停止。与LCD屏幕相比,AMOLED屏幕的最大优点之一便是在显示黑色或深色颜色时更加节能,但事实的确如此吗?而从Greenhot给出的结果来看…

计算机省电模式在什么地方,计算机打开并显示省电模式应该怎么办

打开计算机电源后,始终会显示省电模式,然后屏幕始终是黑色,并且无法访问系统。如果在打开计算机电源时显示省电模式,该怎么办?今天,我将讨论打开计算机电源时的省电模式解决方案。方法。 计算机打开时显示的省电模式解决方案1 ​​ 1)显示器电源关闭,或显示器数据电缆接…

Linux内核省电社区,【整理】Linux禁用CPU省电状态/Linux系统性能调优 | 勤奋的小青蛙...

为了提升CPU性能,我们要禁用CPU省电状态。 我们强烈推荐禁用CPU的省电模式, 进行此更改可能会导致功耗增加,但会提高稳定性和性能。 那么:如何在Redhat或Suse Linux系统上禁用CPU节能状态? 对于RedHat Linux(版本7及更…

计算机主机省电模式,打开计算机显示屏后即显示省电模式,如何处理

2442396444 本文适用于HP和Compaq台式计算机使用的HP和Compaq平板显示器。 计算机启动,关闭或进入节能模式时,显示屏上会显示一条消息。显示的信息可能是: 进入睡眠状态(正在进入睡眠模式) 未检测到信号(未检测到信号) 同步超出范围(同步超出…

计算机关闭节能模式,bios怎么关闭cpu节能模式_bios节能模式怎么设置

BIOS是英文“Basic Input Output System”的缩略词,直译过来后中文名称就是“基本输入输出系统”。在IBM PC兼容系统上,是一种业界标准的固件接口。BIOS这个字眼是在1975年第一次由CP/M操作系统中出现。BIOS是个人电脑启动时加载的第一个软件。 其实&…

802.11 Power Save(节电/省电/节能)机制总结

背景介绍 了解WIFI节能的机制之前,首先要了解WIFI能耗的消耗发生在什么状态下,显而易见,发送和接收肯定是消耗能量的,还有一点是要认识到的,Power Save通常是在STA端进行的,AP需要一直广播并且很多AP都是固…

ctfshow-web-红包题第七弹

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 首先上来访问就是phpinfo。常规思路先扫一下目录。 发现一个.git文件403,这种情况通常都是存在文件夹,但是不能直接访问文件夹导致的。那么我们可以使用git_extract工具进行获取内容。…

SIP 协议路由规则详解

文章目录 SIP 路由关键字段SIP 路由图解 SIP 路由关键字段 SIP 协议实际上和 HTTP 类似,都是基于文本、可阅读的应用层协议,二者的不同之处在于 SIP 协议是有状态的。在 SIP 协议中,影响报文路由的相关字段如下表所示,总结起来如…

字体试衣间--轻松管理你的字体

2007年10月07日 14:44:00 PS达人们一般都收集有很多素材,字体便是其中之一,而且还颇为重要。硬盘上存有几百种字体是常事,即使上千,也不奇怪。但这么多字体,管理起来就很成问题了。 因此,今天给大家推荐这个…

NGINX相关配置

NGINX相关配置 NGINX配置信息 nginx 官方帮助文档:http://nginx.org/en/docs/Nginx的配置文件的组成部分: 主配置文件:/conf/nginx.conf(/nginx/conf/nginx.conf) 子配置文件: include conf.d/*.conf#事件驱动相关的配置 同步 event { wo…

鸿蒙无锡有什么特产,无锡特产都有哪些,你知道吗

到外地旅游,我们总是不厌其烦的将当地的特产往家带。那么去到无锡,你应该带什么特产呢?“太湖明珠”无锡是江南鱼米之乡,物产富饶,无锡特产多种多样,是外地人了解无锡文化的重要载体。让我们来盘点一些无锡…

驶入脱贫“高速路”-国稻种芯-通榆县:稻谷农特产品推送进城

驶入脱贫“高速路”-国稻种芯-通榆县:稻谷农特产品推送进城 (采写记者:刘明洋、段续、刘慧、郭翔、于佳欣)新华网 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 国稻种芯中国水稻网 中国三农智库网-功能性农业农业大健康大…

前端需要理解的工程化知识

1 Git 1.1 Git 常见工作流程 Git 有4个区域:工作区(workspace)、index(暂存区)、repository(本地仓库)和remote(远程仓库),而工作区就是指对文件发生更改的地方&#xff…

LeetCode——回溯篇(一)

刷题顺序及思路来源于代码随想录,网站地址:https://programmercarl.com 目录 77. 组合 216. 组合总和 III 17. 电话号码的字母组合 39. 组合总和 40. 组合总和 II 77. 组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的…

SQL Server 配置管理器无法打开

背景 在把机器重启后SQL SERVER 配置管理器就无法正常打开了 现象 Connection to target machine could not be made in a timely fashion 解决 打开服务器的服务列表,找到 Windows Management Instrumentation 服务,重启下他问题解决 总结 配置管理器我…

解决SQLSever配置管理器不见了

错误: 在与SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且SQL Server 已配置为允许远程连接。provider:Named Pipes Provider,error:40-无法打开到SQL Server 的连接&#x…

【rust/egui】(六)看看template的app.rs:TextEdit

说在前面 rust新手,egui没啥找到啥教程,这里自己记录下学习过程环境:windows11 22H2rust版本:rustc 1.71.1egui版本:0.22.0eframe版本:0.22.0上一篇:这里 TextEdit 文本编辑框 其定义为&#…

SQL Server 配置管理器不见了

SQL Server 配置管理器不见了 错误重现: 之前安装好的SQL Server 2012打开都没有问题,好多天没有打开了,今天打开我的SQL Server 2012 连接时出现错误: 在与SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或…