从S0状态进入sleep状态的过程
来源:互联网 发布:手机淘宝开店开通不了 编辑:程序博客网 时间:2024/06/06 02:12
从S0状态进入sleep状态的过程
ACPI规范中对wakeing 和sleeping有一个专门的章节讲述,呈现的概念包括ACPI中定义的working state和sleeping state的几种状态,同时描述各种状态之间的转换,工作状态到睡眠状态,或者睡眠状态到工作状态的转换。
主要的状态有,
global power :G0,G1,G2,G3
sleep states :S0,S1,S2,S3,S4,S5.
具体的各个状态的概念,在各个状态时系统的情况,可以参考ACPIspec,或者查阅相关资料。这里只大概列举如下:
而各种状态之间的关系和转换流程可以从如下流程图看到大概情况。
从S0状态进入Sleep状态的具体过程如下:
1、OSPM决定系统将要进入sleeping 状态。可以通过用户指定,也可以通过程序指定。比如用户要进入待机,而选择待机键。
2、OSPM调用ACPI Drvier去执行ACPI method _TTS,以指定对应的sleep状态的,此部分即以数字形式告诉机器程序,比如1、2、3、4分别对应S1、S2、S3、S4。
3、OSPM 检测所有能够唤醒系统的device,对应的找到可以唤醒系统的function和相应的支持的sleeping state。同时_PRW在每个device中指定的目标也要检测一次。
4、OSPM接着驱动所有device 进入到特定的Dx状态,如果该设备支持wake功能,则进入Dx状态。如果不支持的话,直接进入D3。
5、OSPM调用_PTS控制method,传递相应的sleeptype值。
6、OSPM保存所有其他处理器的上下文context到memory中,不包括本身处理器。
7、OSPM会将FACS table对应的唤醒向量写入到memory中。
8、OSPM执行_GTS控制method,同理,参数传递sleeptype值。
9、OSPM将PM1x_STS中的WAK_STS状态值清零。
10、OSPM保存本地处理器的上下文到memory中。
11、OSPMflush cashe,这只在进入S1、S2、S3过程中才发生。
12、OSPM使能GPE enable位,并确保所有可以wake的信号都设定好了。
13、如果是进入S4状态,可以有S4BIOS机制和System-Initial S4机制。如果是S4BIOS模式的话,OSPM将FADT中设定的S4BIOS_REQ值写入SMI_CMD端口,使进入SMI, BIOS来接管控制,系统进入S4BIOS state。
14、如果不是S4BIOS状态,OSPM则会将sleep type值写入PM1x_CNT寄存器中的SLP_TYPx位。同时使能slp_en 位。
15、此时,系统进入sleep状态,当然chipset有相关机制会检测WAK_STS位的状态,也就是检测是否有唤醒事件发生。如果有就可以唤醒系统。ACPI中也有描述相关从sleeping状态进入working状态的过程。
从S0进入S5的过程和进入其他sleeping 状态的有区分,具体如下:
1、这个步骤可以理解成和进入sleeping前两个步骤一样。OSPM调用ACPI Drvier去执行ACPI method _TTS,以指定对应的sleep状态的。
2、OSPM执行_PTS控制method,传入参数5.
3、OSPM开始准备系统各个部分进入shutdown状态,包括flush disk cache。
4、OSPM写入sleep type值到PM1x_CNT的SLP_TYPx中。并使能SLP_EN位。
5、系统开始进入Soft off状态。
- 从S0状态进入sleep状态的过程
- 改进进入sleep状态的线程的响应速度
- ACPI电源管理的6个状态(S0-S5)
- 从PEE模式进入VLPS/LLS唤醒之后的状态
- 线程进入disk sleep状态,gdb 无法attach
- Linux 进程的 Uninterruptible sleep(D) 状态
- Linux 进程的 Uninterruptible sleep(D) 状态
- Linux 进程的 Uninterruptible sleep(D) 状态
- Linux 进程的 Uninterruptible sleep(D) 状态
- 线程进入sleep状态,如果加锁,锁不会释放,其他线程无法进入Rum.
- 进入一个短期的赶进度状态
- 程序员容易进入的一种状态
- mnesia 进入孤岛状态后的处理
- sqlite进入 ...> 状态退出的方法
- WINCE6.0+2443系统大概过10分钟进入sleep状态
- WINCE6.0+2443系统大概过10分钟进入sleep状态
- 明天进入状态
- 今天执行进入状态
- [回溯]Super Number uva10624
- The type org.apache.axiom.om.OMElement cannot be resolved. It is indirectly referenced from require
- 查找2006-2007或2007-2008年度有欠费并且在之后年度有交款的sql语句
- 关于jvm五块内存的相关知识
- 讲解MMU的好文章(三)
- 从S0状态进入sleep状态的过程
- 基于xmpp协议,openfire服务器,处理被挤下线,或因网络掉线,第二次无法登录的问题
- 论文读书笔记-A text clustering framework for information retrieval
- Sqrt(x)
- php运行时不显示错误信息?
- 漂亮的多选属性控件 画?调出帮助功能
- 编写Java程序访问Spark环境
- 新东方哥男生女生
- JavaScript的组成和实现