iTOP-iMX6UL開發(fā)板-動態(tài)調(diào)頻技術(shù)文檔分享
本文檔以 iMX6UL為例,簡單介紹 cpufreq 的 5 種模式。
在 imx6ul 的 menuconfig 中,進入
CPU Power Management --->
CPU Frequency scaling --->
Default CPUFreq governor (ondemand) --->
中,如下圖所示,可以看到有 5 個選項。 這 5 個選項,可以將 cpu 的頻率設(shè)置為不同的
管理模式,默認(rèn)設(shè)置的是 ondemand 模式。
cpufreq 是一個動態(tài)調(diào)整 cpu 頻率的模塊,系統(tǒng)啟動時會生成
“/sys/devices/system/cpu/cpu0/cpufreq/ ”,如下圖所示,是 imx6ul 文件上的
cpufreq 文件夾。
以上參數(shù)可以通過 cat 命令,例如:
“cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor”可以獲取當(dāng)前
CPU 頻率的模式。作者機器當(dāng)前模式是“ondemand”,也就是動態(tài)調(diào)頻模式。
其它參數(shù):
cpuinfo_cur_freq 為當(dāng)前頻率;
cpuinfo_max_freq 為最大頻率;
scaling_min_freq 為最小頻率;
scalin_governor 為當(dāng)前模式。
在動態(tài)調(diào)頻模式下,state 下的 time_in_state 可以查詢 cpu 整個運行周期中,在不同頻
率下運行時間的比例。
以下簡單介紹各種模式,用戶可以根據(jù)需求,在不同模式下運行。
performance 模式:將 CPU 頻率固定工作在其支持的最高運行頻率上,而不動態(tài)調(diào)節(jié)。
powersave 模式:將 CPU 頻率固定在“省電”模式,也就是最低頻率。
以上兩種,一種是極端效率,一種是極端低功耗。
Userspace 模式:用戶可以在用戶態(tài)調(diào)整頻率,用戶在應(yīng)用或者在系統(tǒng)啟動階段,可以進
入這種模式,來設(shè)置頻率。
ondemand 模式:這種模式會依據(jù)需求來調(diào)整頻率,例如 ul 有三種頻率:198000、
396000 和 528000,在有大量計算量的情況下,會立即達到最高頻率,在運算完成就會立即
回到最低頻率。
conservative 模式:和 ondemand 對比,這種模式下,系統(tǒng)會平滑地調(diào)整 CPU 頻率,
頻率的升降是漸變式的,而不是在大量計算到來就立即進入最高頻率。
接著可以嘗試配置這幾種模式,驗證一下。
測試 Userspace 模式,使用“echo userspace >
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor”命令可以進入 Userspace 模
式,這樣就可以在用戶態(tài)調(diào)整頻率,使用命令“echo 528000 >
/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed”可以配置為 528000,如下圖
所示。
測試 powersave 模式,使用命令“echo powersave >
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor”配置為最低功耗模式。然后
就能發(fā)現(xiàn)頻率降低到最低。
測試 performance 模式,使用命令“echo performance >
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor”,如下圖所示。配置為最高
頻率模式,理所當(dāng)然頻率九尾最高 528000 了。
測試下 ondemand 動態(tài)調(diào)頻模式,如下圖所示,可以使用命令“cat
/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state”查看各種頻率運行占用的時
間長度。作者因為調(diào)整過多次頻率,528000 看起來比例較高,實際上默認(rèn)這種系統(tǒng),不運行
程序,大部分時間都是 198000 頻率。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。