移动智能设备功耗优化系列--前言(NVIDIA资深project师分享)
本文是嵌入式企鹅圈原创团队成员、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师分享)的更多相关文章
- 推荐:Java性能优化系列集锦
Java性能问题一直困扰着广大程序员,由于平台复杂性,要定位问题,找出其根源确实很难.随着10多年Java平台的改进以及新出现的多核多处理器,Java软件的性能和扩展性已经今非昔比了.现代JVM持续演 ...
- Mysql优化系列之查询性能优化前篇1
前言 这是优化系列的最后一篇的第1小篇,我们其实可以直接从sql怎么写讲起,why not?但是我还是决定花2个篇幅 问一些问题,带着几个问题循序渐进的往下走. 一个sql语句是怎么被执行的? sql ...
- [MySQL性能优化系列]提高缓存命中率
1. 背景 通常情况下,能用一条sql语句完成的查询,我们尽量不用多次查询完成.因为,查询次数越多,通信开销越大.但是,分多次查询,有可能提高缓存命中率.到底使用一个复合查询还是多个独立查询,需要根据 ...
- [MySQL性能优化系列]巧用索引
1. 普通青年的索引使用方式 假设我们有一个用户表 tb_user,内容如下: name age sex jack 22 男 rose 21 女 tom 20 男 ... ... ... 执行SQL语 ...
- Expert 诊断优化系列------------------内存不够用么?
现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高.软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治.开发人员解决数据问题基本又是 ...
- Expert 诊断优化系列------------------冤枉磁盘了
现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高.软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治.开发人员解决数据问题基本又是 ...
- Expert 诊断优化系列------------------语句调优三板斧
前面三篇通过CPU.内存.磁盘三巨头,讲述了如何透过现在看本质,怎样定位服务器三巨头反映出的问题.为了方便阅读给出链接: SQL SERVER全面优化-------Expert for SQL Ser ...
- Expert 诊断优化系列------------------透过等待看系统
上一篇我们简单的介绍了,语句优化的三板斧,大部分语句三板斧过后,就算不成为法拉利也能是个宝马了.为了方便阅读给出系列文章的导读链接: SQL SERVER全面优化-------Expert for S ...
- Expert 诊断优化系列------------------给TempDB 降温
前面文章针对CPU.内存.磁盘.语句.等待讲述了SQL SERVER的一些基本的问题诊断与调优方式.为了方便阅读给出导读文章链接方便阅读: SQL SERVER全面优化-------Expert fo ...
随机推荐
- SuperSocket学习笔记(一)-一个完整的例子
一.什么是SuperSocket 以下是作者的介绍 执行以下命令,获取SuperSocket项目 $ git clone https://github.com/kerryjiang/SuperSock ...
- Position属性四个值:static、fixed、absolute和relative的区别
1.static(静态定位):默认值.没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明). 2.relative(相对定位):生成相对 ...
- activity生命周期知识点整理
activity生命周期知识点整理 Activity: 是一个应用组件,用户可与其提供的屏幕进行交互.窗口通常会充满屏幕,但也可以小于屏幕并浮动在其他窗口之上. 一个activity的什么周期: 启动 ...
- webSql的简单小例子
初始化websql数据库的参数信息 var config = { name: 'my_plan', version: '', desc: 'manage my plans', size: 20 * 1 ...
- 主库binlog(master-log)与从库relay-log的关系
主库binlog: # at # :: server id end_log_pos CRC32 COMMIT/*!*/; # at # :: server id end_log_pos CRC32 e ...
- 字符集编码---3 Windows BOM
Windows平台下存储Unicode格式的文件时,会在文件头插入2到3字节的文件头.这个文件头就是BOM(Byte Order Marks). 这个文件头在Unicode中,无对应符号.所以不必担心 ...
- 【译】x86程序员手册31- 第9章 异常和中断
Chapter 9 Exceptions and Interrupts 第9章 异常和中断 Interrupts and exceptions are special kinds of control ...
- 10.5 集合ArrayList 和 io流
1.ArrayListToFile package day10_io_fileWrite_Read.arraylist_tofile; import java.io.BufferedWriter; i ...
- C# Task详解
1.Task的优势 ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便.比如: ◆ ThreadPool不支持线程的取消.完成.失败通知等交互性 ...
- Executors工厂类
newCachedThreadPool 重用之前的线程 适合执行许多短期异步任务的程序. 调用 execute() 将重用以前构造的线程 如果没有可用的线程,则创建一个新线程并添加到池中 默认为60s ...