一种针对计算机的睡眠状态唤醒的方法及装置与流程

文档序号:17048503发布日期:2019-03-05 19:47阅读:309来源:国知局
一种针对计算机的睡眠状态唤醒的方法及装置与流程

本申请涉及信息技术领域,尤其涉及一种针对计算机的睡眠状态唤醒的方法及装置。



背景技术:

acpi(advancedconfigurationandpowermanagementinterface,高级配置和电源管理接口)定义了计算机操作系统以及bios(basicinputoutputsystem,基本输入输出系统)分别与计算机硬件之间的新型工作接口,在acpi下定义了从s0到s5六种计算机的电源管理模式,其中,s3用以实现计算机的低功耗待机。在windows操作系统中的睡眠(sleep)状态和bios中的suspendtoram(挂起到内存)状态均指的是acpi定义的s3模式。在s3模式对应的状态下,内存(ram)仍有电源供电,处于自刷新状态,内存中保存的操作系统、应用程序及已开启的文件等信息均不会丢失。下面简单介绍一下,计算机从s3模式切换到唤醒模式的过程:

计算机检测到用户按下电源键的操作,计算机的cpu(centralprocessingunit,中央处理器)先执行bios启动的sec(security,安全)阶段的指令,该sec阶段是指cpu申请cache(高速缓冲存储器),并将预设的sec代码加载到cache中,以加速sec代码执行速度,之后进入bios启动的pei(pre-efiinitialization,预置可扩展固件接口初始化)阶段,在pei阶段中cpu主要的任务是初始化计算机中的相关硬件,例如cpu、内存等。pei阶段结束后cpu启动操作系统,初始化显卡,加载操作系统中的显示适配器驱动,此时计算机方可显示画面。

由上述描述可知,计算机在s3模式切换到唤醒模式的过程中,计算机的显示屏在cpu启动操作系统之前一直处于黑屏状态,因此导致从s3模式切换到唤醒模式的过程中,计算机的显示屏保持黑屏时间较长,用户体验较差。



技术实现要素:

本申请提供一种针对计算机的睡眠状态唤醒的方法及装置,用以解决现有技术中存在的计算机从睡眠模式切换到唤醒模式的过程中显示屏保持黑屏时间较长的问题。

第一方面,本申请提供了一种针对计算机的睡眠状态唤醒的方法,包括:所述计算机中的cpu在检测到用于指示计算机进入睡眠状态的第一指令后,执行进入睡眠状态的相关操作,并将计算机的显示屏当前显示的画面信息保存在预先申请的内存中,最终控制计算机进入睡眠状态;进入睡眠状态的计算机中的所述cpu检测到用于指示计算机从睡眠状态切换到唤醒状态的第二指令后从所述预先申请的内存中获取所述画面信息,并将所述画面信息在所述显示屏上显示;之后所述cpu启动操作系统,控制所述计算机从睡眠状态切换到唤醒状态,其中,所述启动操作系统包含加载所述计算机外接设备驱动,以使所述cpu识别用户在所述显示屏显示的画面信息上的操作。

通过上述设计,cpu在控制计算机进入睡眠状态之前保存当前显示屏显示的画面信息,并在控制计算机从睡眠状态唤醒过程中显示屏显示画面信息,使得计算机在启动操作系统之前,显示屏亮起,可以较早的结束处于睡眠状态唤醒过程中显示屏的黑屏状态,进一步减少用户的等待时间,提升用户体验。

在一种可能的设计中,所述cpu检测到用于指示计算机从睡眠状态切换到唤醒状态的第二指令后启动bios的两个阶段,sec阶段和pei阶段,在pei阶段初始化显卡,以使所述计算机中的显示屏能够显示画面,在初始化显卡后从所述预先申请的内存中获取所述画面信息。

通过上述设计,所述cpu在启动进入bios的pei阶段后,显示屏就亮起,减少了显示屏的黑屏时间,改善了用户体验。

在一种可能的设计中,所述cpu将所述画面信息在所述显示屏上显示是在启动操作系统之前进行的。

通过上述设计,所述cpu在启动操作系统之前就可以获取画面信息并将画面信息显示,使得显示屏在没有启动操作系统之前就已亮起,减少了显示屏的黑屏时间,使得用户的等待时间缩短。

在一种可能的设计中,所述预先申请的内存可以是所述cpu在所述计算机开机时申请的。

通过上述设计,能够保证计算机在每次进入睡眠状态之前,所述计算机中可以预先申请到用于保存显示屏显示的画面信息的内存,提升整个睡眠状态切换到唤醒状态的处理过程的处理效率。

