《UEFI内核导读》一阶插值算法在UEFI中的应用

      敬请关注微信公众号:“固件C字营”

=====================================================================

         顾名思义,一阶插值算法是多项式插值算法的一种,其中一阶插值算法在UEFI系统中是用的最多的算法。它主要使用在对系统中各项物理量测定的估算和标定及热控制当中。

        例1:我们主板上有N个传感器分别固定在机器的某个位置,当我们想要知道某个位置X的温度,但是又没有在对应位置有放置传感器。在这种情况下我们就可以使用线性插值的方式,使用标准的温度计来测量这N个传感器在特定情况下的温度,然后使用线性插值的方法来“估算”X位置的温度。

        例2:使用ADC读取热敏电阻的电压值,并查表获取某个位置的温度,可以使用传统的查表法,也可以在确定了热敏电阻的温度-阻值曲(R-T)线之后,使用少量的几个标定点来使用一阶插值算法进行估算得到温度值。

        例3:在无风扇系统中,一般通过被动散热的方式来控制系统的外壳温度,这个时候我们就可以使用一阶插值算法来创建一个温度-功率标定曲线,通过动态侦测温度传感器的温度,调整系统功耗(PL1,PL2等),达到在温度比较低的时候使用较大的PL1设定,温度高的时候降低PL1,这样能保持系统在性能和散热上的平衡。

        举例说明,在intel平台中我们一般会使用PL1来控制系统的长时间无故障运行的系统功耗,这个值一般来说越大系统性能越强,但是也伴随着系统的热设计必须的越强,这样才能把系统产生的热通过散热模组散到环境当中去,不过在无风扇系统中我们因为没有风扇,所有只能才有被动散热的方式,被动散热就要在系统温度达到一定的上限的时候主动降低系统的热源所产生的热量,在这里就是降低PL1的值,简化模型如下。

temp ratio:调整比例(绝对值小于1)

Current temp:是当前的温度

Previous temp:标定温度曲线的前一次的温度

Next temp:标定温度曲线的下一次的温度

Interpolated state:下一次PL1的设定值

Previous limit:标定温功耗曲线的前一次的PL1

Next limit:标定温功耗曲线的下一次的PL1

        如上图,横轴表示温度(摄氏度)纵轴表示PL1(瓦特)设定,经过标定之后我们可以使用任意一点的温度(Tn)估算其合适的功耗(Pn)值,进而对PL1进行动态设定,亦是完成了动态的被动散热控制。以上算法,可以在驱动中实现比如(DTPF/DTT),ACPI ASL中实现,EC固件中实现,其效果基本一致,比较费时间的是如何去进行“标定”的工作。

        “标定”的过程涉及到具体的产品热设计和产品规格、使用环境等的不同,可以根据需要自行实验。

=====================================================================

固件C字营·版权所有

敬请关注微信公众号:“固件C字营”

=====================================================================

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值