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