CPU降频实现原理与试验数据

CPU降频实现原理与试验数据

1. CPU降频实现原理

CPU降频主要是通过控制CPU的工作模式和工作频率来达到的。

1.1 CPU工作模式调整

Android的CPU工作模式是基于linux的,在androidL上支持的CPU工作模式有:ondemand、userspace、powersave、interactive和performance。

1,performance :顾名思义只注重效率,将CPU频率固定工作在其支持的最高运行频率上,而不动态调节。

2,powersave:将CPU频率设置为最低的所谓“省电”模式,CPU会固定工作在其支持的最低运行频率上。因此这两种governors 都属于静态governor,即在使用它们时CPU 的运行频率不会根据系统运行时负载的变化动态作出调整。这两种governors 对应的是两种极端的应用场景,使用performance governor 是对系统高性能的最大追求,而使用powersave governor 则是对系统低功耗的最大追求。

3,Userspace:最早的cpufreq 子系统通过userspace governor为用户提供了这种灵活性。系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU 运行频率使用。也就是长期以来都在用的那个模式。可以通过手动编辑配置文件进行配置

4,ondemand 按需调节cpu频率,不操作手机的时候控制在最低频率,滑屏或进入应用后会迅速提升至最高频率,当空闲时迅速降低频率,性能较稳定,但因频率变化幅度过大,省电方面只有一般的水平。是一种在电池和性能之间趋向平衡的默认模式,但是对于智能手机来说,ondemand在性能表现方面略有欠缺。

5、interactive:和ondemand相似,规则是“快升慢降”,注重响应速度、性能,当有高需求时迅速跳到高频率,当低需求时逐渐降低频率,相比ondemand费电

现在我们手机使用的模式是interactive,频率会自动调整,“快升慢降”,比较符合手机操作行为,手机需要很快上升到最高频率,操作才会流畅,当你不用的时候频率会缓缓下降,也能一定程度达到省电效果。

下面我们就来看看实际是如何调整CPU的工作模式的

adb shell
//得到CPU支持的工作模式,此处为ondemand userspace powersave interactive performance
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
//设置工作模式
//echo后面接你想要设置的工作模式,scaling_governor是当前的cpu工作模式
echo interactive > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

但是在user版本,该设备节点属于root用户,只有root权限才能访问,android拥有的最高权限就是system权限

-rw-r--r-- root     root         4096 2015-01-01 08:00 scaling_governor

故我们需要在init.rc中修改该设备节点的权限,改成system可以读写

//init.rc
chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

这样系统级别的应用就可以访问

1.2 cpu频率调整

首先我们必须知道CPU可以支持那些频率设置

adb shell
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
//上面指令返回cpu支持的频率设置988000 923000 858000 793000 637000 494000 364000 221000

接着就是进入cpu的用户模式下进行设置

//这里是进入cpu的用户模式
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

//下面是分别设置最高最低cpu频率,还有就是当前cpu频率
echo 858000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 858000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 858000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

2. cpu调频实验数据

下面就是cpu调频对于实际手机使用的实验数据。

2.1 cpu调频实验数据

测试环境如下:

安装安兔兔v5.6.1

1、 开启飞行模式,将亮度调整到最低

2、 设置cpu工作模式

3、 待电流稳定后进行antutu评测

4、 记录整个antutu评测的平均电流、时间、得分

2.1.1 interactive模式

图2.1 CPU处于interactive模式
图2.1 CPU处于interactive模式

CPU处于interactive模式下平均电流 0.349 A,安兔兔得分15276,耗时6.583 min

2.1.2 performance模式

图2.2 CPU处于performance模式
图2.2 CPU处于performance模式

CPU处于performance模式下平均电流 0.345 A,安兔兔得分15959,耗时6.316 min

2.1.3 powersave模式

图2.3 CPU处于powersave模式
图2.3 CPU处于powersave模式

CPU处于powersave模式下平均电流 0.143 A,安兔兔得分5610,耗时19.166 min

2.1.4 CPU模式实验数据总结

1、CPU处于interactive模式下平均电流 0.349 A,安兔兔得分15276,耗时6.583 min

2、CPU处于performance模式下平均电流 0.345 A,安兔兔得分15959,耗时6.316 min

3、CPU处于powersave模式下平均电流 0.143 A,安兔兔得分5610,耗时19.166 min

由上面数据可以知道:

  • interactive和performance对于手机性能没有很大影响,对于手机电量损耗也几乎一致,performance运行速度会比interactive稍微快一点点(运行整个安兔兔时间少一点)。
  • powersave模式下手机电量消耗会小很多,但相应的cpu处理时间也会长很多,导致运行整个安兔兔的时间变长很多(是原来3倍左右),手机性能也大大降低

2.2 CPU频率实验数据

测试环境如下:

安装安兔兔v5.6.1

1、 开启飞行模式,将亮度调整到最低

2、 设置cpu频率

3、 待电流稳定后进行antutu CPU运算测试

4、记录antutu CPU运算测试时的工作电流

2.2.1 cpu处于988000 KHz

图2.4 CPU处于988000 KHz
图2.4 CPU处于988000 KHz

cpu处于988000 KHz下平均电流 0.578 A

2.2.2 cpu处于923000 KHz

图2.5 CPU处于923000 KHz
图2.5 CPU处于923000 KHz

cpu处于923000 KHz下平均电流 0.522 A

2.2.3 cpu处于858000KHz

图2.6 CPU处于858000 KHz
图2.6 CPU处于858000 KHz

cpu处于858000 KHz下平均电流 0.492 A

2.2.4 cpu处于793000 KHz

图2.7 CPU处于793000 KHz
图2.7 CPU处于793000 KHz

cpu处于793000 KHz下平均电流 0.460 A

2.2.5 cpu处于637000 KHz

图2.8 CPU处于637000 KHz
图2.8 CPU处于637000 KHz

cpu处于637000KHz下平均电流 0.411 A

2.2.6 cpu处于494000 KHz

图2.9 CPU处于494000 KHz
图2.9 CPU处于494000 KHz

cpu处于494000 KHz下平均电流 0.374 A

2.2.7 cpu处于364000 KHz

图2.10 CPU处于364000 KHz
图2.10 CPU处于364000 KHz

cpu处于364000 KHz下平均电流 0.339 A

2.2.8 cpu处于221000 KHz

图2.11 CPU处于221000 KHz
图2.11 CPU处于221000 KHz

cpu处于221000 KHz下平均电流 0.088 A

2.2.9 CPU频率实验数据总结

表2.1 CPU频率实验数据
表2.1 CPU频率实验数据

由上面数据可以知道:

  • 手机功耗随着CPU频率下降而下降

3. cpu调频实现必要性

由上面实验数据得到,cpu在powersave模式下是可以降低很多功耗(是默认interactive的40%左右),但是降低频率会导致系统变慢(大概是默认interactive的3倍左右),故如不是必要,不建议采取此操作,可以将此行为内置入最高级别的省电模式中去。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值