
Linux内核-电源管理
文章平均质量分 82
linux内核中电源管理相关的操作与内容
生活需要深度
这个作者很懒,什么都没留下…
展开
-
【ARM 浮点计算单元 FPU (FPA,VFP,NEON)介绍】
ARM 的 FPU支持IEEE 754标准的浮点数格式,并能够执行各种浮点数的基本运算,如加法、减法、乘法、除法等,以及一些更复杂的运算,如平方根、绝对值等。对于支持硬件浮点运算的系统,这是非常重要的,因为如果不正确地保存和恢复VFP的状态,可能会导致浮点运算的结果错误。但是在现代的ARM处理器中,如Cortex系列处理器,浮点单元通常是内置的,对于执行浮点数运算有极大的帮助。对于VFP,有几种可能的值,例如vfp、vfpv3、vfpv4等,这取决于你的处理器支持哪种版本的VFP。原创 2023-09-25 18:03:46 · 1239 阅读 · 0 评论 -
一文搞懂linux PM QOS
PM QOS(power management quality of service,服务质量)表示linux内核电源管理的质量。在很多产品及场景功耗和性能是一个tradeoff的艺术。Linux提供了众多的功耗管理机制用来尽可能减少不必要的功耗:cpu idle、cpu hotplug、cpu dvfs、系统休眠唤醒、runtime power management、device dvfs、clock gate等(这些机制以往文章有介绍,大家感兴趣的话,可以往前翻阅)。原创 2023-09-25 17:15:48 · 555 阅读 · 0 评论 -
一文搞懂linux cpu hotplug
Linux 的cpu热插拔是cpu电源管理的一部分,支持系统在负载比较低的时候,拔掉一个cpu,从而省下cpu的静态功耗,并在系统需要时,重新将cpu插上。另外,在多cpu系统启动、休眠唤醒的过程中也会涉及到non-boot cpu的拔插。原创 2023-09-25 16:43:26 · 1585 阅读 · 0 评论 -
一文搞懂linux cpu dvfs
cpufreq driver提供调频调压的机制,cpufreq governor提供不同的策略,cpufreq core对通用的调频逻辑做抽象,为上层提供功能、接口封装,对下层调用抽象封装的硬件控制接口,此外,还借助频率电压对opp(operating performance points)功能,clk driver、regulator driver对频率及电压做时钟及电压的调整。但是仅调频的话,收益是比较小的,因为频率对应着算力,当频率减少,对应的算力也减弱,这样执行时间也会变长。cpu dvfs框图。原创 2023-09-25 16:16:29 · 1419 阅读 · 0 评论 -
一文搞懂linux cpu idle
接下来是计算下一次选择校正因子(correction factor)的值,将上一次的校正因子先衰减一次,然后加上一个predicted_us和next_timer_us的比值new_factor += RESOLUTION * measured_us / data->next_timer_us;当CPU idle时,根据预测的idle时间、功耗受益大小、恢复的时间长短,选用一个idle状态,比如进入wfi,关掉CPU的arch timer以便降低功耗,当有中断触发时,CPU又会恢复回来。原创 2023-09-25 16:12:50 · 3591 阅读 · 0 评论 -
一文搞懂linux系统休眠唤醒
系统休眠唤醒是电源管理中重要的一个技术点,一方面,它能让系统在不需要工作时,尽可能进入一个功耗极低的状态,这时外部的设备、芯片内部ip、时钟进入了低功耗状态或关闭电源状态,从而尽可能的减少功耗,增加产品的续航;另一方面,在用户需要系统工作的时候,系统能够快速恢复电源、时钟、芯片内部ip及外部设备的工作,从而不影响用户的使用体验。系统休眠唤醒比其他的功耗管理对系统的影响更大。原创 2023-09-25 15:17:11 · 1501 阅读 · 0 评论 -
一文搞懂Linux runtime pm
Linux的Runtime PM(runtime power management)框架指的是运行时电源管理,设备在不运行时将自己的时钟、复位及电关闭(时钟的管理框架、regulator的管理框架之前的文章已经介绍,复位的管理框架后面会通过一篇文章来介绍),在使用的时候再打开。其目的是为了减少系统运行时的功耗。原创 2023-09-25 15:07:49 · 808 阅读 · 0 评论 -
一文搞懂linux device dvfs
芯片的功耗主要由静态功耗和动态功耗组成。静态功耗:电路稳定后,Vdd到GND之间也有细微的电流产生功耗。动态功耗:一部分,由于MOS管开关切换会对寄生电容充放电,从而产生功耗;另一部分,由于MOS管开关过程中,存在短暂的NMOS与PMOS都导通(Vdd到GND的直连)时刻,此时会产生浪涌电流。一般动态功耗远大于静态功耗,因此减少芯片功耗的关键点就是减少动态功耗。原创 2023-09-25 15:03:16 · 623 阅读 · 2 评论 -
一文搞懂Linux reset framework
在讲reset framework前,首先要搞明白,什么是复位,它是用来做什么的?简单来说,复位是使器件(芯片内的IP或芯片)进入可以稳定工作的初始状态,避免器件在上电后进入到随机不可控的状态。在芯片设计中,复位是一个很重要的功能。复位被用来将数字电路中的触发器强制设置到一个确定的初始值上,从而使状态机和其他控制电路可以从一个已知的初始状态开始工作。这个初始状态,一般兼具了基础功能、低功耗的特性。所以复位也是低功耗常用的手段,一般会配合时钟控制及电源控制一起使用。原创 2023-09-25 15:02:02 · 281 阅读 · 0 评论 -
一文搞懂linux power domain framework
什么是power domain framework?在搞清楚这个问题之前,有必要先弄清楚什么是power domain,以及它解决了什么问题。从字面上理解,power domain指的是电源域。SOC是由多功能模块组成的一个整体,对于工作在相同电压且功能内聚的功能模块,可以划为一个逻辑组,这样的一个逻辑组就是一个电源域。简单来说,电源域就是逻辑划分,在该逻辑划分中包含了物理实体和电源线的连接关系。电源域之间存在着包含关系,这样就是一个父子关系的电源域。电源域也存在着兄弟关系,这样就是同一级的电源域。原创 2023-09-25 11:34:02 · 557 阅读 · 0 评论 -
一文搞懂linux regulator子系统
Regulator指的是稳定器,有电压稳定器及电流稳定器两种,能够自动维持恒定电流或者电压。其中,电压稳定器voltage regulator在电路中比较常见。从设备驱动的角度来看,regulator的控制比较简单,主要有enable/disable/输出电压或电流大小的控制。Linux利用regulator framework对regulator进行管理和控制。原创 2023-09-25 10:23:12 · 493 阅读 · 0 评论 -
一文搞懂linux clock子系统
clock子系统在linux中属于一个比较简单,且容易理解的模块。时钟和电源是系统及各模块的基础,也是电源管理中比较重要的一部分。时钟对应着系统的动态功耗,会让各硬件IP做逻辑反转,从而带来能量消耗。涉及到时钟的电源管理主要是clk gate和调频,通过停止或者调整时钟做到:满足功能的前提下,尽可能减少功耗。时钟对于系统的作用就像心脏对于人的作用,可见时钟对系统的重要作用。原创 2023-09-25 09:59:44 · 815 阅读 · 0 评论 -
Linux下的regulator调试
use 同上面的num_users(use_count) (_regulator_enable+1 _regulator_disable-1)该参数可表明当前ldo的开光状态。regulator_get如果找不到该电源,换返回一个无效的电源,该结果不是我们想要的,可使用regulator_get_exclusive代替。open当前打开次数(open_count)(_regulator_get+1 _regulator_put-1)max_microvolts 最大电压。原创 2023-05-05 17:28:46 · 775 阅读 · 0 评论 -
ARM V8 DVFS
虽然做DVFS的不是很多,是因为很多都被预测算法给难住,但是作者相信,随着预测算法的进步,DVFS技术必将得到广泛的应用,因为它能够节省很多能量。armv8 以上CPU 如CORTEX-A37 53 55等V8架构的CPU,主频比较高,如果一直高,那么浪费电,尤其是电池设备如手机,平板。将预测的性能转换成需要的频率,从而调整芯片的时钟设置。相反,当升高频率时,应该先升电压,再升频率。根据系统的当前负载,预测系统在下一时间段需要的性能。另外,在调整频率和电压时,要特别注意调整的顺序。原创 2023-04-24 09:48:26 · 603 阅读 · 0 评论