序言
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。
其它基本概念:
关键术语
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恢复数据
系统的功耗管理框图:
1170的功耗管理框图
CMC支持的RUN/WAIT/STOP/SUSPEND的管理:
Power mode of CPU platform
说明:
WAIT下CPU时钟关了,外设还能工作。
STOP下CPU和外设都关了时钟不能工作,但是没有断电,唤醒不需要重新初始化外设。
SUSPEND要断外设的电,所以外设的状态需要保存,唤醒的时候恢复外设的状态。