当前位置: 首页 > article >正文

一文带你弄懂thermal governor IPA

目录

一、IPA概念

IPA输入

IPA输出

IPA依赖 

IPA优势

二、IPA框架

PID controller

k_p

k_i

K_d

Power allocate

三、DTS配置

四、源代码解析

代码路径

bind流程

throttle流程

一、IPA概念

Intelligent Power Allocation,智能power分配,一种当前主流的thermal governor

IPA输入

  • current temp:当前thermal zone的温度
  • requested_power:各cooling device根据当前load所申请的power
  • sustainable power:为维持thermal zone温度在target temp内,所能承受的最大power

IPA输出

  • granted_power:被授予的power budget

IPA依赖 

由于IPA需要用到state2power和power2state接口,在cooling state和power之间进行互相换算,所以依赖Linux内核中energy model(简称EM)

IPA优势

  • PID闭环
  • 可以在多cooling devices之间做power智能分配

二、IPA框架

IPA两大组件:

  • PID controller
  • power allocate

PID controller

公式:

P_max = k_p * e + k_i * err_integral + k_d * diff_err + sustainable_power

其中:

e:target temp - current temp

err_integral: 之前所有e的和

diff_err: e - 前一次的e

k_p

为了让温度控制更加精准,温度曲线更平滑,分为k_pu和k_po

当current temp < target temp时,使用k_pu,当current temp >= target temp时,使用k_po

具体如下图所示:

 k_pu的计算公式:

k_pu = 2 * sustainable_power / (desired_temperature - switch_on_temp)

k_po的计算公式:

k_po = sustainable_power / (desired_temperature - switch_on_temp)

如果不考虑err_integral和diff_err,则Pmax如果时,则Pmax

P_max = k_p * e + sustainable_power
      = 2 * sustainable_power / (desired_temperature - switch_on_temp) * (desired_temperature - current_temperature) + sustainable_power

如果current_temperature = switch_on_temp时,则k_p = k_pu,这时Pmax

P_max = k_p * e + sustainable_power
      = 2 * sustainable_power / (desired_temperature - switch_on_temp) * (desired_temperature - switch_on_te

http://www.kler.cn/a/376392.html

相关文章:

  • Android启动流程_Init阶段
  • Pinctrl子系统中Pincontroller构造过程驱动分析:imx_pinctrl_soc_info结构体
  • mint-ui Picker 显示异常
  • 034_Structural_Transient_In_Matlab结构动力学问题求解
  • CSS3新增盒子属性(三)
  • 用Python设置、更新和获取Excel单元格的值
  • 为什么大家都在学数字孪生呢?
  • Keras 3 示例:开启深度学习之旅
  • 【前端基础】CSS基础
  • Unity性能优化(简略版)
  • 刘艳兵-DBA023-控制文件是Oracle 数据库用来查找数据库文件,控制文件包含以下哪些信息:
  • 微信小程序 - 数组 push / unshift 追加后数组返回内容为数字(数组添加后打印结果为 Number 数值类型)
  • 现代卷积神经网络(GoogLeNet+批量归一化+ResNet)
  • https和http的区别,及HTTPS的工作流程
  • windows临时安装solr
  • 2024 Rust现代实用教程 Error错误处理
  • 【tomcat系列漏洞利用】
  • 原生html+js+css+php多图上传带预览可增删判断图片大小和后缀
  • 用100行python代码制作俄罗斯方块游戏,俄罗斯方块游戏教程-附完整代码
  • ros与mqtt相互转换
  • NuGet Next发布,全新版私有化NuGet管理
  • RabbitMQ的路由模式
  • MySQL — 事务 (o゚▽゚)o
  • 【运动的&足球】足球运动员球守门员裁判检测系统源码&数据集全套:改进yolo11-DBBNCSPELAN
  • Django 5企业级Web应用开发实战-日志
  • 前端表格复制粘贴自动根据标识进行填充