linux cpu频率和AVS调压等级
1,linux常见的cpu频率对应的电压等级对应参数表如下:
频率(GHz) | 电压(V) |
---|---|
1.6 | 1.4 |
1.4 | 1.2 |
1.2 | 1.0 |
1.0 | 0.8 |
2,avs调压的几种方式
linux内核宏解释
Linux内核中,AVS调压的实现依赖于一些宏定义和配置选项,这些宏定义帮助内核模块化地管理电源策略。以下是几个相关的宏:
(1)default_gov_userspace
- 定义:
default_gov_userspace
是一个内核配置选项,用于将默认的电源管理策略设置为userspace
。 - 作用:
userspace
策略允许用户程序通过/sys/devices/system/cpu/cpufreq/
目录下的文件手动调整CPU的频率和电压。这对于需要精细控制功耗和性能的场景非常有用。 - 配置方式:在内核配置中启用该选项:
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y<span data-allow-html data-gradient="true" style="opacity: 0.6">`</span><span data-allow-html data-gradient="true" style="opacity: 0.5">`</span><span data-allow-html data-gradient="true" style="opacity: 0.39999999999999997">`</span>
(2)CPUFREQ_GOV_PERFORMANCE
:定义performance
策略,始终以最高频率和电压运行。
(3)CPUFREQ_GOV_POWERSAVE
:定义powersave
策略,始终以最低频率和电压运行。
(4)CPUFREQ_GOV_ONDEMAND
:定义ondemand
策略,根据系统负载动态调整频率和电压。
# 查看当前CPU频率
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
# 查看CPU支持的所有频率
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
# 查看当前电压(部分系统可能不支持)
cat /sys/class/power_supply/CPU_Voltage/voltage_now
3,手动设置策略和其他参数
echo userspace > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
手动设置频率
echo 1600000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_setspeed
查看电压范围
cat /sys/kernel/debug/regulator/vdd-cpu/min_uV
cat /sys/kernel/debug/regulator/vdd-cpu/max_uV
4,设备树cpu频率相关设置
&pmu {
compatible = "arm,pmu";
reg = <0x1000 0x1000>;
clocks = <&clk_core>;
voltage-range {
compatible = "regulator-voltage";
regulator-name = "vdd-cpu";
regulator-min-microvolt = <800000>; // 最低电压 800mV
regulator-max-microvolt = <1200000>; // 最高电压 1200mV
regulator-always-on;
};
};
regulator-min-microvolt
和regulator-max-microvolt
:定义电压调节范围,单位为微伏(µV)。
clocks
:定义CPU时钟源,用于频率管理。
(2)频率与电压的对应关系
cpu-frequency-table {
compatible = "cpu-frequency-table";
frequency-voltage {
freq-1 = <1600000 1200000>; // 1.6GHz 对应 1200mV
freq-2 = <1400000 1100000>; // 1.4GHz 对应 1100mV
freq-3 = <1200000 1000000>; // 1.2GHz 对应 1000mV
freq-4 = <1000000 900000>; // 1.0GHz 对应 900mV
};
};
5,代码分析