淺談手機的電源管理 - 手機討論

Isla avatar
By Isla
at 2015-05-04T01:56

Table of Contents

小弟才疏學淺,有鑑於對手機相關的資訊有些興趣
故寫了此編文章與大家分享。


在此我們先不討論Battery capacity, 而是單純評估整體手機的耗電量.
耗電跟效能彼此之間就是trade off,如何取得平衡就是一門很深的學問(跟婆媳一樣?)
以下分類四個topic 來做討論

要是前兩篇讓你看到一個頭兩個大,請直接跳三XD

一 HW 規格
1.手機CPU規格與其元件

要知道巧婦難為無米之炊,假設手機先天使用的元件是不好的。那麼再強的SW tuning
可以降低功耗的效果就有限。
其中最重要的幾個元件不外乎如下
1.1 CPU/GPU
目前知名被管泛使用的手機CPU 大廠 有1.QCOM 2.MTK 3.Samsung exynos.4.Intel
5.海思.各家CPU 大廠大多都有高中低三階對應的產品線。

QCOM目前在市場上領先的主要原因是其Modem 與CPU的整合性以及許多手機相關的專
利.但是八核CPU功耗的控制依舊有很多加強的空間(S615 and S810 就是個範例)

MTK可以在大陸吃得開憑藉著是total solution 以及價格/效能的高cp值,可以讓手
機廠快速利用公版生產手機。但是關於認證、相關的專利以及GPU還是跟qcom有一段的
差距,歐美市場就是一個努力的目標。

Samsung 雖在modem 的整合度以及專利劣於高通,但是傾全國之力的公司產業。在
CPU性能上一直有著強大的競爭力(這次的4x-A57,4x-A53 的功耗就擊潰了S810)光生產
Samsung手機就是個大補丸

手機廠的HW and SW architecture 都會根據CPU廠商提供的SPEC還有test report 來
評估使用效能與功耗。給予Project team的人,面對現在手機的市場該選用那顆cpu來
做評估。當然這只是survey報告。通常會不會選用可能有很多因素,舉凡是市場趨向
、價格帶、跟廠商的關係以及戰略上的考量等原因。
舉個簡單的範例如下
1.在大陸出手機低階產品會優先考量mtk 而歐美低價手機也不會考慮mtk.
2.大部分廠商不會使用Samsung exynos
就像大部分公司不會選擇exynos 一樣。


1.2 Display
對其沒有研究. 但display 在正常screen on 的情況底下。絕對是除了cpu之外耗電
的大客戶之一.有無RAM buffer 也是影響的關鍵之一.好壞的panel 的差距可能是
100mA 以上的gap.


1.3 周邊相關的原件
舉凡是camera module , BT and WIFI and GPS solution. Audio/Video and
Sensor 等



二 SW Tuning
軟體針對已經規劃好規格的手機產品,就會對基本的HW SPEC 做tuning 來完成該有的
target.

***要省電唯一重點:不該用的時候,就要把相關的元件關掉或是進入省電模式。
該用的時候,就要用到剛好的力度就可以完成一樣的工作來達到省電。

常見的幾個測試.

1.Display idle case
在螢幕開啟的時候,當frame沒有更新的時候,有些panel可以進idle mode 讓Display
耗電量大幅降低

2.Display off
螢幕關闢的時候,此時display相關的module 應該讓panel 進入low power mode 達到
省電功能。

3.CPU idle
CPU可能有所謂的idle mode(要看HW chip 是否支援),即使在screen on 的情況下,要
是沒有頻率很高的task 在運作,有機會進入idle 達到省電。

4.CPU suspend
Userspace and kernel space 沒有任何wake lock 或是task 在運作,cpu 能夠進入
suspend mode 達到低功耗的標準。此時,各相關元件應該也要進入low power mode 達
到省電效果,除非有必要的功能必須等待cpu interrupt 喚醒(即使在這個mode,該元件
耗電量也不能太高)這時候應該就只剩下sub-system alive
舉個範例,假設現在打開touch panel 能夠接收到使用者滑動或是點擊的event 需要讓
touch panel 切換到active mode. 那這個耗電量假設是20mA.在CPU suspend 狀況下,
不需要接收touch event. touch driver 就該通知到touch 這個chip 讓他到low power
mode 來達到省電(可能就只有10uA甚至更低)。更進階的來說,假設touch在screen off
就不該有接受touch event 的功能,就該讓display off 這個條件成立的時候,馬上就
關掉touch event 達到省電(因為關螢幕不等同cpu suspend)


