作者| Sigmastar技术运营官
本次专题主要讲解电压与频率如何配置和使用。
电压,频率,温度 与DVFS
DVFS全称Dynamic Voltage and Frequency Scaling,即动态电压频率调整。这项技术可以根据芯片运行的应用程序的计算需求,动态调整电压和频率,从而达到节能的目的。
Cpufreq技术其实也就是软件根据系统的负载,动态的去调整电压和频率来平衡性能和功耗。
总体而言,Cpufreq包含两部分内容,一是策略部分,该部分与具体CPU无关;而是driver部分,与具体平台实现策略有关系。
ssd20x/ssd22x默认策略 ondemand
主要的策略,如下表所示:
策略名 策略说明 ondemand 平时以低速运行,系统负载提高时按需提高频率 performance CPU以最高频率运行。
简单讲:ondemand 按需快速动态调整CPU频率, 一有cpu计算量的任务,就会立即达到最大频率运行,等执行完毕就立即回到最低频率。
hw配置
涉及到电压和频率配置如下:默认支持1个pgio口,实现两种电压的控制。不同的电压支持不同的cpu 频率。以222d为例pioneer3.dtsi。
用户层接口位置:
/sys/devices/system/cpu/cpufreq/policy0
voltage_available:支持电压
cat /sys/devices/system/voltage/core/voltage_available
Vcore(mV) vid_0(85)
[0] 900 0
[1] 1000 1
scaling_available_frequencies:可用频率
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies
800000 1000000
scaling_driver:则会显示该 CPU 所使用的变频驱动程序
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
Mstar cpufreq
scaling_governor:则会显示当前的管理策略,往这个上echo其他类型会有相应的转变。
scaling_max_freq 最大调节频率
scaling_min_freq:最小调节频率
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
800000
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
1000000
scaling 驱动程序
kernel\drivers\sstar\cpufreq\pioneer3\cpufreq.c 核心实现如下 获取cpu温度: cat /sys/devices/virtual/mstar/msys/TEMP_R
static int g_sCurrentTempThreshLo = 40;
static int g_sCurrentTempThreshHi = 60;
static int monitor_temp_thread_handler(void *data)
{
while (!kthread_should_stop())
{
msleep_interruptible(1000);
g_sCurrentTemp = ms_get_temp();
#ifdef CONFIG_SS_VOLTAGE_CTRL
if(get_core_voltage() > VOLTAGE_CORE_900 && g_sCurrentTemp > g_sCurrentTempThreshHi )
set_core_voltage(VOLTAGE_DEMANDER_TEMPERATURE, VOLTAGE_CORE_900);
if(get_core_voltage() < VOLTAGE_CORE_1000 && g_sCurrentTemp < g_sCurrentTempThreshLo )
set_core_voltage(VOLTAGE_DEMANDER_TEMPERATURE, VOLTAGE_CORE_1000);
#endif
}
return 0;
}
相应sys的接口位置:
策略和驱动使用总结:
1. 如果有高负载任务,内核按照ondemand的策略,按最高频率运行。内核电压自动提升。
2. 如果是低负载任务,内核按照ondemand的策略,按最低频率运行。内核电压降低。溫度/電壓控制实现:
--當溫度低於攝氏40度,會升壓到1.0V
--當溫度高於攝氏60度,會降壓到0.9V
--溫度介於40~60度,不會有動作
》》原帖地址
End.
往期回顾
微信刷掌支付搭载SSC9351Q
星宸科技智能门锁方案介绍
SSD222Q在工业HMI中的新应用
星宸科技智能网关方案介绍
星宸科技智能家居全家桶介绍
扫码进入论坛
原厂答疑|产品选型|官方资源
扫码咨询客服
SDK下载|芯片、开发板购买