Linux温度控制优化

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2017年第8期信息与电脑ChinaComputer&Communication计算机工程应用技术Linux温度控制优化黄 林(福州瑞芯微电子股份有限公司,福建福州 350003)设备温度的升高会影响芯片的稳定性和性能,而目前温度控制的方法基本都是通过控制CPU的频率电压,从而降低CPU的功耗来控制整个设备的温度,而忽略了其他功耗比较大的模块(比如GPU、DDR)。笔者提出利用Linux的温度控制框架,采用step-wise的温控策略,同时控制CPU、GPU、DDR的频率电压来降低功耗,来更有效地进行温度控制以及性能分配。温度控制;Linux;step-wise策略;Coolingdevice号:TP393.08  文献标识码:A  文章编号:1003-9767(2017)08-037-02LinuxTemperatureControlOptimizationHuangLin(FuzhouRockchipElectronicsCo.,Ltd.,FuzhouFujian350003,China)Abstract:Increaseddevicetemperaturewillaffectthestabilityandperformanceofthechip,andthemethodoftemperaturecontrolthroughbasicfrequencyvoltagecontrolCPU,therebyreducingthepowerconsumptionoftheCPUtocontrolthetemperatureofthedevice,whileignoringtheotherrelativelylargepowermodules(suchasGPU,DDR).TheauthorproposestousethetemperaturecontrolframeworkofLinux,adoptthetemperaturecontrolstrategyofstep-wise,andcontrolthefrequencyvoltageofCPU,GPUandDDRtoreducepowerconsumption,andtocontroltemperatureandperformancemoreeffectively.Keywords:thermalmanagement;Linux;step-wisestrategy;Coolingdevice1 概述随着目前处理器功耗的增大,芯片的性能遇到了瓶颈,过高的温度使得芯片的漏电流增大,严重影响其寿命和可靠性。目前现在大多数平台的温度控制基本只针对CPU,通过调节CPU的频率电压降低CPU功耗,从而来控制温度,但是忽略了其他高耗能模块的功耗控制,而现在设备在某些场景下,其他模块功耗并不会比CPU的功耗低多少。图1是某设备在8小时常规场景功耗测试时的CPU、GPU、DDR功耗分解:voltage(V)current(A)power(W)LITCPU0.83868.0680.06BIGCPU0.892257.8730.23GPU0.842136.2670.11DDR1.253170.8820.21可以看到GPU和DDR的功耗比CPU的功耗还高((DDR+GPU)>(BIGCPU+LITCPU))。所以在设备温度过高的情况下只通过控制CPU的频率电压来控制温度,效果并不会很理想,而且不停降低CPU的频率会导致整个系统的性能下降,影响体验。所以在控制CPU的频率电压时,必须控制GPU和DDR的频率电压,从而更快降低温度,并且对性能影响更小。2 温度控制的实现2.1 Linux温度控制框架图2是Linux中温度控制的基本框架。从图2可以看出温度控制主要包括下面几个步骤:(1)黄林(1982-),男,福建福州人,本科,中级工程师。研究方向:软件驱动开发。—37—2017年第8期信息与电脑ChinaComputer&Communication计算机工程应用技术定时采集温度;(2)将采集到的温度和设定的温度阈值(trippoint)进行比较(在代码中可以设定多个阈值,每个阈值对应不同的降温动作),温度太高直接关机,如果低于关机温度调用设定的温度控制策略;(3)温度控制策略(governor)根据目前的温度及设定值进行对应的降温动作。2.2 setp-wise温度控制策略step-wise是Linux中常用的温控策略,它能根据用户设置的不同的温度阈值以及目前的温度趋势做出相对应的控制动作,策略比较灵活。在step-wise流程中,代码会根据温度的趋势来调整温度控制的等级,步骤如下。第一,温度超过温度阈值时,包括两种情况。(1)如果温度趋势是上升的,那么将降低CPU、GPU、DDR的频率、控制功耗、降低温度。(2)如果温度趋势是下降的,那么提高CPU、GPU、DDR的频率、提高性能。第二,温度低于温度阈值时,包括两种情况。(1)如果温度趋势是上升的,不做任何动作。(2)如果温度趋势是下降的,提高CPU、GPU、DDR的频率。图3是setp-wise的程序流程图。2.3 Coolingdevice如2.2所述,step-wise策略最终还是得调整CPU、GPU、DDR的频率,所以必须要有个框架对接CPU、GPU、DDR、FREQ,这就是CPU、GPU、DDR、Coolingdevice,流程如图4所示:从图4可以看出,该流程本质上就是限制CPU、GPU、DDR运行的最高频率。众所周知,Linux中CPU、GPU、DDR会根据系统负载来调整自己运行的频率,负载重提高频率,负载轻降低频率,加了温度控制之后,每次改变频率之前会到Coolingdevice中拿到温度控制策略根据目前温度计算出来的CPU、GPU、DDR限制的最高频率,如果预期频率低于限制的最高频率,那么可以直接变频到预期频率,如果预期频率高于限制的最高频率,那么频率只能变频到限制的最高频率,通过限制系统运行的最高频率来控制系统的整体功耗,从而控制温度。3 结 语综合上面的论述,可以通过实现CPU,GPU,DDR的Coolingdevice,采用step-wise的策略,并将其注册到Linux温度控制的框架中,这样可以根据各个设备不同的要求设置CPU,CPU,DDR各模块的温度阈值及其对应的最高频率,当设备超过设置的温度阈值时会限制设备中各模块运行的最高频率、降低功耗,从而更好进行温度控制,并且能更均衡进行性能分频。参考文献[1]李甜甜,于戈,宋杰.实时系统温度功耗管理的优化方法研究[J].计算机研究与发展,2016(7):1478-1492.[2]吴国伟,徐子川,姚琳.温度感知的Linux多核调度算法研究[J].计算机工程与应用2009,45(24):72-76.[3]夏亮,祝永新.Linux温度感知的调度器的研究与实现[J].微型电脑应用,2009,25(2):21-24.—38—

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功