在一种可能的设计中,所述cpu将计算机的显示屏当前显示的画面信息保存在预先申请的内存中之前,所述cpu需获取预先申请的内存的地址信息,所述cpu可以预先设置一个wmi接口,所述cpu通过调用预设的wmi接口能获取预先申请的内存的地址信息;之后,所述cpu在保存计算机的显示屏当前显示的画面信息时,所述cpu根据所述预先申请的内存的地址信息对计算机的显示屏当前显示的画面信息进行保存。

通过上述设计,所述cpu通过内置的wmi接口获取预先申请的内存的地址信息,能够较快速且便捷地在进入睡眠状态之前获取地址信息,并将画面信息保存。

在一种可能的设计中,cpu在申请内存后,可以采用多种方式设置内存以表征内存的存储状态,一般可以通过以下两种方式:

方式一、预先申请的内存中设置第一状态位,存在第一状态位则表明所述内存中存储有所述画面信息。所述cpu在将所述计算机的显示屏当前显示的画面信息保存在预先申请的内存时,在所述预先申请的内存中设置第一状态位,所述cpu在未将所述计算机的显示屏当前显示的画面信息保存在预先申请的内存时,在所述预先申请的内存中不设置第一状态位。

方式二、预先申请的内存中设置第二状态位,第二状态位为设定值时表明所述内存中存储有所述画面信息,第二状态位不为设定值时表明所述内存中未存储所述画面信息。所述cpu在将计算机的显示屏当前显示的画面信息保存在预先申请的内存时,设置所述第二状态位为设定值,所述cpu在未将计算机的显示屏当前显示的画面信息保存在预先申请的内存时,设置所述第二状态位为其他值。

通过上述设计,所述cpu在保存画面信息时,在预先申请的内存中设置对应的状态位,以便在之后获取画面信息后可以直接通过识别状态位来确定是否存储有所述画面信息,以提升整个睡眠状态切换到唤醒状态的处理过程的处理效率。

在一种可能的设计中,所述cpu在需要从所述预先申请的内存中获取所述画面信息之前,可以通过预先申请的内存中的状态位确定内存的存储状态,所述cpu在确定所述预先申请的内存中存储有第一状态位或存储有第二状态位且第二状态位的值为设定值时,可以获知预先申请的内存中存储有所述画面信息,若所述预先申请的内存中未存储有第一状态位或存储有第二状态位且第二状态位的值为其他值时,可以获知预先申请的内存中未存储有所述画面信息。

通过上述设计,在预先申请的内存中设置状态位,所述cpu能够通过识别状态位较为方便、快捷的确定预先申请的内存的存储状态。

第二方面,本申请实施例还提供了一种计算机,该计算机具有实现上述方法实例中装置行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一个可能的设计中,所述计算机的结构中包括检测单元、存储单元、处理单元和显示单元,这些单元可以执行上述方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。

在一种可能的设计中,所述计算机的结构中包括存储器、输入装置、显示屏、内存和处理器,所述存储器与所述处理器耦合,其保存所述计算机必要的程序指令和数据,所述处理器被配置为调用并执行存储器中存储的程序指令以执行上述第一方面所述的各个方法的相应功能。

第三方面,本申请实施例中还提供一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现第一方面或上述第一方面的任意一种设计提供的方法。

第四方面,本申请实施例中还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或上述第一方面的任意一种设计提供的方法。

本发明实施例中,所述cpu在检测到用于指示计算机进入睡眠状态的第一指令后,选择将计算机的显示屏当前显示的画面信息保存在预先申请的内存中,并控制计算机进入睡眠状态;后续所述cpu检测到用于指示计算机从睡眠状态切换到唤醒状态的第二指令后,从所述预先申请的内存中获取所述画面信息,并将所述画面信息在所述显示屏上显示;所述cpu启动操作系统,控制所述计算机从睡眠状态切换到唤醒状态。采用本发明实施例的方式,cpu在控制计算机唤醒过程中,启动操作系统之前就可以使显示屏能够显示画面信息,可以较早的使显示屏亮起并显示画面信息以结束处于睡眠状态唤醒过程中显示屏的黑屏状态,减少用户的等待时间,提升用户体验。

附图说明

图1为本申请实施例提供的一种计算机的架构示意图;

图2为本申请实施例提供的一种针对计算机的睡眠状态唤醒的方法示意图;

图3为本申请实施例提供的一种计算机的硬件结构示意图;

图4为本申请实施例提供的一种针对计算机的睡眠状态唤醒方法的流程图;

图5为本申请实施例提供的一种计算机的结构示意图;

图6为本申请实施例提供的一种计算机的结构示意图。

具体实施方式

本申请提供了一种针对计算机的睡眠状态唤醒方法及装置,用以在计算机进入睡眠状态后再次唤醒时能够在唤醒过程中,显示屏较早的显示画面并结束黑屏状态,缩短用户的等待时间,可以进一步改善用户体验。

