一种睡眠状态控制方法及装置的制造方法
【技术领域】
[0001 ]本发明涉及计算机技术领域,尤其涉及一种睡眠状态控制方法及装置。
【背景技术】
[0002]在进行低功耗设计时,通常将睡眠状态设置为若干状态,越深度的睡眠状态功耗越低,但唤醒时的延迟越大。
[0003]在现有技术中,睡眠状态控制装置只能根据操作系统默认的睡眠状态供电状态,及控制该操作系统进入相应的睡眠状态,不能灵活的控制操作系统进入其他的睡眠状态。
[0004]在实际应用中,在某些情况下,操作系统进入深度睡眠后唤醒时的延迟与进入浅度睡眠后唤醒时的延迟差可以忽略不计,出于对低功耗的设计考虑,操作系统进入深度睡眠为最佳选择。但是如果该操作系统默认的睡眠状态为浅度睡眠,由上述现有技术可知,睡眠状态控制装置只能控制该操作系统进入浅度睡眠,从而导致操作系统睡眠时功耗较高。
[0005]因此,如何灵活控制操作系统进入不同的睡眠状态亟需解决。
【发明内容】
[0006]有鉴于此,本发明实施例提供一种睡眠状态控制方法及装置,该方法及装置可灵活控制操作系统进入不同的睡眠状态。
[0007]第一方面,本发明实施例提供一种睡眠状态控制方法,所述方法包括:
[0008]确定操作系统申请睡眠;
[0009]根据所述操作系统的属性信息和运行所述操作系统的硬件环境确定所述操作系统待设置的睡眠状态;
[0010]根据所述睡眠状态控制运行所述操作系统的处理器及内存的供电状态,以控制所述操作系统进入相应的睡眠状态。
[0011]优选地,所述根据所述睡眠状态控制运行所述操作系统的处理器及内存的供电状态,以控制所述操作系统进入相应的睡眠状态,具体包括:当所述睡眠状态为深度睡眠时,控制电源停止向所述处理器供电,或者控制电源停止向所述处理器及所述内存中的部分内存供电,以控制所述操作系统进入深度睡眠状态。
[0012]优选地,在所述根据所述睡眠状态控制运行所述操作系统的处理器及内存的供电状态,以控制所述操作系统进入相应的睡眠状态之前,所述方法还包括:将所述处理器的当前状态存储于所述内存中保持供电的部分内存。
[0013]优选地,在所述控制所述操作系统进入相应的睡眠状态之后,所述方法还包括:在监测到所述操作系统对应的唤醒事件时,控制电源向所述处理器及内存供电;从所述保持供电的部分内存中获取所述处理器状态,并根据所述处理器状态恢复所述处理器。
[0014]优选地,所述根据所述睡眠状态控制运行所述操作系统的处理器及内存的供电状态,以控制所述操作系统进入相应的睡眠状态,具体包括:当所述睡眠状态为浅度睡眠时,控制电源保持向所述处理器及内存供电,以控制所述操作系统进入浅度睡眠状态。
[0015]在第二方面,本发明实施例提供一种睡眠状态控制装置,所述装置包括:
[0016]第一确定单元,用于确定操作系统申请睡眠;
[0017]第二确定单元,用于根据所述操作系统的属性信息和运行所述操作系统的硬件环境确定所述操作系统待设置的睡眠状态;
[0018]控制单元,用于根据所述睡眠状态控制运行所述操作系统的处理器及内存的供电状态,以控制所述操作系统进入相应的睡眠状态。
[0019]优选地,所述控制单元具体用于:当所述睡眠状态为深度睡眠时,控制电源停止向所述处理器供电,或者控制电源停止向所述处理器及所述内存中的部分内存供电,以控制所述操作系统进入深度睡眠状态。
[0020]优选地,所述装置还包括:存储单元,用于在控制单元根据所述睡眠状态控制运行所述操作系统的处理器及内存的供电状态,以控制所述操作系统进入相应的睡眠状态之前,将所述处理器的当前状态存储于所述内存中保持供电的部分内存。
[0021]优选地,所述控制单元还用于:在监测到所述操作系统对应的唤醒事件时,控制电源向所述处理器及内存供电;从所述保持供电的部分内存中获取所述处理器状态,并根据所述处理器状态恢复所述处理器。
[0022]优选地,所述控制单元具体用于:当所述睡眠状态为浅度睡眠时,控制电源保持向所述处理器及内存供电,以控制所述操作系统进入浅度睡眠状态。
[0023]通过利用本发明实施例提供的睡眠状态控制方法及装置,可根据操作系统的属性信息和运行该操作系统的硬件环境确定该操作系统待设置的睡眠状态;根据确定的睡眠状态控制运行该操作系统的处理器及内存的供电状态,以控制该操作系统进入相应的睡眠状态,从而达到灵活控制操作系统进入不同的睡眠状态的效果。
[0024]另外,该睡眠状态控制方法对于操作系统而言是透明的,操作系统不知道也不需要知道进入的是默认睡眠状态以外另外一种睡眠状态,因此不需要对操作系统进行任何修改,相较于现有修改操作系统使操作系统进去其它睡眠状态的方法,简单易行,不会引带出其他问题。
【附图说明】
[0025]图1为本发明实施例提供的一种睡眠状态控制方法的流程示意图;
[0026]图2为本发明实施例提供的一种睡眠状态控制装置的结构示意图;
[0027]图3为本发明实施例提供的另一种睡眠状态控制装置的结构示意图。
【具体实施方式】
[0028]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0029]如图1所示,其为本发明实施例提供的一种睡眠状态控制方法的流程示意图。该方法应用于睡眠状态控制装置,该睡眠状态控制装置所在的设备运行操作系统,且该设备包括处理器及内存等。该方法包括:
[0030]SlOl,确定操作系统申请睡眠。
[0031]具体的,当该操作系统未被使用的时间超过预设的时间阈值时,会向睡眠状态控制装置发送睡眠申请指令。睡眠状态控制装置在接收操作系统发送的睡眠申请指令时,可以确定该操作系统申请进入睡眠。
[0032]或者,当该操作系统未被使用的时间超过预设的时间阈值时,控制寄存器的指定位置位,该指定位用于标识操作系统是否申请进入睡眠。睡眠状态控制装置在读寄存器时,若发现该指定位置位,则可以确定该操作系统申请进入睡眠。
[0033]S102,根据该操作系统的属性信息和运行该操作系统的硬件环境确定该操作系统待设置的睡眠状态。
[0034]睡眠状态控制装置接收到睡眠申请指令后,确定发送该睡眠申请指令的操作系统的属性信息及运行该操作系统的硬件环境。其中,该属性信息可以包括但不仅限于:操作系统类型,操作系统版本,操作系统对应的默认睡眠状态等。该硬件环境可以包括但不仅限于:外设硬件的工作状态、系统的时钟频率等。
[0035]睡眠状态控制装置基于确定的操作系统的属性信息及运行该操作系统的硬件环境确定该操作系统待设置的睡眠状态。其中,睡眠状态至少包括:深度睡眠状态和浅度睡眠状态。
[0036]至于与属性信息和硬件环境对应的睡眠状态,可根据不同需求预先进行设置,本发明对此不作任何限制。
[0037]例如,外设硬件全部处于空闲状态时,对应深度睡眠状态;系统时钟频率较高时,对应浅度睡眠。
[0038]需要说明是,睡眠状态还可以设置多个等级,可预先设置不同的属性信息和硬件状态对应不同等级的睡眠状态,本发明对此不作任何限制。
[0039]S103,根据该睡眠状态控制运行该操作系统的处理器及内存的供电状态,以控制该操作系统进入相应的睡眠状态。
[0040]睡眠状态控制装置根据确定的睡眠状态确定控制处理器及内存的供电策略,根据该供电策略控制运行该操作系统的处理器及内存的供电状态。
[0041]不同的睡眠状态对应不同的控制策略,与睡眠状态对应的供电策略,可根据不同需求预先进行设置,本发明对此不作任何限制。
[0042]例如,预先设置深度睡眠状态对应的供电策略为停止向处理器供电,或者停止向处理器及内存中的部分内存供电,其中该部分内存是指该操作系统未占用的部分。预先设置浅度睡眠状态对应的供电策略为保持向所述处理器及内存供电。基于此,当睡眠状态为深度睡眠时,控制电源停止向处理器供电,或者控制电源停止向处理器及内存中的部分内存供电,以控制操作系统进入深度睡眠状态。当睡眠状态为浅度睡眠时,控制电源保持向处理器及内存供电,以控制操作系统进入浅度睡眠状态。
[0043]在一个例子中,在步骤S103之前,该方法还包括:
[0044]当睡眠状态为深度睡眠时,控制电源停止向处理器供电,或者控制电源停止向处理器及内存中的部分内存供电,以控制操作系统进入深度睡眠状态之前,将处理器的当前状态存储于内存中保持供电的部分内存。这样,在停止向处理器供电后,处理器的状态可以得以保存,以便在唤醒时调用,从而降低唤醒响应时间。
[0045]相应的,在操作系统进入深度睡眠状态之后,该方法还包括:
[0046]在监测到操作系统对应的唤醒事件时,控制电源向处理器及内