linux 功耗管理,浅析RT1170的功耗管理 - 重写于2020-0917

序言

MCU中,功耗管理要解决的问题本质就是省电。

如果不考虑省电的问题,就可以一直在最高性能的方式运行。

为了省电,我们最常见手段就是关时钟和关电源。

对于CPU,可以把CPU停下来,禁止它运行。

基本概念篇

概念一:

RT1170的功耗模式涉及3个方面:

1.CPU的模式(Run/Wait/Stop/Suspend)

2.Set point(SP)的模式(0-15)

3.Stand by模式

常规MCU是没有SP的,SP是RT1170的一个专有概念。

SP定义了各个资源的状态,进入到某一个SP,各资源就会按照该SP的定义进入相应的状态,比如是不是关时钟,是不是关电源等。

而Standby 可以理解为一个超级低功耗模式。

概念二:

就是关于资源,有4种属性:Public/Private/Shared/Unassigned.

这样不同的资源,可以跟随CPU的状态,也可以跟随SP的状态,常见下图。

Private资源跟随CPU, Public资源跟随SP,Shared资源跟随CPU或者SP。

61840b6d0e36?from=timeline

其它基本概念:

关键术语

GPC: General Power Control

CMC: CPU mode control

SSARC: State save and restore

UPI: Unified power management interface

Share Resource 的仲裁算法

1. 提供目标SP和可接受SP。

2. 如果目标SP能进,就进目标SP。

3. 如果目标SP进不去,就在可接受SP里面选。

4. 选的时候根据优先级配置,优先选高优先级的配置。

5. 如果优先级一样,选SP编号大的。

Stand by模式

Stand by的转换时间比SP的转换时间短

Stand by由CMC发起。

CPU只有在Sleep模式下,才能进Stand by。

SP的转换过程不能被Wake up流程打断,Stand by的转换过程可以Wake up流程被打断。

功耗状态转换的步骤

1.配置好目标CPU状态和SP状态

2.执行WFI/WFE,此时CPU和SP会按1的配置切状态

-CPU状态切换

-SSARC保存数据

-CPU以及private资源关时钟,

-CPU以及private资源关电源

-SP状态切换

-public资源关时钟

-public资源关电源

3.系统进入低功耗等待唤醒

4.唤醒

-SP状态切换

-public资源开电源

-public资源开时钟

-CPU状态切换

-CPU以及private资源开电源

-CPU以及private资源开时钟

-SSARC恢复数据

系统的功耗管理框图:

61840b6d0e36?from=timeline

1170的功耗管理框图

CMC支持的RUN/WAIT/STOP/SUSPEND的管理:

61840b6d0e36?from=timeline

Power mode of CPU platform

说明:

WAIT下CPU时钟关了,外设还能工作。

STOP下CPU和外设都关了时钟不能工作,但是没有断电,唤醒不需要重新初始化外设。

SUSPEND要断外设的电,所以外设的状态需要保存,唤醒的时候恢复外设的状态。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值