安卓温升thermal介绍
Thermal背景
??????? 現在快充技術和手機處理器能力的不斷提升,都帶來了手機端發熱的加重,越重載,越發熱;越高功率(主要是大電流),越發熱。而如果我們在溫度升到門限時降低了充電功率,自然就可以降低發熱,從而使手機溫度下降了。這樣升升降降,就建立一個動態平衡的過程。
Thermal模塊主要負責溫度控制,溫度低時想辦法升溫,溫度高時想辦法降溫,甚至復位系統。工作流程的核心是:實時監控溫度和檢查是否達到觸發條件。Linux kernel有個通用的思想就是抽象分層,比如把該子系統所有資源和信息綜合在一起的一層叫core層,不同的設備的操作叫device層,對設備的操作的屏蔽層叫driver層或者governor。同樣thermal子系統也是采用了該思想:核心為 thermal_core,可以獲取溫度的設備抽象為 thermal_zone_device, 如Temp Sensor、NTC(板上的熱敏電阻)等??刂茰囟鹊脑O備抽象為 thermal_cooling_device, 如風扇、CPU、DDR、GPU等。溫控策略抽象為 thermal_governor,比如 step_wise、bang_bang 等。
Thermal_cooling_device 對應系統實施冷卻措施的驅動,是溫控的執行者。cooling device 維護一個 cooling 等級,即 state,一般 state 越高即系統的冷卻需求越高。cooling device 根據不同等級的冷卻需求進行冷卻行為。cooling device 只根據 state 進行冷卻操作,是實施者,而 state 的計算由 thermal governor 完成。結構 struct cpufreq_cooling_device 和 struct devfreq_cooling_device 作為對 thermal_cooling_device 的擴展,分別主要在 cpufreq_cooling.c 和 devfreq_cooling.c 中使用。
Thermal子系統概述
thermal子系統是內核提供的溫控管理框架,一套軟件溫度解決方案,配合ic內部溫度傳感器,對ic溫度進行管控,保證系統穩定性。? thermal系統多用于對ic內部的重點發熱模塊的功能管控,如cpu、gpu。
?thermal sensor驅動負責讀取硬件溫度sensor的溫度,并傳給thermal 子系統,thermal子系統將根據調控對象的溫度,決定是否觸發對應的冷卻措施,如限制CPU最大工作頻率,以及CPU打開的核數等,從而實現對系統的冷卻。
Thermal的主要框架
要實現一個溫度控制的需求,試想一下我們是不是最少要有獲取溫度的設備和控制溫度的
設備這兩個最基本的東西?當然附帶的也會產生一些使用溫度控制設備的策略。
那上面這些東西在 Linux Thermal 框架中怎么體現呢?通過閱讀源碼我們發現代碼中對
上面的東西進行了一些抽象。
獲取溫度的設備:在 Thermal 框架中被抽象為 Thermal Zone Device;
控制溫度的設備:在 Thermal 框架中被抽象為 Thermal Cooling Device;
控制溫度策略:在 Thermal 框架中被抽象為 Thermal Governor
Thermal config運行時重載功能——可實現云控更新,體現的時及時響應,能快速將優化的config推送到手機。
總結
以上是生活随笔為你收集整理的安卓温升thermal介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [深入研究4G/5G/6G专题-58]:
- 下一篇: C语言基础-上