2. 热管理基础

在 Linux Thermal 与 Regulator 工程中,热管理并不是“温度高了就降频”这么简单。它本质上是一套围绕发热—传热—散热—控温建立的动态平衡系统。理解温度、功耗、散热、热阻、热容、结温等基本概念,是读懂内核 thermal zone、cooling device、trip point 以及 regulator 电压调节策略的前提。本节从物理量出发,建立后续驱动开发所需的共同语言。

一、核心物理量:从功耗到结温

芯片内部的温度通常用结温(Tj,Junction Temperature)表示,即半导体 PN 结所在位置的温度。它才是决定器件寿命、漏电流和可靠性的关键指标。我们常说的“CPU 温度”往往来自片上热敏二极管或外部传感器,是结温的近似值。

功耗是热量的来源。CMOS 电路动态功耗可近似表示为:

P = C × V² × f + P_static
其中:
  C        —— 等效负载电容
  V        —— 供电电压(Regulator 输出)
  f        —— 工作频率
  P_static —— 静态漏电功耗,随温度升高而增大

这个公式解释了为什么降压比降频更有效:电压以平方关系影响动态功耗。Regulator 在 DVFS(动态电压频率调节)中承担的关键角色,正是配合频率调整同步改变电压,从而在性能与发热之间取得平衡。

热量产生后,会沿着“芯片内部 → 封装 → 散热器 → 环境”的路径传递。描述这条路径阻碍程度的参数就是热阻(Rθ,Thermal Resistance),单位为 ℃/W。热阻越大,同样功耗下温升越高:

ΔT = P × Rθ
Tj  = Ta + P × (Rθ_jc + Rθ_ca)
其中:
  Ta     —— 环境温度
  Rθ_jc  —— 结到壳的热阻
  Rθ_ca  —— 壳到环境的热阻

与热阻对应的是热容(Cth,Thermal Capacitance),单位为 J/℃。它描述物体吸收热量后温度上升的“惯性”。热容越大,温度变化越慢。热阻决定稳态温升,热容决定瞬态响应速度。二者共同构成热系统的 RC 网络模型,这也是内核 thermal governor 进行预测和滞回控制的基础。

芯片热传递路径与热阻模型 Tj = Ta + P × (Rθ_jc + Rθ_ca) 环境温度 Ta 25℃ ~ 45℃ 散热器 / 外壳 Rθ_ca 壳到环境 封装 / TIM Rθ_jc 结到壳 芯片结 Tj 功耗 P 产生热量 热量流向 → Rθ_ca ≈ 5~20 ℃/W Rθ_jc ≈ 0.2~2 ℃/W 热 RC 网络模型(瞬态响应) Rθ Cth τ = Rθ × Cth(热时间常数) 温度滞后上升 稳态温升由热阻决定,瞬态温升由热容决定 Thermal Governor 依据 trip point 与温度变化率,动态调整 cooling device 状态 Regulator 配合 DVFS 降压降频,从源头降低功耗 P

二、常见术语与内核映射

Linux Thermal 框架把这些物理概念抽象为设备树节点和内核对象。理解术语与代码的对应关系,能显著降低调试成本。

术语 物理含义 内核/设备树对应
结温 Tj 半导体结区实际温度 thermal_zone 的 temperature 属性
热阻 Rθ 单位功耗引起的温升 通常由硬件提供,驱动中用于估算
热容 Cth 吸收热量导致温升的惯性 影响 governor 的采样与滞回策略
trip point 触发温控动作的温度阈值 trips 子节点,含 temperature/hysteresis/type
cooling device 可降低功耗的执行器 cpufreq、devfreq、风扇、regulator 等
governor 温控策略算法 step_wise、power_allocator、fair_share 等

三、典型场景:手机 SoC 高负载温控

假设某手机 SoC 在游戏场景下,CPU 大核功耗为 3W,Rθ_jc 为 0.5℃/W,Rθ_ca 为 8℃/W,环境温度 35℃。则稳态结温约为:

Tj = 35 + 3 × (0.5 + 8) = 35 + 25.5 = 60.5℃

若散热条件恶化,Rθ_ca 升至 15℃/W,则 Tj 升至 81.5℃,接近 85℃ 的 trip point。此时 thermal governor 会逐级限制 CPU 频率,并通知 regulator 降低电压。由于功耗与 V² 成正比,电压从 1.0V 降到 0.9V,动态功耗约降至原来的 81%,温升随之缓解。

工程提示:热阻和热容通常来自芯片数据手册或热仿真。设备树中的 trip point 应结合实测温度曲线设置,避免阈值过密导致频繁降频,或过疏导致过热保护滞后。

四、常见误区与复盘

  • 误区一:只看温度,不看功耗。温度是结果,功耗是原因。若只调 trip point 而不控制功耗来源,温控会变成“反复降频—反弹”的振荡。
  • 误区二:忽略热容导致的滞后。热容大意味着温度上升慢,但也意味着降温慢。trip point 的 hysteresis 设置过小,容易在阈值附近反复触发。
  • 误区三:把壳温当结温。壳温通常低于结温,二者差值等于 P × Rθ_jc。用壳温直接判断结温会低估风险。
  • 误区四:Regulator 与 Thermal 各自为政。DVFS 需要二者协同:thermal 决定降频等级,regulator 执行对应电压。若电压未同步下降,降频的降温收益会大打折扣。
本节小结:温度是热管理的观测对象,功耗是热量的来源,散热路径由热阻描述,热容决定瞬态行为,结温是最终保护目标。Linux Thermal 框架通过 thermal zone、trip point、cooling device 和 governor 把这些物理量转化为可配置、可调试的软件对象;Regulator 则从电压维度参与功耗控制。掌握这些概念,才能在后续章节中正确阅读设备树、分析温度日志并设计合理的温控策略。