本文是嵌入式企鹅圈原创团队成员、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. Winform学习知识汇总

    引用博客 http://www.cnblogs.com/peterzb/archive/2009/06/14/1502918.html

  2. System.AppDomain类详解(一)

    AppDomain是CLR(Common Language Runtime:公共语言运行库),它可以加载Assembly.创建对象以及执行程序. AppDomain是CLR实现代码隔离的基本机制. 每 ...

  3. java excel poi导入 过滤空行的方法 判断是否是空行

    private boolean isRowEmpty(Row row){ for (int c = row.getFirstCellNum(); c < row.getLastCellNum() ...

  4. Pro ASP.NET Core MVC 第6版 第二章(后半章)

    增加动态输出 整个web应用平台的关注点在于构建并显示动态输出内容.在MVC里,控制器负责构建一些数据并将其传给视图.视图负责渲染成HTML. 从控制器向视图传递数据的一种方式是使用ViewBag 对 ...

  5. 2星|《约见投资人》:A股上市公司软文集

    约见资本人:58家上市公司创始人亲述创业之路 全书写了58个A股上市公司的故事,基本是宣传上市公司老总的软文.基本的套路是创始人历尽苦难创立了公司,取得了好业绩.最希望看的分析与数据几乎没有.看了一小 ...

  6. 8月中旬之后的学习计划 --- react

    这段时间快活了,放纵了,玩hi了,接下来该好好的学习新知识了. 鉴于目前业界比较火的前端js框架有react.vue,决定先从react开始学习.之前有简单的接触过它的一些基本的语法知识,这次准备全面 ...

  7. CAD把当前图形保为一个jpg文件(com接口Delphi语言)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 procedure TForm2.Button1Click(Sender: TObje ...

  8. java基础——String的常用方法

    java中String的常用方法 1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); i nt le ...

  9. HDU - 2050 - 折线分割平面(数学 + dp)

    题意: 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分 思路: 记住结论.. ...

  10. FileWriter实现从一个文件中读取内容并写到另一个文件中

    FileWriter和FileOutputStream都是向文件写内容,区别是前台一次写一个字符,后者一次写一个字节 package com.janson.day20180827; import ja ...