首先,对本申请涉及的部分用语进行解释说明,以便使本领域技术人员理解。

1)睡眠状态,是指计算机进入acpi定义的s3模式对应的状态;计算机用户可以在电源管理菜单中选择相应的选项进入睡眠状态,也可以输入相应的命令使计算机进入睡眠状态,睡眠状态中的计算机的各个硬件组成模块处于低功耗状态。

2)睡眠状态唤醒,进入睡眠状态的计算机要恢复至工作状态的过程,叫做睡眠状态唤醒,只有从睡眠状态唤醒,计算机才能正常工作。从睡眠状态唤醒后,计算机的显示屏显示的画面为计算机上一次进入睡眠状态时的画面。

3)外接设备,计算机通过计算机中的外设接口接入的设备,包括但不限于:显示器、鼠标、键盘、触控面板等。

4)windows管理规范(windowsmanagementinstrumentation,wmi)接口,用于实现cpu数据的调用功能,在本发明实施例中,使用wmi接口设置可以使cpu能够获取预先申请的内存的地址信息,可以根据具体的场景设置wmi接口输入参数和输出参数。

5)第一状态位、第二状态位,状态位用于表征内存的存储状态,状态位位于内存中的设定比特处,根据设定比特中存储的数值或标识来确定是否存在状态位或者确定状态位是否为设定值。本发明实施例中,若内存中存储有画面信息,则在设定比特处设置第一状态位,或将第二状态位设置为设定值。

6)地址信息,用于表示预先申请的内存的位置信息,cpu通过地址信息可以获知预先申请的内存的具体位置,将画面信息存储在所述内存中,地址信息的表示方法有多种,所述地址信息可以是内存的起始位置与长度,也可以是内存的起始位置和末位置,凡是可以用于表示内存的位置的地址信息均适用于本发明实施例。

7)、多个,是指两个或两个以上。

本申请实施例针对计算机的睡眠状态唤醒方案可应用于各种装置,该装置包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如平板电脑、个人数字助理等)、小型计算机、大型计算机等。下面以计算机为例对本申请实施例提供的方案进行具体描述,下述先简单介绍计算机的具体结构组成。

参考图1所示,为本申请实施例应用的手持式设备(laptop)的计算机硬件结构示意图。如图1所示,计算机100包括主机处理器110、存储器120。存储器120可用于存储软件程序以及数据,主机处理器110通过运行存储在存储器120的软件程序以及数据,从而执行计算机100的各种功能以及进行数据处理。存储器120主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序(比如控制计算机100进入睡眠状态的功能等)等;数据存储区可存储根据计算机100的使用过程所创建的数据(比如显示屏显示的画面信息等)等。此外,存储器120可以为高速随机存取存储器,还可以为非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

主机处理器110是计算机100的控制中心,利用各种接口和线路连接整个计算机100的各个部分,通过运行或执行存储在存储器120内的软件程序和/或数据,执行计算机100的各种功能和数据处理,从而对计算机100进行整体监控。主机处理器110可以包括运算器、寄存器和控制器,用于执行相关操作,以实现本申请实施例所提供的技术方案。

计算机100还包括一些外接设备,例如输入设备130,用于接收输入的数字信息、字符信息或接触式触摸操作/非接触式手势,以及产生与计算机100的用户设置以及功能控制有关的信号输入等。

具体地,本申请实施例中,该输入设备130可以包括触控面板131。触控面板131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板131上或在触控面板131的操作),并根据预先设定的程式驱动相应的连接装置。该输入设备130也可以包括键盘132和鼠标133,通过键盘132可以将字符、数字、标点符号等输入到计算机100中,也可以通过键盘132上的功能按键向计算机100发出命令;例如,可以通过点击键盘132上的字符按键输入命令以向计算机100中的主机处理器110发起进入睡眠状态的第一指令,或者通过点击键盘132上的任意按键触发处于睡眠状态的计算机100唤醒。鼠标133可以对当前显示屏上的游标进行定位,并通过按键和滚轮装置对游标所经过位置的屏幕元素进行操作,触发计算机100执行对应的命令;例如可以通过鼠标133点击显示屏上显示的进入睡眠状态的选项以向计算机100中的主机处理器110发起进入睡眠状态的第一指令。

计算机100还可以包括其他输入设备,其他输入设备可以包括但不限于功能键(比如音量控制按键、开关按键等)、轨迹球、光笔、操作杆等中的一种或多种。

计算机100可以包括显示设备140,显示设备140包括显示屏141,用于显示由用户输入的信息或提供给用户的信息以及计算机100的各种菜单界面等,在本申请实施例中主要用于显示计算机100当前处理状态的画面信息。可选的,显示屏141可以采用液晶显示器(liquidcrystaldisplay,lcd)或oled(organiclight-emittingdiode,有机发光二极管)等形式来配置显示屏141。在其他一些实施例中,触控面板131可覆盖显示屏上,形成触摸显示屏141。