5.Flight mode on
關掉Modem , WIFI etc. 此時也收不電話。進入更省電的模式

6.Camera related
拍照,錄影針對不同的resolution跟模式,有對應的耗電量跟spec.通常跟camera
moduel and CPU 有關

7.Audio/Video
針對不同的解析度跟狀況,有對應的SPEC.通常都跟CPU 和solution有關.

8.Phone call
跟modem , system overall tuning 有關

9.WIFI,BT,GPS
跟solution and system overall tuning 有關

10.Browse
跟Browse Application and system overall tuning 有關

11.Game
跟Application , CPU and System overall tuning 有關

12.Daily use
跟System overall and user 下載的app 有關

SW 要做到的事,就是一開始的大原則

1.要省電唯一重點:不該用的時候,就要把相關的元件關掉或是進入省電模式。
這個是各Driver and feautre owner 的責任,必須各Developer 了解其負責的部分來
達到省電的工作。這個不管是Application/Service , framework and Driver 都必須
要互相配合才能做到好。
舉凡例子如下

1.1 一個APP 的開發者為了某些功能的應用使用系統的API 讓CPU 在某個條件下不能
suspend 讓他的功能可以正常運作。就以APP 角度就必須考慮得當,必須想好各種use
case. 有沒有可能在某些條件下,根本在沒用到這個功能的時候也讓CPU 睡不下去達
到耗電的結果。
1.2 Driver 就該評估其component 必須在各種情況底下切換到對應的模式來到功能和省
電的效果。必且考慮各種case 甚至是error handling. 不會在特殊條件下,讓Chip
處於耗電的狀況。

2.該用的時候,就要用到剛好的力度,就可以完成一樣的工作來達到省電。
說似簡單,其實超難。各家cpu廠and手機廠 都為了調整出最好的結果大傷腦筋
大部分peformance team 就是針對各種use case 調整Policy 去plug/unplug cpu/gpu
and adjust cpu frequqnece/gpu 以高通來講,原廠就有mpdecision 在針對useage 來
做cpu 的調整。 當然各家手機廠會再針對各種case fine tune 參數。

手機溫度/耗電/效能之間的平衡永遠都是很難處理的問題。因為牽涉的東西太廣,手機
的各個元件可能都有其特性必須針對各種case 調整。看看現在最熱門的S810. CPU/GPU
spec很強,但是A57高頻率一開,很快就過熱,thermal table 就馬上做反應unplug cpu
and lower frequency 導致出來的結果在some case比S801還爛,要是不針對thermal
table 做調整可能手機溫度會過高讓使用者感覺不適。一調整performance drop 又被
抱怨不順的窘境。遇到這種Case. 除非找到問題的root cause 必且解決(應該在CHIP
layer),即使是SW改動cpu scheduler 都不見得可以完全解決問題。


三 User Q&A

Q1:常常遇到很多人說,不要亂安裝一些大陸app或是系統優化的程式。或是當你遇到突然
耗電的時候就先回復原廠設定,就能夠解決問題。Why?


A1:最主要原因如下。

通常耗電有兩種Case,
1. 螢幕打開的時候再做一些事情感到特別耗電.
2. 螢幕關掉的時候,手機甚麼都沒做但是就特別耗電.

針對1. *就是有特殊的application or service 在使用其功能的需要複雜的運算跟大
量資料處理,導致必須要掛起多個cpu 並且調高頻率才能應付該功能使用。
例如大型的網路線上遊戲,他需要wifi/4g 做資料與sever 的sync. 以及高解
析度畫面的處理以及運算(掛起多個cpu and gpu).

*那個application 寫的濫,爛的code 可能讓程式在busy waiting 或是卡在
某個地方,而不是在處理必要的task.還記得以前的candy crash (好久沒玩不
知道改正沒)。立意良好寫了好幾個thread 在run. 但是自己造成deadlock 導
致只有兩顆cpu 的手機hang 住(當時他開了三個thread XD)
*刀塔傳奇,在Android L 下,不良使用API 導致開啟audio 的時候,超級
lag.

