Overview
设备电源管理通常有两种模型,系统睡眠模型和运行时电源管理模型。驱动程序可以使用其中一种模式使设备进入低功耗状态。
系统睡眠模型(Suspend)
系统进入低功耗可以分为挂起(挂起到RAM)或者休眠(挂起到磁盘)。设备,总线和驱动程序可以通过实施各自角色的挂起方式来进行协作。
On (on) S0 - Working
Standby (standby) S1 - CPU and RAM are powered but not executed
Suspend to RAM (mem) S3 - RAM is powered and the running content is saved to RAM
Suspend to Disk, Hibernation (disk) S4 - All content is saved to Disk and power down
S3 (Suspend to RAM),挂起到内存,简称待机。计算机将目前的运行状态等数据存放在内存,关闭硬盘、外设等设备,进入等待状态。此时内存仍然需要电力供电,但整机耗电很少。恢复时计算机从内存读
出数据,回到挂起前的状态,恢复速度较快。对DDR的耗电进行优化时S3的关键,大多数手持设备都是S3待机。
S4 (Suspend to Disk),挂起到硬盘,简称休眠。把运行状态等数据存放在硬盘上某个文件或者某个特定的区域,进入关机状态。此时计算机完全关闭,不耗电。恢复时计算机从休眠文件/分区中读出数据,回到休眠前的状态,恢复速度较慢。
系统睡眠模型时从整机角度进行省电。
S3类似电脑的睡眠,在长时间不使用电脑后,电脑黑屏,再次敲击键盘迅速显示桌面,原来的工作内容不变。
S4类似电脑的休眠,长时间不使用后,敲击键盘无反应,需要按电源键重新开机。
嵌入式设备更多的是使用S3。
在Linux中,通过cat /sys/power/state可以获得当前设备支持的模式。
freeze==>不涉及具体的hw或driver,只是冻结所有的进程,包括用户空间的进程和内核空间的线程,使用场景不多。
standby:指的是S1,CPU and RAM powered,but not executed
mem: S3,suspend to RAM
disk: S4, suspend to disk
如果需要设置以上模式,只用echo mem > /sys/power/state即可
运行时电源管理模型
系统运行时,设备也可以进入低功耗状态,而与其它电源管理活动无关。可以说是以模块角度进行省电。