计算机100还可以包括显卡150,显卡150将输入到计算机100中的数字信号转换为模拟信号,并使显示屏141将转换的模拟信号显示出来,显卡150也具有图像处理能力,处理后的图像通过显示屏141显示出来。

除以上之外,计算机100还可以包括用于给其他模块供电的电源160。计算机100还可以包括一个或多个传感器170,例如图像传感器、亮度传感器、光线传感器、gps传感器、红外传感器等。计算机100还可以包括无线射频(radiofrequency,rf)电路180,用于与无线网络设备进行网络通信,还可以包括wifi模块190,用于与其他设备进行wifi通信,获取其他设备传输的图像或者数据等。

基于上述介绍,本申请提供一种针对计算机的睡眠状态唤醒的方法及装置,用以解决现有技术中存在的计算机从睡眠模式切换到唤醒模式的过程中显示屏保持黑屏时间较长的问题。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。

首先,介绍本申请实施例提供的针对计算机睡眠状态唤醒的方法,该方法适用于上述图1所示的计算机100,因此,在本申请实施例中,仅以所述计算机100为例进行描述,但是并不限制本发明实施例应用到其他类型的终端设备中。参阅图2所示,该方法的具体流程包括:

步骤201:所述计算机100中的cpu在检测到用于指示计算机100进入睡眠状态的第一指令后,将计算机100的显示屏当前显示的画面信息保存在预先申请的内存中,并控制计算机100进入睡眠状态。

其中,预先申请的内存可以是cpu在计算机100开机时申请的,计算机100在每次开机时,cpu在计算机100中申请一块内存用于存储显示屏显示的画面信息,其中,预先申请的内存应该保证计算机100从睡眠状态中唤醒后,存储放在内存中的数据不会丢失,例如设置预先申请的内存的属性可以是efiacpimemorynvs。当然也可以是在计算机100中包含的内存中预先预留的一块内存区域。

一种实现方式中,cpu将计算机100的显示屏当前显示的画面信息保存在预先申请的内存中,可以通过对显示屏当前显示的画面信息进行快照处理,即对当前显示的画面信息进行拍照,然后将快照信息存储在与预先申请的内存中。

步骤202:所述cpu后续在检测到用于指示计算机100从睡眠状态切换到唤醒状态的第二指令后,从上述预先申请的内存中获取存储的画面信息,并将所述画面信息在所述显示屏上显示;

具体的,所述cpu在检测到用于指示计算机100从睡眠状态切换到唤醒状态的第二指令后;

所述cpu启动bios的pei阶段;所述cpu在pei阶段初始化显卡后,从所述预先申请的内存中获取所述画面信息。

所述cpu在启动操作系统之前获取所述画面信息并将所述画面信息在所述显示屏上显示。

步骤203:所述cpu启动操作系统,控制所述计算机100从睡眠状态切换到唤醒状态。

其中,所述启动操作系统包含加载所述计算机外接设备驱动,以使所述cpu识别用户在所述显示屏显示的画面信息上的操作。

所述cpu在启动操作系统时,加载所述计算机外接设备驱动,使得所述计算机的外接设备可以运行,例如,加载了键盘或鼠标驱动后,用户可通过键盘输入字符,通过鼠标点击画面信息上显示的菜单;进而所述cpu可以通过识别用户通过键盘或鼠标在所述显示屏显示的画面信息上的操作,转换为控制指令执行对应的操作。

一种实现方式,在上述步骤201中,可以在计算机100中设置一个wmi接口,用于cpu在需要保存显示屏当前显示的画面信息时通过调用wmi接口获取预先申请的内存的地址信息。cpu可以为所述wmi接口设置一个调用号,cpu输入所述wmi接口的调用号后调用所述wmi接口,通过wmi接口输出预先申请的内存的地址信息。

