STEP-WISE温控系统

2023-02-23 18:51:31 浏览数 (3)

本章节分析governor之一的step_wise。

1、基本术语概念

在介绍之前,先介绍几个术语概念来帮助大家理解:

1.1 trip point

可以理解为一个阈值吧,每一个温度区间的阈值可以理解为一个trip point。

1.2 cooling state

可以认为是温控调节的下一目标的索引,以频率调整为例,state =1 对应100MHZ,state=2表示200MHZ,即通过该值可以找到目标频率,如果是其他方法类似。

1.3 zone device state

表示zone device 当前温度的状态,比如我们可以把state分为4种状态:cold、normal、hot、critical,分别对应温度区间为:

Cold: temperature <= 3°C,对应温控策略通常升压提频,以达到升温的目的。

Normal: temperature > 3°C && temperature <= 50°C,对应策略通常为持续监控,电压和频率暂不做调整

Hot: temperature > 50°C && temperature <= 80°C,对应策略为降压降频,同时监控周期缩短

Critical: temperature > 80°C,对应策略一般为重启系统

2、Governor实现介绍

step_wise 算法在计算 target cooling state 的过程中,除了需要知道是否 throttle,还添加了一个 trend 作为参考条。trend 表示温升趋势,Linux Thermal Framework 定义了五种 trend type,见 enum thermal_trend,即稳定(THERMAL_TREND_STABLE), 上升(THERMAL_TREND_RAISING), 下降(THERMAL_TREND_DROPPING), 最高温线(THERMAL_TREND_RAISE_FULL),最低温线(THERMAL_TREND_DROP_FULL)。

step_wise governor 对于 cooling_state 选择的策略:

1)当前温度大于当前trip point时

a. if the trend is THERMAL_TREND_RAISING, use higher cooling state for this trip point

b. if the trend is THERMAL_TREND_DROPPING, do nothing

c. if the trend is THERMAL_TREND_RAISE_FULL, use upper limit for this trip point

d. if the trend is THERMAL_TREND_DROP_FULL, use lower limit for this trip point

2)当前温度小于当前trip point时

a. if the trend is THERMAL_TREND_RAISING, do nothing

b. if the trend is THERMAL_TREND_DROPPING, use lower cooling state for this trip point, if the cooling state already equals lower limit, deactivate the thermal instance

c. if the trend is THERMAL_TREND_RAISE_FULL, do nothing

d. if the trend is THERMAL_TREND_DROP_FULL, use lower limit,if the cooling state already equals lower limit,deactivate the thermal instance

step_wise governor 是每个轮询周期逐级提高冷却状态,是一种相对温和的温控策略。

3、step_wise governor执行流程

1 人点赞