谷动谷力

标题: Linux电源管理--详解(合集) [打印本页]

作者: 鸣涧    时间: 2022-11-22 12:50
标题: Linux电源管理--详解(合集)
Linux电源管理--详解(合集)
1, 介绍    万物运行遵循能量守恒定律,因此世界上并不存在永动机,一切运动都需要能量。人走路、思考需要能量,汽车在路上跑需要能量,电子产品运行需要能量。另外,能量并不是取之不尽用之不竭的。动物进化出了冬眠,为的就是在天寒地冻,缺乏食物的冬天能够安全地度过。汽车长时间停车,就要熄火,为的就是节省燃料。电子产品在不使用的时候,就要关机或待机,为的就是省电。    对于电子产品的功耗管理是一个系统工程,需要在各使用场景下,用尽可能少的资源、功耗,完成想要的功能,并且还要长续航、不发烫。对于像手机这样的电子产品,为了续航,从供能的角度需要加大电池的电量,但是电池的电量增加,又不想增加体积。因此人们通过各种办法提升能量密度,这样电池可以做的更小,电量更大。不过随着手机支持的屏幕更大,功能更丰富,需要DSP、CNN等算力单元做加速,这也需要更多的功耗。高功耗一方面减少了续航;另一方面,也会带来很大的热量,导致手机这样的一个结构、材质、体积的电子产品会发热严重,甚至烫手。    为了解决不必要功耗的消耗,linux提供了多种电源管理方式。为了解决系统不工作时的功耗消耗,linux提供了休眠(suspend to ram or disk)、关机(power off)、复位(reboot)。为了解决运行时不必要的功耗消耗,linux提供了runtime pm、cpu/device dvfs、cpu hotplug、cpu idle、clock gate、power gate、reset等电源管理的机制。为了解决运行时电源管理对性能的影响,linux提供了pm qos的功能,用于平衡性能与功耗,这样既能降低功耗,又不影响性能。2, 框架
    功耗管理不仅是软件的逻辑,还需要硬件功能的支撑。硬件设计决定了功耗的下限,热设计决定了功耗的上限,而软件就是通过一些机制及策略将功耗尽可能逼近硬件功耗下限。    芯片上支持的低功耗机制:power domain、reset、clock、系统休眠/唤醒、cpu的低功耗、ddr自刷新等。系统一般是通过pmic芯片控制供应给各个器件电压、电流大小及有无。外设也支持低功耗模式,或者它们的供电能被开、关。    芯片、电源芯片、系统外设之上便是各个硬件低功耗功能对应的管理框架:    上层service会有专门的功耗管理应用,用来协调其他service进入休眠、唤醒,在进入不同场景的时候告知各service做相应的功耗策略。3, 内核中各低功耗管理模块框架3.1 clock framework    详见文章《一文搞懂linux clock子系统 (qq.com) 3.2 Regulator framework    详见文章《一文搞懂linux regulator子系统 (qq.com) 3.3 Power domain framework    详见文章《一文搞懂linux power domain framework (qq.com) 3.4 Reset framework    详见文章《一文搞懂linux reset framework (qq.com) 3.5 Opp framework   opp framework比较简单,主要提供了各种opp操作的接口,会在《一文搞懂linux device dvfs》有所体现。3.6 Runtime pm    详见文章《一文搞懂runtime pm (qq.com) 3.7 Device dvfs    详见文章《一文搞懂linux device dvfs》3.8 系统休眠唤醒    详见文章《一文搞懂Linux系统休眠唤醒 (qq.com) 3.9 Cpu idle    详见文章《一文搞懂cpu idle (qq.com) 3.10 Cpu dvfs    详见文章《一文搞懂linux cpu dvfs (qq.com) 3.11 Cpu hotplug    详见文章《一文搞懂Linux cpu hotplug (qq.com) 3.12 Pm qos    详见文章《一文搞懂linux PM QOS (qq.com)







欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2