如图3所示,为x86架构的计算机主要硬件模块的组成结构图,其中,包括cpu300、northbridge(北桥)301、memory(内存)302、vga((videographicsarray,视频图形阵列)303、southbridge(南桥)304、pcie(peripheralcomponentinterconnectexpress,高速串行计算机扩展总线)305,usb(universalserialbus,通用串行总线)306,sata(serialata,串口硬盘)307,i2c(inter-integratedcircuit,两线式串行总线)308,spi(serialperipheralinterface,串行外设接口)309,ec(embeddedcontroller,嵌入式控制器)310。其中,northbridge301连接高速设备,如memory302,vga303;southbridge304连接低速设备,如pcie305,usb306,sata307,i2c308,spi309,ec310等;cpu300通过与northbridge301、southbridge304之间进行通信,以控制计算机中各个硬件模块。

在上述步骤201中,用于指示计算机100进入睡眠状态的第一指令的触发方式有多种,例如用户通过键盘或者鼠标选择进入睡眠状态的选项后,计算机100开始执行进入睡眠状态的一系列操作,计算机100中首先会以广播的方式发送用于指示计算机100进入睡眠状态的第一指令,以使计算机100中各个组成模块均能接收到第一指令,而计算机100中的各个组成模块在接收到第一指令后,将执行相应的进入睡眠状态的操作,例如计算机100中的cpu在接收到第一指令后,控制内存保存计算机100当前处理的数据信息,各个硬件组成模块进入低功耗状态,在本发明实施例中,cpu还会将计算机100的显示屏当前显示的画面信息保存在预先申请的内存中。

一种实现方式,所述cpu通过调用预设的wmi接口获取预先申请的内存的地址信息后,所述cpu根据所述预先申请的内存的地址信息,可以将计算机100的显示屏当前显示的画面信息保存在所述预先申请的内存中。

其中,对于预先申请的内存的设置方式可以有多种,下面介绍其中两种:

第一种,预先申请的内存中设置有第一状态位,所述第一状态位用于表征所述预先申请的内存中存储有所述画面信息。

预先申请的内存中可以设置一个或多个比特作为第一状态位,当cpu在将计算机100的显示屏当前显示的画面信息保存在预先申请的内存时,设置第一状态位;当cpu未将计算机100的显示屏当前显示的画面信息保存在预先申请的内存时,不设置第一状态位。

其中,第一状态位表征所述预先申请的内存中存储有所述画面信息方式有多种,例如,预先申请的内存中可以设置一个比特为第一状态位,当该比特上存储0时表征存储有所述画面信息;预先申请的内存中还可以选择设置两个比特为第一状态位,当两个比特位为00时表征存储有所述画面信息;第一状态位的设置也可以是通过特定的标识来确定,如当在内存中需要设置第一状态位时,则对内存中的一个或多个比特上设置特定的标识来表征内存中存储有第一状态位。

所述第一状态位的位置可以是预先申请的内存中的起始位置,也可以是预先申请的内存中的末位置,也可以是预先申请的内存中的其他位置。

第二种,预先申请的内存中设置有第二状态位,所述第二状态位用于表征所述预先申请的内存的存储状态。

预先申请的内存中可以设置一个或多个比特作为第二状态位,当cpu在将计算机100的显示屏当前显示的画面信息保存在预先申请的内存中时,设置第二状态位为一个设定值;当cpu未将计算机100的显示屏当前显示的画面信息保存在预先申请的内存中时,设置第二状态位为其他值。

其中,第二状态位表征所述预先申请的内存的存储状态的方式有多种,例如,预先申请的内存中可以设置一个比特为第二状态位,当该比特上存储1时表征存储有所述画面信息,当该比特上存储0时表征未存储有所述画面信息;内存中还可以设置两个比特为第二状态位,当两个比特位为11时表征存储有所述画面信息,当两个比特位为00时表征未存储有所述画面信息。所述第二状态位的位置可以是预先申请的内存中的起始位置,也可以是预先申请的内存中的末位置,也可以是预先申请的内存中的其他位置。

一种实现方式,在上述步骤202中,所述cpu检测到用于指示计算机100从睡眠状态切换到唤醒状态的第二指令后,所述cpu首先进入bios启动的sec阶段,申请cache,加载sec代码,之后进入bios启动的pei阶段,除了初始化cpu、内存等硬件组件外,cpu还需要初始化显卡。

其中,用于指示计算机100从睡眠状态切换到唤醒状态的第二指令的触发方法有许多种,例如用户通过点击电源键或者利用鼠标点击相应的唤醒选项后,计算机100中首先会以广播的方式发送用于指示计算机100从睡眠状态切换到唤醒状态的第二指令,以使计算机100中各个组成模块均能接收到第二指令,而计算机100中的各个组成模块在接收到第二指令后,将执行相应的从睡眠状态中唤醒的相关操作,例如计算机100中的cpu在接收到第二指令后,会进入bios的两个阶段,在本发明实施例中,cpu会在bios的pei阶段中的初始化显卡,从所述预先申请的内存中获取所述画面信息。

需要说明的是,在现有的pei阶段,并不进行显卡的初始化操作,而是在cpu启动操作系统后才进行显卡的初始化操作,本发明实施例中在pei阶段初始化显卡与启动操作系统后的初始化显卡的操作是不同的,在pei阶段初始化显卡时是利用bios中的gop(graphicoutputprotocol,图形输出协议)驱动来初始化显卡,而在启动操作系统后初始化显卡是利用操作系统中的vga驱动来初始化显卡。

所述cpu可以在启动操作系统后再次初始化显卡,恢复显示屏在睡眠之前的画面信息,以替换在bios的pei阶段中的初始化显卡后显示的画面信息,由于显示屏在睡眠之前的画面信息与bios的pei阶段中的初始化显卡后显示的画面信息是相同的,也可以不进行切换。

在pei阶段中,cpu初始化显卡的时机并不进行严格的要求,可以在刚进入pei阶段时,首先初始化显卡,也可以与pei阶段中的其他操作同时进行。

当初始化显卡完成后,显示屏就能够显示画面,此时cpu从所述预先申请的内存中获取存储的画面信息,将所述画面信息转存在显卡的内存中,将所述画面信息在所述显示屏上显示。

针对于上述两种不同的预先申请的内存的设置方式,当所述cpu从所述预先申请的内存中获取所述画面信息之前,还可以执行如下判断操作:

第一种,预先申请的内存中设置有第一状态位时,所述cpu若确定所述预先申请的内存中存储有第一状态位时,再从所述预先申请的内存中获取所述画面信息;所述cpu若确定所述预先申请的内存中未存储有第一状态位,则确定无法获取所述画面信息,可以直接执行睡眠状态到唤醒状态的操作流程。

例如,预先申请的内存中设置起始的第一个比特为第一状态位,该比特上存储0时表征存储有所述画面信息,当所述cpu从所述预先申请的内存中获取所述画面信息时,首先判断表示预先申请的内存的第一个比特是否为0,若为0,则确定预先申请的内存中存在第一状态位,cpu确定预先申请的内存中存储有画面信息,就可以从预先申请的内存中获取画面信息;若不为0,则确定预先申请的内存中不存在第一状态位,cpu确定中预先申请的内存中不存在画面信息。

还例如,内存中通过特定的标识来设置第一状态位,所述cpu需要从所述预先申请的内存中获取所述画面信息时,可以判断内存中是否存在特定标识,若存在特定标识则确定预先申请的内存中存在第一状态位,且预先申请的内存中存储有画面信息,所述cpu可以获取所述存储的画面信息,否则预先申请的内存中不存在画面信息,cpu可以执行现有的睡眠状态到唤醒状态的操作流程。

第二种,预先申请的内存中设置有第二状态位时,所述cpu若确定所述预先申请的内存中存储有第二状态位且第二状态位的值为设定值,从所述预先申请的内存中获取所述画面信息;所述cpu若确定所述预先申请的内存中存储有第二状态位且第二状态位的值不是设定值而为其他值时,所述cpu无法获取所述画面信息,则执行现有的睡眠状态到唤醒状态的操作流程。

例如,预先申请的内存中设置起始的第一个比特为第二状态位,该比特上存储1时表征存储有所述画面信息,该比特上存储0时表征未存储有所述画面信息,当所述cpu从所述预先申请的内存中获取所述画面信息时,首先判断表示第二状态位的比特上是否为1,若为1,则确定预先申请的内存中存储的第二状态位为设定值,预先申请的内存中存储有画面信息,所述cpu就可以从内存中获取画面信息;若不为1,则确定预先申请的内存中存储的第二状态位不为设定值,预先申请的内存中不存在画面信息。

基于上述实施例,如图4所示,以内存中设置有第二状态位为例,本发明实施例一种针对计算机的睡眠状态唤醒的方法,该方法包括:

步骤401:计算机中的cpu检测到用于指示计算机进入睡眠状态的第一指令;

步骤402:cpu调用预设的wmi接口获取预先申请的内存的地址信息;

步骤403:cpu将计算机的显示屏当前显示的画面信息按照获取的地址信息,保存在预先申请的内存中,并控制计算机进入睡眠状态;

步骤404:cpu后续检测到用于指示计算机从睡眠状态切换到唤醒状态的第二指令;

步骤405:cpu启动bios的pei阶段,在pei阶段中初始化显卡;

步骤406:cpu判断所述预先申请的内存中的第二状态位的值是否为设定值,若是,则执行步骤407,否则执行步骤409;

步骤407:cpu从所述预先申请的内存中获取所述画面信息;

步骤408:cpu将所述画面信息在所述显示屏上显示;

步骤409:cpu启动操作系统,控制所述计算机从睡眠状态切换到唤醒状态。

基于以上实施例,本申请实施例还提供了一种计算机,该计算机用于实现如图2所示的针对计算机的睡眠状态唤醒的方法。参阅图5所示,该计算机500包括:检测单元501、存储单元502、处理单元503和显示单元504。

其中,检测单元501,用于检测用于指示计算机进入睡眠状态的第一指令和用于指示计算机从睡眠状态切换到唤醒状态的第二指令;存储单元502,用于在所述检测单元501检测到所述第一指令后,将计算机的显示屏当前显示的画面信息保存在预先申请的内存中;处理单元503,用于在所述存储单元502将所述画面信息保存在所述内存中后,控制计算机进入睡眠状态;以及在所述检测单元501检测到所述第二指令后,从所述预先申请的内存中获取所述画面信息;以及启动操作系统,控制所述计算机从睡眠状态切换到唤醒状态;显示单元504,用于在所述处理单元503在从所述预先申请的内存中获取所述画面信息后,将所述处理单元503获取的画面信息在显示屏上显示。

其中,所述启动操作系统包含加载所述计算机500外接设备驱动,以使所述处理单元503识别用户在所述显示屏显示的画面信息上的操作。

处理单元503在从所述预先申请的内存中获取所述画面信息时,具体用于:

处理单元503启动bios的pei阶段;在pei阶段初始化显卡后,从所述预先申请的内存中获取所述画面信息。

处理单元503获取所述画面信息并将所述画面信息在所述显示屏上显示是在启动操作系统之前进行的。

所述预先申请的内存可以但不限于是所述存储单元502在所述计算机开机时申请的,以使所述存储单元502在计算机进入睡眠状态前将所述显示单元504中显示屏显示的画面信息保存在内存中。

其中,存储单元502在所述检测单元501检测到所述第一指令后需要获知预先申请的内存的地址信息以根据所述预先申请的内存的地址信息,将计算机的显示屏当前显示的画面信息保存在上述预先申请的内存中。一种可能的实现方式,所述存储单元502可以通过调用预设的wmi接口获取预先申请的内存的地址信息。

更进一步地,当所述存储单元502申请内存之后,可以在预先申请的内存中设置状态位,以表明所述内存的存储状态,根据具体场景可以分为如下两种方式:

方式一、预先申请的内存中设置第一状态位,所述存储单元502在将所述计算机的显示屏当前显示的画面信息保存在预先申请的内存时,在所述预先申请的内存中设置第一状态位,所述第一状态位用于表征所述内存中存储有所述画面信息。

方式二、预先申请的内存中设置第二状态位,所述存储单元502在将计算机的显示屏当前显示的画面信息保存在预先申请的内存时,设置所述第二状态位为设定值,所述设定值表示所述内存中保存有画面信息;所述存储单元502在未将计算机的显示屏当前显示的画面信息保存在预先申请的内存时,设置所述第二状态位为其他值,所述其他值表示所述内存中未保存有画面信息。

相应地,针对上述两种设置方式,当处理单元503从所述内存中获取画面信息时,可采用如下两种方式:

方式一、处理单元503确定所述预先申请的内存中存储有第一状态位后,从所述内存获取画面信息;处理单元503确定所述预先申请的内存中未存储有第一状态位,处理单元503不获取画面信息,执行计算机从睡眠状态唤醒的现有操作。

方式二、处理单元503确定所述预先申请的内存中存储有第二状态位且第二状态位的值为设定值,从所述内存获取画面信息;处理单元503确定所述预先申请的内存中存储有第二状态位,第二状态位的值为其他值时,处理单元503不获取画面信息,执行计算机从睡眠状态唤醒的现有操作。

需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

基于以上实施例,本申请实施例还提供了一种计算机,所述计算机用于实现如图2所示的针对计算机的睡眠状态唤醒的方法。参阅图6所示,所述计算机600包括存储器601、输入装置602、显示屏603、内存604和处理器605;其中:

所述存储器601,存储有软件程序和相关数据;具体地,软件程序可以包括程序代码,该程序代码包括计算机操作指令。所述存储器601可能包含ram,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

处理器605,用于执行所述存储器601中所存储的软件程序,以实现如图2所示的针对计算机的睡眠状态唤醒方法。

所述输入装置602,用于接收用于指示计算机进入睡眠状态的第一指令和用于指示计算机从睡眠状态切换到唤醒状态的第二指令,并将所述第一指令和第二指令传输至所述处理器605。具体的,所述输入装置602可以为键盘、鼠标、触控面板等,例如,当输入装置602为触控面板时,触控面板在识别到用户点击了计算机进入睡眠状态的选项后,确定接收到用于指示计算机进入睡眠状态的第一指令,并将第一指令传输至所述处理器605。

所述显示屏603,用于显示计算机当前处理任务的画面信息。具体的,显示屏603可以显示处理器605从所述内存中获取的画面信息,以使显示屏603在计算机从睡眠状态切换到唤醒状态完成之前提前亮起。

所述内存604,预先由所述处理器605申请,并用于存储所述显示屏603在进入睡眠状态之前显示的最新画面信息。具体的,所述内存604可以为移动硬盘、只读存储器、随机存取存储器等存储介质。

所述处理器605,用于调用所述存储器601中存储的软件程序,以执行如图2所示的针对计算机的睡眠状态唤醒的方法,具体可以如下:

在检测到所述输入装置602传输的用于指示计算机进入睡眠状态的第一指令后,将所述显示屏603当前显示的画面信息保存在所述内存604中,并控制所述计算机进入睡眠状态;以及在检测到所述输入装置602传输的用于指示计算机从睡眠状态切换到唤醒状态的第二指令后,从所述内存604中获取存储的所述画面信息,并将所述画面信息在所述显示屏603上显示;然后再启动操作系统,以控制所述计算机从睡眠状态切换到唤醒状态。以使计算机从睡眠状态,通过初始化显卡使显示屏能够尽早显示画面,较早的结束处于睡眠状态唤醒过程中显示屏的黑屏状态,以减少用户的等待时间,有助于提升用户体验。

其中,所述启动操作系统包含加载所述计算机600外接设备驱动,以使所述处理器605识别用户在所述显示屏603显示的画面信息上的操作。

处理器605从所述内存604中获取存储的所述画面信息时,所述处理器605启动bios的pei阶段,在pei阶段初始化显卡后,从所述预先申请的内存中获取所述画面信息。

处理器605获取画面信息,并将画面信息显示在所述显示屏603上是在启动操作系统之前进行的。

所述处理器605为了在计算机进入睡眠状态之前,计算机中有相应的内存可以保存所述显示屏603当前显示的画面信息,所述处理器605可以选择优先在所述计算机开机时就申请内存604。这样,所述处理器605在检测到所述第一指令后需要获知所述内存604的地址信息以根据所述内存604的地址信息,将计算机的显示屏603当前显示的画面信息保存在所述内存604中。一种可能的实现方式,所述处理器605可以预先设置wmi接口,通过调用预设的wmi接口获取所述内存604的地址信息。

当所述处理器605申请内存604之后,可以在所述内存604中设置状态位,以表明所述内存604的存储状态,根据具体场景可以分为如下两种方式:

方式一、所述内存604中设置第一状态位。所述处理器605在将所述计算机的显示屏603当前显示的画面信息保存在所述内存604中时,在所述内存604中设置第一状态位,所述第一状态位用于表征所述内存604中存储有所述画面信息。

方式二、所述内存604中设置第二状态位。所述处理器605在将所述显示屏603当前显示的画面信息保存在所述内存604时,设置所述第二状态位为设定值,所述设定值表示所述内存604中保存有画面信息。所述处理器605在未将所述显示屏603当前显示的画面信息保存在所述内存604时,设置所述第二状态位为其他值,所述其他值表示所述内存604中未保存有画面信息。

针对与上述两种设置方式,当处理器605从所述内存604中获取画面信息时,可采用如下两种方式:

方式一、所述处理器605确定所述内存604中存储有第一状态位,从所述内存604获取画面信息;处理器605确定所述预先申请的内存604中未存储有第一状态位,处理器605不获取画面信息,执行计算机从睡眠状态唤醒的现有操作。。

方式二、所述处理器605确定所述内存604中存储有第二状态位且第二状态位的值为设定值,从所述内存604获取画面信息;处理器605确定所述内存604中存储有第二状态位,第二状态位的值为其他值,处理器605不获取画面信息,执行计算机从睡眠状态唤醒的现有操作。

所述处理器605和所述存储器601、所述输入装置602、所述显示屏603和所述内存604之间可以通过图6中所示的总线606相互连接;所述总线606可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线606可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

本发明实施例还提供了一种计算机可读存储介质,存储有处理器为执行上述方法所需的计算机程序指令和数据,比如该存储介质可以为上述的存储器等类似的存储介质。

综上所述,本发明实施例提供的针对计算机的睡眠状态唤醒的方法及装置,通过计算机中的cpu或处理器在检测到用于指示计算机进入睡眠状态的第一指令后,将计算机的显示屏当前显示的画面信息保存在预先申请的内存中,并控制计算机进入睡眠状态;后续所述cpu检测到用于指示计算机从睡眠状态切换到唤醒状态的第二指令后,从所述预先申请的内存中获取所述画面信息,并将所述画面信息在所述显示屏上显示;然后再启动操作系统,控制所述计算机从睡眠状态切换到唤醒状态。采用本发明实施例的方式,cpu或处理器在控制计算机进入睡眠状态前保存显示屏当前显示的画面信息,之后cpu在控制计算机从睡眠状态唤醒的过程中,提前通过初始化显卡使显示屏能够尽早显示画面,较早的结束处于睡眠状态唤醒过程中显示屏的黑屏状态,以减少用户的等待时间,有助于提升用户体验。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1