本文是嵌入式企鹅圈原创团队成员、NVIDIA资深开发project师Terry发表的第一篇文章,其将对“移动智能设备功耗优化”这个专题展开一个系列的总结分享。

Terry毫无保留地总结分享其在主导NVIDIA多个项目开发中的移动设备功耗优化经验,极具价值。

随着智能移动设备的功能越来越多。CPU/Memory频率也越来越高。随之带来的功耗问题也越来越严重,怎样延长手机的待机以及使用时间一直以来都是各个手机厂商不得不面对的问题。本专题将逐一为各位读者解说一下当前主流的功耗优化策略以及一些有用的优化调试方法,希望能够起到抛砖引玉的作用。

如今主流的移动CPU最高频率动辄1-2GHz。更高的频率带来更高的功耗。因此我们并不须要CPU时时刻刻工作在最高频率上。大部分时间里。CPU实际是工作在轻负载状态下,依据不同的系统负载,CPU能够工作在多核/单核。高频/低频,或者在FCPU(比方A57)和SCPU(比方A53)之间切换。假设负载更轻,比方关屏待机。CPU能够切换到LP0,使得CPU功耗趋近于0。以上过程涉及到下面技术。

一、 LinuxCPUquite机制

对于多核CPU,执行游戏须要将全部Core online。浏览网页或许1个核就足够了,怎样评估当前须要几个Core online? 怎样实现CPU core 的hot plug?

因为这个技术是Nvidia独有的。涉及到商业秘密。故不能展开写。假设有须要的朋友请自行Google。

二、 LinuxCPUfreq机制

用户场景不同。对性能的需求也不同。CPU应该执行在什么频率?频率低了会卡,高了费电。假设有突发事件,怎样升频降频既保证系统流畅又只是多消耗能量?下面是软件系统框架。后面会具体解说。

三、 LinuxCPUIdle机制

假设负载很轻。系统能够进入更低的Pstate(比方LP0/SC7),关闭CPU。Memory,外设以降低功耗。怎样实现?系统怎样唤醒?下面是软件系统框架,后面会具体解说。

四、 DVFS动态电压频率调节

这个大家应该不陌生,这是一种实时电压频率调节技术,因为CMOS制成的需求,CPU想稳定的跑到更高的频率须要更高的电压,而这个电压又跟芯片的Speedo和Iddq以及温度相关,怎样确定?下面是软件系统框架,后面会具体解说。

当然,因为功耗需求越来越高,优化技术也越来越复杂。各个厂商都有一些各自独到的技术。假设有兴趣也欢迎读者朋友留言丰富内容。或者发邮件给我讨论:terrywang0712@qq.com,谢谢。

本篇文章为移动设备功耗优化的概述部分,接下来将会深入分析各个部分的原理和实践。敬请关注!

      嵌入式企鹅圈原创团队由阿里、魅族、nvidia、龙芯、炬力、拓尔思等资深project师组成。百分百原创,每周两篇。分享嵌入式、Linux、物联网、GPU、Android、自己主动驾驶等技术。

      欢迎扫码关注微信公众号:嵌入式企鹅圈。实时推送原创文章!

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="border: none; max-width: 100%;" />