針對2. 就是Application 針對特殊的功能讓系統無法休眠(cpu can't suspend) 給大
家一個大概的數字概念(假設cpu suspend 狀況,大概是4mA~6mA)
而假設application 咬住讓系統不能休眠,那都是xxmA 以上的消耗量。這樣
user 就會感受到怎麼我手機擺著睡覺,一叫醒來電池%大幅縮減.這種幾乎都是
case2.


Q2:要怎麼使用相關的設定來達到省電的功能

A2:這取決於你要怎樣的手機功能,以下舉出幾個例子讓大家體會一下。

現在很多手機廠商都有所謂Power saving mode. 那這些mode 不外乎最主要就是調整
cpu 最高頻率跟開啟的個數,Display brigtness. or no vibration for some case.
系統廠商針對許多user 不會影響user experience 的東西,做一些power mode 的設
定。你可以針對個人的需求來啟動這些設定達到節能的效果。例如你可以手動調整
display 的亮度在setting,你可以disable auto rotation 在你不需要這個feature. 你可以關掉3g/wifi 在你不使用網路的時候。
你可以在睡覺會或是會議的時候開啟飛安模式。你不需要使用GPS定位,把設定的位置
關掉。當然關闢這些功能,前提是你不需要這些東西。 重點還是,不要用就不要開,
這才能省電.


Q3:有啥方法可以察覺是否這個APP 是耗電的

A3:最簡單的是使用經驗,突然安裝了某個APP 之後耗電增加,或是某次APP 改版後耗電
增加.
舉個簡單例子
1.有些明顯的APP 就是讓user 可以在螢幕關掉的時候還有一些功能上的運作,而這些
運作APP 寫不好可能會讓CPU 不能睡。常見的就是fitness 相關的APP, 像是紀錄走
路步數。判斷使用者姿態,睡眠習慣、光驅鎖等。一些用到sensor 的APP 假設沒有
正確的使用都可能導致嚴重耗電(Sensor 開啟本身就會額外耗電,要是還影響cpu不
能睡,那耗電量會大大增加)
2.某次Google 的GMS 升版,當location enable. 就額外開啟一些sensor 來判斷一些
activity 導致額外的耗電。
3.想想看一些APP 的notification. 像是Line 的提醒,你要enable 這些功能就必須
定期的query data. 一定比沒打開這些功能來的耗電。


四 Benchmark

最後我想跟大家說一聲。
不要再迷信安兔兔或是各種benchmark.
因為它代表的涵義只有一個- 這顆chip 最操可以幾分。除非你在意的是這個遠大於你使
用上真正的感受。那就下載他吧@@

而且現在普遍大廠都會針對benchmark 做white list.
調整thermal table 跟cpu 調頻的機制。 跟正常use case 已經偏離。

有件事情很好玩,大家可以思考一下。

1. 這個手機針對benchmark 有作弊且跑分高-> 那你跑出來都是假的。跑也是跑爽的跟正
常user case 沒關
2. 這個手機針對benchmark 有作弊但是分數不一定 -> 就都作弊不可信,跑很多次最終
還是要屈服cpu 溫度而妥協。
3. 這個手機沒作弊,但是為了跑分高,讓cpu 處於高效能。 -> 並不是最佳的使用方式
,反而有可能是最糟的結果。正常user case 也是高頻反而耗電。
4. 這個手機沒作弊,但是跑分低。 -> 不一定代表一般use case 不好。單純是跟有作弊
或是常常high performance 的policy 比分數低而已。

所以大家要注意的評測反而是各種use case 的測試報告 而不是benchmark.

如果有手機廠商為了討好消費者選擇上述3的option 那反而是對消費者最糟糕的結果。


有時間再寫其他篇幅.

--
Tags: 手機

All Comments

Elizabeth avatar
By Elizabeth
at 2015-05-04T13:02
對於一般用手機的人真的只有(三)看得懂XD 前面牽涉到太多術語像是OS的...
Candice avatar
By Candice
at 2015-05-05T00:08
好文
Heather avatar
By Heather
at 2015-05-05T11:14
寫作功力太弱...我以為只要懂單字應該都會懂Q_Q
Lydia avatar
By Lydia
at 2015-05-05T22:20
你要先假設USER完全不懂
Jessica avatar
By Jessica
at 2015-05-06T09:26
簡單來說,先天體質優良加上軟體調教得當可以得到一台效能優良且省電的手機(如m8)
Christine avatar
By Christine
at 2015-05-06T20:32
反之就像(m9)
Hamiltion avatar
By Hamiltion
at 2015-05-07T07:38
說了很多 但決多數莫名其妙背景喚醒才是真正惱人的問題
Annie avatar
By Annie
at 2015-05-07T18:44
原生 精簡化 偶爾也還是會遇到某個程序背景喚醒 偏偏又查不出是那個
Skylar Davis avatar
By Skylar Davis
at 2015-05-08T05:50
建議教學文少用縮寫(不然就先交待一下)
Donna avatar
By Donna
at 2015-05-08T16:56
5.是戰鬥模式嗎?
Ula avatar
By Ula
at 2015-05-09T04:02
翻成中文不影響理解,不會混淆的名詞建議多用中文
Robert avatar
By Robert
at 2015-05-09T15:08
要防止app亂喚醒就裝綠色守護就好啦
Kumar avatar
By Kumar
at 2015-05-10T02:14
Google GMS升級→當年Z表示心有戚戚焉
Hedda avatar
By Hedda
at 2015-05-10T13:20
感謝
Candice avatar
By Candice
at 2015-05-11T00:26
綠色守護要root才比較好用,沒root的話沒什麼用
Odelette avatar
By Odelette
at 2015-05-11T11:32
5應該是 flight?
Kelly avatar
By Kelly
at 2015-05-11T22:38
中英夾雜太多影響閱讀 不如純中文加標示或者純英文
Tracy avatar
By Tracy
at 2015-05-12T09:44
綠色守護沒root一樣好用 有root加付費是全解放
Kyle avatar
By Kyle
at 2015-05-12T20:50
專業..
Joseph avatar
By Joseph
at 2015-05-13T07:56
cp值寫反了
Sandy avatar
By Sandy
at 2015-05-13T19:02
綠色守護之類的用過 無解 wakelock detector查出的喚醒系統程序丟google也是無解
Delia avatar
By Delia
at 2015-05-14T06:08
並非是某個應用app本身在喚醒 而是某個app觸發了系統程序 所以前面我才會說是莫名奇妙的喚醒
Sarah avatar
By Sarah
at 2015-05-14T17:14
如果是應用app本身喚醒 那很好解
Yuri avatar
By Yuri
at 2015-05-15T04:20
推 用心好文 這反而會讓我想了解
Callum avatar
By Callum
at 2015-05-15T15:26
看得懂 以前修過OS的課
Oliver avatar
By Oliver
at 2015-05-16T02:32
作者使用大量專業語言,就沒有想讓一般人看懂的意思吧
Daniel avatar
By Daniel
at 2015-05-16T13:39
我寧願看全英文也不要這種中英夾雜的文章
Mia avatar
By Mia
at 2015-05-17T00:45
http://disp.cc/b/18-8FCY (Android Power Managem
Yedda avatar
By Yedda
at 2015-05-17T11:51
Rebecca avatar
By Rebecca
at 2015-05-17T22:57
irvingyeh85:我寧願看全英文也不要這種中英夾雜的文
Suhail Hany avatar
By Suhail Hany
at 2015-05-18T10:03
這不是專不專業的問題 而是大量中英混雜造成閱讀理解有障礙其實英文都很簡單 但是看起來就是超不順XDA一堆全英文專業文章看起來就是很順
Brianna avatar
By Brianna
at 2015-05-18T21:09
我以為要講充電 直接end
Lauren avatar
By Lauren
at 2015-05-19T08:15
看推文才發現還蠻多英文的,不過我閱讀起來蠻順的
Andrew avatar
By Andrew
at 2015-05-19T19:21
我是看得懂 但我賭9成的人end
Regina avatar
By Regina
at 2015-05-20T06:27
看得出原PO很用心寫 不過太多英文夾雜 大概是習慣
Agnes avatar
By Agnes
at 2015-05-20T17:33
電源管理(Power Management)是很重要(important)的
Emma avatar
By Emma
at 2015-05-21T04:39
一堆非terminology的english夾雜 故意秀english ?
Anonymous avatar
By Anonymous
at 2015-05-21T15:45
要不要收精華阿
Rachel avatar
By Rachel
at 2015-05-22T02:51
感覺很厲害XD 可是好難懂
Isla avatar
By Isla
at 2015-05-22T13:57
寫中文好嗎
Regina avatar
By Regina
at 2015-05-23T01:03
Emma avatar
By Emma
at 2015-05-23T12:09
這是我此生在ptt看過最中英夾雜又不順的一篇
Noah avatar
By Noah
at 2015-05-23T23:15
不是說台灣人賭爛英文好的人
Genevieve avatar
By Genevieve
at 2015-05-24T10:21
你在歐美講兩句法文夾幾個英文單字 絕對被臭臉
Jake avatar
By Jake
at 2015-05-24T21:27
不愛大量中英文章
Kyle avatar
By Kyle
at 2015-05-25T08:33
我看的很順說
Erin avatar
By Erin
at 2015-05-25T19:39
不錯就是這種介紹文才不浪費時間看
Donna avatar
By Donna
at 2015-05-26T06:45
應該是平常都用英文習慣了...
Elizabeth avatar
By Elizabeth
at 2015-05-26T17:51
希望原PO多寫點 以正視聽阿
George avatar
By George
at 2015-05-27T04:57
這篇要收精華區 謝謝原poexcellent work
Connor avatar
By Connor
at 2015-05-27T16:03
已收錄精華區
Aaliyah avatar
By Aaliyah
at 2015-05-28T03:09
這篇感覺很HTC= =...btw, 你沒寫PA
Necoo avatar
By Necoo
at 2015-05-28T14:15
文章寫得很好,軟硬體層面都有提到。感謝分享 推~
Zanna avatar
By Zanna
at 2015-05-29T01:21
然後,這些英文改成中文不會比較好懂,我是認真的= =
Eden avatar
By Eden
at 2015-05-29T12:27
有些地方還是可以改中文拉 不過大體上不改沒差
Yedda avatar
By Yedda
at 2015-05-29T23:33
工程寫法中英夾雜很正常阿,推內容,不過用電源管理當成標題有點不搭
Zenobia avatar
By Zenobia
at 2015-05-30T10:39
不過這種時候其實需要的是幹你教育部...
Elizabeth avatar
By Elizabeth
at 2015-05-30T21:45
感謝各位大大批評指教~英文單純是辭意上個人比較好
Dora avatar
By Dora
at 2015-06-03T14:41
表達,針對文字描述的確是一門藝術。會再次修正^^
Eartha avatar
By Eartha
at 2015-06-04T01:47
you的英文look起來very不錯
George avatar
By George
at 2015-06-04T12:53
換成日文應該就ok了
Mason avatar
By Mason
at 2015-06-04T23:59
推原PO用心,看得很順~ 有空把fight改回flight吧
Jack avatar
By Jack
at 2015-06-05T11:05
用心文,推
Catherine avatar
By Catherine
at 2015-06-05T22:11
感謝樓上提醒,已修正typo

各種價位的手機/平板列表

Tristan Cohan avatar
By Tristan Cohan
at 2015-05-01T13:36
※ 引述《Honorguard06 (震撼視界)》之銘言: 本篇暫時以MIKO手機館價格為主,僅做為價格參考並非推薦該店家 本次更新:第一週 主流品牌區、iOS/Windows Phone專區、台灣相關/高CP/特色手機區 第二週 主流品牌區、iOS/Windows Phone專區   ...

M9送修回來無法更新

Ophelia avatar
By Ophelia
at 2015-04-27T21:24
原文恕刪 鍵盤魯蛇在此 手機排版 http://ppt.cc/nGuu 這是你的問題 你遇到的狀況是Status 7 Error 用關鍵字餵咕狗後還找到蠻多資訊的 StackExchange的發問 http://goo.gl/XoxrVX HighOnAndroid的介紹 http://goo.gl/ ...

現在為什麼都沒人在說手機不能換電池

Adele avatar
By Adele
at 2015-04-25T14:36
做個不能換電池的就說廠商黑心、無良或十惡不赦我覺得真的滿有趣的 不能換電池講得好像廠商殺你全家似的 還有人出來說他覺得換電池不重要 就要推文罵人、說人邏輯有問題我覺得這些人才比較好笑 就他覺得了,你是想怎樣,還要規定別人的感覺才是沒邏輯吧 當然做成不能換電池一定有一部份是抑制 aftermarket 的考 ...

遠傳店長對我真好?

Gilbert avatar
By Gilbert
at 2015-04-25T12:27
4/20,至遠傳台北忠孝復興門市申辦4G 說有零元機(Desier 820 白橘) 因當下有事情在身不方便帶著到處跑 於是請店員幫忙寄送至家中 我於4/25 01:12AM跟管理員收取包裹,發現包裹異常的沈重 拿回家中拆開一看... http://i.imgur.com/ZHcGZUQ.jpg 於4/ ...

花兩萬多買M9的邏輯是?

Edwina avatar
By Edwina
at 2015-04-16T00:42
個人很好奇到底是什麼樣的人才會衝首購會買火腿腸的M9? 這支不就在出來之前就被預料到會大跳水了嗎== 我都覺得是常識了喇 而事實也確實如此 上市定價兩萬多 如今隔壁版金包銀二手價15000 通路說要下放17000 看來跌破801的手機價格真的指日可待 雖然我們會說早買早享受晚買享折扣 但早一 ...