移动智能设备功耗优化系列--前言(NVIDIA资深project师分享)的更多相关文章

  1. 推荐:Java性能优化系列集锦

    Java性能问题一直困扰着广大程序员,由于平台复杂性,要定位问题,找出其根源确实很难.随着10多年Java平台的改进以及新出现的多核多处理器,Java软件的性能和扩展性已经今非昔比了.现代JVM持续演 ...

  2. Mysql优化系列之查询性能优化前篇1

    前言 这是优化系列的最后一篇的第1小篇,我们其实可以直接从sql怎么写讲起,why not?但是我还是决定花2个篇幅 问一些问题,带着几个问题循序渐进的往下走. 一个sql语句是怎么被执行的? sql ...

  3. [MySQL性能优化系列]提高缓存命中率

    1. 背景 通常情况下,能用一条sql语句完成的查询,我们尽量不用多次查询完成.因为,查询次数越多,通信开销越大.但是,分多次查询,有可能提高缓存命中率.到底使用一个复合查询还是多个独立查询,需要根据 ...

  4. [MySQL性能优化系列]巧用索引

    1. 普通青年的索引使用方式 假设我们有一个用户表 tb_user,内容如下: name age sex jack 22 男 rose 21 女 tom 20 男 ... ... ... 执行SQL语 ...

  5. Expert 诊断优化系列------------------内存不够用么?

    现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高.软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治.开发人员解决数据问题基本又是 ...

  6. Expert 诊断优化系列------------------冤枉磁盘了

    现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高.软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治.开发人员解决数据问题基本又是 ...

  7. Expert 诊断优化系列------------------语句调优三板斧

    前面三篇通过CPU.内存.磁盘三巨头,讲述了如何透过现在看本质,怎样定位服务器三巨头反映出的问题.为了方便阅读给出链接: SQL SERVER全面优化-------Expert for SQL Ser ...

  8. Expert 诊断优化系列------------------透过等待看系统

    上一篇我们简单的介绍了,语句优化的三板斧,大部分语句三板斧过后,就算不成为法拉利也能是个宝马了.为了方便阅读给出系列文章的导读链接: SQL SERVER全面优化-------Expert for S ...

  9. Expert 诊断优化系列------------------给TempDB 降温

    前面文章针对CPU.内存.磁盘.语句.等待讲述了SQL SERVER的一些基本的问题诊断与调优方式.为了方便阅读给出导读文章链接方便阅读: SQL SERVER全面优化-------Expert fo ...

随机推荐

  1. Spark学习笔记1:Application,Driver,Job,Task,Stage理解

    看了spark的原始论文和相关资料,对spark中的一些经常用到的术语做了一些梳理,记录下. 1,Application application(应用)其实就是用spark-submit提交的程序.比 ...

  2. Python+selenium测试环境成功搭建,简单控制浏览器(firefox)接下来,继续学习其他浏览器上的测试环境搭建;学习Python语言,利用Python语言来写测试用例。加油!!!

    Python+selenium测试环境成功搭建,简单控制浏览器(firefox)接下来,继续学习其他浏览器上的测试环境搭建:学习Python语言,利用Python语言来写测试用例.加油!!!

  3. 动软生成器添加Mysql注释

    1.解决没有mysql注释问题 替换原文件下载地址 2.更新Models模板 <#@ template language="c#" HostSpecific="Tr ...

  4. (转)淘淘商城系列——Redis持久化方案

    http://blog.csdn.net/yerenyuan_pku/article/details/72858975 Redis中设置key的过期时间 Redis中的expire命令用于设置key的 ...

  5. Vue核心知识-computed和watch的使用场景和方法

    https://www.jianshu.com/p/bb7a2244c7ca

  6. Vue2.0 —生命周期和钩子函数

    vue生命周期简介 咱们从上图可以很明显的看出现在vue2.0都包括了哪些生命周期的函数了. 生命周期探究 对于执行顺序和什么时候执行,看上面两个图基本有个了解了.下面我们将结合代码去看看钩子函数的执 ...

  7. Python isdigit() 方法检测字符串是否只由数字组成

    Python isdigit() 方法检测字符串是否只由数字组成

  8. LTTng

    Waiting for dig... http://frederic-wou.net/lttng/

  9. Eureka组件、Eureka自我保护模式

    Eureka包含两个组件:Eureka Server和Eureka Client   Eureka Server提供服务发现的能力,各个微服务启动时,会向Eureka Server注册自己的信息(例如 ...

  10. [Luogu] P3225 [HNOI2012]矿场搭建

    题目描述 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之 ...