CN114253608A - 系统睡眠后的唤醒方法、装置及设备 - Google Patents
系统睡眠后的唤醒方法、装置及设备 Download PDFInfo
- Publication number
- CN114253608A CN114253608A CN202011023956.5A CN202011023956A CN114253608A CN 114253608 A CN114253608 A CN 114253608A CN 202011023956 A CN202011023956 A CN 202011023956A CN 114253608 A CN114253608 A CN 114253608A
- Authority
- CN
- China
- Prior art keywords
- register
- state information
- linked list
- sleep
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000007958 sleep Effects 0.000 title claims description 77
- 230000002618 waking effect Effects 0.000 claims abstract description 10
- 208000019116 sleep disease Diseases 0.000 claims abstract description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本发明实施例提供了一种系统睡眠后的唤醒方法、装置及设备,所述方法包括在系统进入睡眠状态前,获取至少一个第一寄存器的第一状态信息,第一寄存器为与系统唤醒相关的,且位于桥片中的寄存器,第一状态信息为第一寄存器中的非易失性状态信息,将获取的第一寄存器的第一状态信息存储至链表,链表位于内存中,在系统达到睡眠后的唤醒条件时,从链表中获取与系统唤醒相关的第一状态信息,并将获取的第一状态信息分别存储至对应的寄存器中,以使系统恢复至睡眠前的状态。减少了系统唤醒的时间,进而提高了用户的使用体验。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种系统睡眠后的唤醒方法、装置及设备。
背景技术
睡眠状态是指将所有运行的实时数据存储到内存(媒介)上,并且关闭一切不必要的硬件设备以求省电。
在系统处于睡眠状态时,除了开机操作之外,其他的操作均属于无效的操作,若想执行相应的操作,需要先唤醒系统,然后再执行相应的操作。
然而,在唤醒系统时,需要重新执行一遍开机启动流程,才能恢复至系统睡眠之前的状态,增大了系统唤醒的时间,进而降低了用户的使用体验。
发明内容
本发明实施例提供一种系统睡眠后的唤醒方法、装置及设备,以减少系统唤醒的时间,提高用户的使用体验。
第一方面,本发明实施例提供一种系统睡眠后的唤醒方法,包括:
在系统进入睡眠状态前,获取至少一个第一寄存器的第一状态信息,所述第一寄存器为与系统唤醒相关的,且位于桥片中的寄存器,所述第一状态信息为所述第一寄存器中的非易失性状态信息;
将获取的所述第一寄存器的第一状态信息存储至链表,所述链表位于内存中;
在所述系统达到睡眠后的唤醒条件时,从所述链表中获取与系统唤醒相关的第一状态信息,并将获取的所述第一状态信息分别存储至对应的寄存器中,以使所述系统恢复至睡眠前的状态。
可选的,所述在系统进入睡眠状态前,获取至少一个第一寄存器的第一状态信息,包括:
在预加载初始化阶段且不处于待机到内存的状态时,初始化所述至少一个第一寄存器,并获取初始化后的所述第一寄存器中的第一状态信息。
可选的,所述初始化所述至少一个第一寄存器,并获取初始化后的所述第一寄存器中的第一状态信息,包括:
初始化所述至少一个第一寄存器,并通过预先设置的所述第一寄存器对应的实例化对象获取初始化后的所述第一寄存器中的第一状态信息。
可选的,所述将获取的所述第一寄存器的第一状态信息存储至链表,包括:
将获取的所述第一寄存器的第一状态信息按寄存器所属的设备进行分类,得到各设备对应的寄存器的状态信息;
将每个设备对应的寄存器的状态信息作为一个节点插入至链表。
可选的,在所述将获取的所述第一寄存器的第一状态信息存储至链表,所述链表位于内存中之前,还包括:
生成所述链表;
初始化所述链表的表头,并将初始化后的链表存储至内存中。
可选的,所述第一寄存器包括:
以太网PHY寄存器、PLL配置寄存器、PWM控制寄存器、HT时钟配置寄存器,以及IIC控制寄存器中的任意一种或多种。
可选的,所述第一状态信息包括:签名字段、基址、偏移量,以及注册值中的任意一种或多种。
第二方面,本发明实施例提供一种系统睡眠后的唤醒装置,包括:
获取模块,用于在系统进入睡眠状态前,获取至少一个第一寄存器的第一状态信息,所述第一寄存器为与系统唤醒相关的,且位于桥片中的寄存器,所述第一状态信息为所述第一寄存器中的非易失性状态信息;
处理模块,用于将获取的所述第一寄存器的第一状态信息存储至链表,所述链表位于内存中;
所述处理模块,还用于在所述系统达到睡眠后的唤醒条件时,从所述链表中获取第一状态信息,并将获取的所述第一状态信息分别存储至对应的寄存器中,以使所述系统恢复至睡眠前的状态。
第三方面,本发明实施例提供一种系统睡眠后的唤醒设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面任一项所述的系统睡眠后的唤醒方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面任一项所述的系统睡眠后的唤醒方法。
本发明实施例提供了一种系统睡眠后的唤醒方法、装置及设备,采用上述方案后,能在系统进入睡眠状态前,先获取至少一个与系统唤醒相关的且位于桥片上的第一寄存器的第一状态信息,然后将第一状态信息存储至位于内存中的链表中,并在系统达到睡眠后的唤醒条件时,从链表中获取与系统唤醒相关的寄存器的第一状态信息,并将该第一状态信息分别存储至对应的寄存器中,以使系统可以直接恢复至睡眠前的状态,而无需再通过重新执行一遍开机启动流程的方式来恢复至睡眠前的状态,减少了系统唤醒的时间,进而提高了用户的使用体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的系统睡眠后的唤醒方法的应用系统的架构示意图;
图2为本发明实施例提供的系统睡眠后的唤醒方法的流程示意图;
图3为本发明另一实施例提供的系统睡眠后的唤醒方法的流程示意图;
图4为本发明实施例提供的系统睡眠后的唤醒装置的结构示意图;
图5为本发明实施例提供的系统睡眠后的唤醒设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例还能够包括除了图示或描述的那些实例以外的其他顺序实例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有技术中,在系统处于睡眠状态时,除了开机操作之外,其他的操作均属于无效的操作,若想执行相应的操作(如浏览网页操作、打开文件夹操作、打印操作等),需要先唤醒系统,然后再执行相应的操作。然而,在唤醒系统时,需要重新执行一遍开机启动流程,才能恢复至系统睡眠之前的状态,增大了系统唤醒的时间,进而降低了用户的使用体验。
基于上述问题,本申请通过在系统进入睡眠状态前,将与系统唤醒相关的寄存器的状态信息以链表的形式存储至内存中,形成NVS(Non Volatile Storage,非易失性存储器),后续再将NVS中存储的数据返回至对应的寄存器的方式来唤醒系统,无需再通过重新执行一遍开机启动流程的方式来恢复至睡眠前的状态,达到了既减少系统唤醒的时间,又提高用户的使用体验的技术效果。
图1为本发明实施例提供的系统睡眠后的唤醒方法的应用系统的架构示意图,如图1所示,包括处理器101、第一寄存器102和链表103,处理器101用于获取与系统唤醒相关的第一寄存器102的第一状态信息,并将其存储至链表103中,其中,链表103位于内存中。示例性的,链表可以为双向链表。此外,第一寄存器102为与系统唤醒相关的寄存器,可以有一个,也可以有多个。在本实例中,第一寄存器102为多个。
此外,第一寄存器102为位于桥片上的寄存器,示例性的,桥片可以为龙芯7A系列,具体型号可以为7A1000、7A 2000、7A 3000等。还可以为英特尔系列的P45、P43、X48、790GX、790FX等。下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本发明实施例提供的系统睡眠后的唤醒方法的流程示意图,本实施例的方法可以由处理器101执行。如图2所示,本实施例的方法,可以包括:
S201:在系统进入睡眠状态前,获取至少一个第一寄存器的第一状态信息,所述第一寄存器为与系统唤醒相关的,且位于桥片中的寄存器,所述第一状态信息为所述第一寄存器中的非易失性状态信息。
在本实施例中,为了节省电能,可以预先设置一系统睡眠条件,当达到该睡眠条件时,系统可以自动进入睡眠状态。其中,睡眠条件可以根据实际情况自定义进行设置。示例性的,睡眠条件可以为系统20分钟内没有接收到任何操作行为,即可自动进入睡眠状态。
此外,在系统达到睡眠条件,并进入睡眠状态之前,可以先获取到与系统唤醒相关的且位于桥片中的第一寄存器的第一状态信息,便于后续系统唤醒时,可以直接根据该第一状态信息进行唤醒。
其中,与系统唤醒相关的寄存器可以包括:以太网PHY寄存器、PLL配置寄存器、PWM(Pulse Width Modulation,脉宽调制)寄存器、HT时钟配置寄存器,以及IIC控制寄存器中的任意一种或多种。
在一实施例中,以MIPS架构为例进行详细说明,具体的,以太网PHY寄存器对应于MIPS架构下的具体寄存器可以为:GMAC控制器:PCICMD-PCI命令寄存器(GMAC-D3:F0,D3:F1)、CNL_BAR-控制基址寄存器。PLL配置寄存器用于将频率锁定在一个固定的阈值。PWM控制寄存器用于实现通道联级和是否允许寄存器计数等。HT时钟配置寄存器用于实现时钟的具体配置。IIC控制寄存器具体可以包括:分频锁存器低字节寄存器(PRERlo)、分频锁存器高字节寄存器(PRERhi)、控制寄存器(CTR)、发送数据寄存器(TXR)、接收数据寄存器(RXR)和命令寄存器(CR)中。
另外,所述第一状态信息可以包括:签名字段、基址、偏移量,以及注册值中的任意一种或多种。且,所述非易失性状态信息可以理解为在这些寄存器中设置的默认值信息或者一些不容易发生变化的状态信息。
此外,系统进入睡眠状态前可以包括两种情况,一种情况为系统初次上电,并且刚执行完开机初始化时对应的状态,另一种情况为达到睡眠条件时系统当前时刻对应的状态。
当系统进入睡眠状态前对应的情况为系统初次上电,并且刚执行完开机初始化时对应的状态时,则在系统进入睡眠状态前,获取至少一个第一寄存器的第一状态信息,可以包括:在预加载初始化阶段且不处于待机到内存的状态时,初始化至少一个第一寄存器,并获取初始化后的第一寄存器中的第一状态信息。
具体的,可以将预加载初始化阶段且不处于待机到内存时获取的第一状态信息存储至NVS中,后续在唤醒系统时,可以直接从NVS中获取第一寄存器的相关信息以实现系统唤醒,实现了系统关机之前的多次睡眠唤醒操作只需要进行一次第一状态信息的获取及存储,简化了状态信息获取的处理过程,进而也缩短了系统唤醒的时间。
当系统进入睡眠状态前对应的情况为达到睡眠条件时系统当前时刻对应的状态时,则在系统进入睡眠状态前,获取至少一个第一寄存器的第一状态信息,可以包括:在系统达到睡眠条件时,获取当前时刻各第一寄存器的第二状态信息,并将第二状态信息以链表的形式存储至内存中,并在系统从睡眠后的状态唤醒后,清除内存中的第二状态信息,实现了只在需要的时刻才获取各第一寄存器的第二状态信息,可以及时释放内存,不额外占用系统的内存空间。
其中,第二状态信息可以包括预加载初始化阶段且不处于待机到内存的状态,以及系统睡眠前相关的软件,以及硬件设备等对应的状态信息。
进一步的,在获取第一状态信息时,可以在系统进入睡眠状态前,通过预先设置的与系统唤醒相关的第一寄存器对应的实例化对象获取初始化后的第一寄存器中的第一状态信息。其中,与第一寄存器对应的实例化对象为每个与系统唤醒相关的第一寄存器设置的指针对象,或索引对象。通过该指针对象可以访问到对应的第一寄存器的地址,并获取到该地址中的数据,即第一状态信息。
此外,在通过预先设置的第一寄存器对应的实例化对象获取初始化后的第一寄存器中的第一状态信息之前,还可以包括:分别为与系统唤醒相关的每类第一寄存器设置指针对象,得到与系统唤醒相关的第一寄存器对应的实例化对象。
具体的,在通过实例化对象获取第一寄存器的第一状态信息之前,可以先生成能与各第一寄存器对应的实例化对象,然后再通过该第一实例化对象分别对应获取第一寄存器的第一状态信息。S202:将获取的第一寄存器的第一状态信息存储至链表,链表位于内存中。
在本实施例中,在获取到第一状态信息之后,为了避免系统处于睡眠状态时数据的丢失,可以将与系统唤醒相关的第一寄存器的第一状态信息存储至内存中,得到NVS。示例性的,NVS可以为RRAM(Resistive Random Access Memory,阻变式存储器)。
此外,为了提高状态信息后续查询的效率,可以以链表的形式将第一状态信息存储至NVS中。其中,链表可以为单向链表,也可以为双向链表,在本实施例中,优先选用双向链表。
进一步的,将获取的第一寄存器的第一状态信息存储至链表的具体实现方式可以为:将获取的第一寄存器的第一状态信息按寄存器所属的设备进行分类,得到各设备对应的寄存器的状态信息。将每个设备对应的寄存器的状态信息作为一个节点插入至链表。
具体的,每个寄存器都默认有所归属的设备,所归属的设备可以相同,也可以不同,因此,可以根据第一寄存器所归属的设备对第一寄存器的状态信息进行分类,然后将属于同一类设备的第一寄存器的状态信息作为一个节点插入至链表中。示例性的,有a、b、c三个寄存器,分别属于A、B、C三种设备,因此,可以将寄存器a对应的状态信息作为一个节点插入至链表中,然后将寄存器b对应的状态信息作为一个节点也插入至链表中,再将寄存器c对应的状态信息作为一个节点插入至链表中。
另外,在所述将获取的第一寄存器的第一状态信息存储至链表,链表位于内存中之前,还可以包括:
生成链表,初始化链表的表头,并将初始化后的链表存储至内存中。
具体的,在向链表中插入数据之前,可以先初始化链表的表头,获取链表的首地址,然后再根据初始化之后的链表执行插入与系统唤醒相关的寄存器的状态信息的动作。此外,该链表存储的内存位置可以根据计算机实际的内存状况和系统要求动态的调整,在此不再具体进行限定。
S203:在系统达到睡眠后的唤醒条件时,从链表中获取与系统唤醒相关的第一状态信息,并将获取的第一状态信息分别存储至对应的寄存器中,以使系统恢复至睡眠前的状态。在本实施例中,在达到睡眠条件时,可以将系统的状态设置为睡眠状态,若用户想要执行某些操作,需要先将系统从睡眠状态唤醒至非睡眠状态,一般系统默认的唤醒条件为重新触控开机键,即可以将系统从睡眠状态唤醒至非睡眠状态。在系统唤醒的过程中,可以先从链表中获取与系统唤醒相关的第一状态信息,然后再将获取的第一状态信息分别恢复至对应的寄存器中,即寄存器可以还原至睡眠前的状态,进而使得系统可以恢复至睡眠前的状态,即预加载初始化阶段且不处于待机到内存的状态。其中,与系统唤醒相关的寄存器可以为影响系统启动的关键寄存器。
采用上述方案后,能在系统进入睡眠状态前,先获取至少一个与系统唤醒相关的且位于桥片上的第一寄存器的第一状态信息,然后将第一状态信息存储至位于内存中的链表中,并在系统达到睡眠后的唤醒条件时,从链表中获取与系统唤醒相关的寄存器的第一状态信息,并将该第一状态信息分别存储至对应的寄存器中,以使系统可以直接恢复至睡眠前的状态,而无需再通过重新执行一遍开机启动流程的方式来恢复至睡眠前的状态,减少了系统唤醒的时间,进而提高了用户的使用体验。
图3为本发明另一实施例提供的系统睡眠后的唤醒方法的流程示意图,如图3所示,可以包括:开机时,首先进入安全启动阶段(SEC,Security Phase Code In theFramework),然后从安全启动阶段进入预加载初始化阶段(PEI,Pre-EFI InitializationPhase.EFI),再在Platfrom模块中判断,是否处于S3(suspend to ram,待机到内存)阶段,若是,则根据NVS中的第一状态信息直接去配置桥片上的第一寄存器的状态,并从相关接口函数中跳转至内核中,若否,则将与唤醒相关且位于桥片上的第一寄存器的第一状态信息填写至链表,并存储于内存中,得到NVS,并启动设备选择阶段,对应执行相关的操作。
具体的,在系统初次上电时,可以根据实际情况配置与系统唤醒相关的第一寄存器的状态,例如,可以获取GMAC控制器、CNL_BAR-控制基址寄存器、PLL配置寄存器、HT时钟配置寄存器、PRERlo寄存器、PRERhi寄存器、CTR寄存器、TXR寄存器、RXR寄存器和CR寄存器中的一种或多种寄存器的签名字段、基址、偏移量或注册值等信息,并在DEX(FrameworkDriver Execution Environment phase,驱动执行环境阶段)阶段时,将上述第一寄存器的状态信息以链表的形式存储至内存中,得到NVS。在系统达到睡眠后的唤醒条件时,可以根据NVS中的第一状态信息直接去配置桥片上的第一寄存器的状态,以恢复至睡眠前的初始化状态,无需再对桥片上的第一寄存器重新进行初始化,增大了系统唤醒的时间,进而降低了用户的使用体验。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置,图4为本发明实施例提供的系统睡眠后的唤醒装置的结构示意图,如图4所示,本实施例提供的装置,可以包括:
获取模块401,用于在系统进入睡眠状态前,获取至少一个第一寄存器的第一状态信息,所述第一寄存器为与系统唤醒相关的,且位于桥片中的寄存器,所述第一状态信息为所述第一寄存器中的非易失性状态信息。
在本实施例中,所述获取模块401,还用于:
在预加载初始化阶段且不处于待机到内存的状态时,初始化所述至少一个第一寄存器,并获取初始化后的所述第一寄存器中的第一状态信息。
所述获取模块401,还用于:
初始化所述至少一个第一寄存器,并通过预先设置的所述第一寄存器对应的实例化对象获取初始化后的所述第一寄存器中的第一状态信息。
处理模块402,用于将获取的所述第一寄存器的第一状态信息存储至链表,所述链表位于内存中。
在本实施例中,所述处理模块402,还用于:
将获取的所述第一寄存器的第一状态信息按寄存器所属的设备进行分类,得到各设备对应的寄存器的状态信息。
将每个设备对应的寄存器的状态信息作为一个节点插入至链表。
其中,所述第一寄存器包括:
以太网PHY寄存器、PLL配置寄存器、PWM控制寄存器、HT时钟配置寄存器,以及IIC控制寄存器中的任意一种或多种。
此外,所述第一状态信息可以包括:签名字段、基址、偏移量,以及注册值中的任意一种或多种。
所述处理模块402,还用于在在所述系统达到睡眠后的唤醒条件时,从所述链表中获取第一状态信息,并将获取的所述第一状态信息分别存储至对应的寄存器中,以使所述系统恢复至睡眠前的状态。
所述处理模块402,还用于:
生成所述链表。
初始化所述链表的表头,并将初始化后的链表存储至内存中。
本发明实施例提供的装置,可以实现上述如图2所示的实施例的方法,其实现原理和技术效果类似,此处不再赘述。
图5为本发明实施例提供的系统睡眠后的唤醒设备的硬件结构示意图。如图5所示,本实施例提供的设备500包括:至少一个处理器501和存储器502。其中,处理器501、存储器502通过总线503连接。
在具体实现过程中,至少一个处理器501执行所述存储器502存储的计算机执行指令,使得至少一个处理器501执行上述方法实施例中的方法。
处理器501的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图5所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述方法实施例的系统睡眠后的唤醒方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种系统睡眠后的唤醒方法,其特征在于,包括:
在系统进入睡眠状态前,获取至少一个第一寄存器的第一状态信息,所述第一寄存器为与系统唤醒相关的,且位于桥片中的寄存器,所述第一状态信息为所述第一寄存器中的非易失性状态信息;
将获取的所述第一寄存器的第一状态信息存储至链表,所述链表位于内存中;
在所述系统达到睡眠后的唤醒条件时,从所述链表中获取与系统唤醒相关的第一状态信息,并将获取的所述第一状态信息分别存储至对应的寄存器中,以使所述系统恢复至睡眠前的状态。
2.根据权利要求1所述的方法,其特征在于,所述在系统进入睡眠状态前,获取至少一个第一寄存器的第一状态信息,包括:
在预加载初始化阶段且不处于待机到内存的状态时,初始化所述至少一个第一寄存器,并获取初始化后的所述第一寄存器中的第一状态信息。
3.根据权利要求2所述的方法,其特征在于,所述初始化所述至少一个第一寄存器,并获取初始化后的所述第一寄存器中的第一状态信息,包括:
初始化所述至少一个第一寄存器,并通过预先设置的所述第一寄存器对应的实例化对象获取初始化后的所述第一寄存器中的第一状态信息。
4.根据权利要求1所述的方法,其特征在于,所述将获取的所述第一寄存器的第一状态信息存储至链表,包括:
将获取的所述第一寄存器的第一状态信息按寄存器所属的设备进行分类,得到各设备对应的寄存器的状态信息;
将每个设备对应的寄存器的状态信息作为一个节点插入至链表。
5.根据权利要求1-4任一项所述的方法,其特征在于,在所述将获取的所述第一寄存器的第一状态信息存储至链表,所述链表位于内存中之前,还包括:
生成所述链表;
初始化所述链表的表头,并将初始化后的链表存储至内存中。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述第一寄存器包括:
以太网PHY寄存器、PLL配置寄存器、PWM控制寄存器、HT时钟配置寄存器,以及IIC控制寄存器中的任意一种或多种。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述第一状态信息包括:签名字段、基址、偏移量,以及注册值中的任意一种或多种。
8.一种系统睡眠后的唤醒装置,其特征在于,包括:
获取模块,用于在系统进入睡眠状态前,获取至少一个第一寄存器的第一状态信息,所述第一寄存器为与系统唤醒相关的,且位于桥片中的寄存器,所述第一状态信息为所述第一寄存器中的非易失性状态信息;
处理模块,用于将获取的所述第一寄存器的第一状态信息存储至链表,所述链表位于内存中;
所述处理模块,还用于在所述系统达到睡眠后的唤醒条件时,从所述链表中获取第一状态信息,并将获取的所述第一状态信息分别存储至对应的寄存器中,以使所述系统恢复至睡眠前的状态。
9.一种系统睡眠后的唤醒设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至7任一项所述的系统睡眠后的唤醒方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的系统睡眠后的唤醒方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011023956.5A CN114253608A (zh) | 2020-09-25 | 2020-09-25 | 系统睡眠后的唤醒方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011023956.5A CN114253608A (zh) | 2020-09-25 | 2020-09-25 | 系统睡眠后的唤醒方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114253608A true CN114253608A (zh) | 2022-03-29 |
Family
ID=80790546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011023956.5A Pending CN114253608A (zh) | 2020-09-25 | 2020-09-25 | 系统睡眠后的唤醒方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114253608A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5551043A (en) * | 1994-09-07 | 1996-08-27 | International Business Machines Corporation | Standby checkpoint to prevent data loss |
CN1530796A (zh) * | 2003-03-12 | 2004-09-22 | 联想(北京)有限公司 | 一种加快操作系统的引导方法 |
US20060212727A1 (en) * | 2005-03-16 | 2006-09-21 | Microsoft Corporation | Systems and methods for providing power-loss protection to sleeping computers systems |
JP2011158967A (ja) * | 2010-01-29 | 2011-08-18 | Toyota Motor Corp | 電子制御装置 |
CN102360244A (zh) * | 2011-09-28 | 2012-02-22 | 深圳市卓怡恒通电脑科技有限公司 | 用于延长电脑待机时间的待机方法 |
US20120166840A1 (en) * | 2010-12-22 | 2012-06-28 | Rothman Michael A | Method and apparatus for improving the resume time of a platform |
CN102866934A (zh) * | 2011-07-05 | 2013-01-09 | 中国科学院上海微系统与信息技术研究所 | 基于非易失随机存储器的嵌入式设备的休眠及唤醒系统 |
US20160179626A1 (en) * | 2014-12-19 | 2016-06-23 | Shuttle Inc. | Computer system, adaptable hibernation control module and control method thereof |
US20160246355A1 (en) * | 2015-02-25 | 2016-08-25 | Texas Instruments Incorporated | Compute Through Power Loss Approach For Processing Device Having Nonvolatile Logic Memory |
CN109426525A (zh) * | 2017-08-18 | 2019-03-05 | 华为技术有限公司 | 一种针对计算机的睡眠状态唤醒的方法及装置 |
CN109739563A (zh) * | 2018-12-29 | 2019-05-10 | 龙芯中科技术有限公司 | 终端的控制方法、装置、系统及存储介质 |
-
2020
- 2020-09-25 CN CN202011023956.5A patent/CN114253608A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5551043A (en) * | 1994-09-07 | 1996-08-27 | International Business Machines Corporation | Standby checkpoint to prevent data loss |
CN1530796A (zh) * | 2003-03-12 | 2004-09-22 | 联想(北京)有限公司 | 一种加快操作系统的引导方法 |
US20060212727A1 (en) * | 2005-03-16 | 2006-09-21 | Microsoft Corporation | Systems and methods for providing power-loss protection to sleeping computers systems |
JP2011158967A (ja) * | 2010-01-29 | 2011-08-18 | Toyota Motor Corp | 電子制御装置 |
US20120166840A1 (en) * | 2010-12-22 | 2012-06-28 | Rothman Michael A | Method and apparatus for improving the resume time of a platform |
CN102866934A (zh) * | 2011-07-05 | 2013-01-09 | 中国科学院上海微系统与信息技术研究所 | 基于非易失随机存储器的嵌入式设备的休眠及唤醒系统 |
CN102360244A (zh) * | 2011-09-28 | 2012-02-22 | 深圳市卓怡恒通电脑科技有限公司 | 用于延长电脑待机时间的待机方法 |
US20160179626A1 (en) * | 2014-12-19 | 2016-06-23 | Shuttle Inc. | Computer system, adaptable hibernation control module and control method thereof |
US20160246355A1 (en) * | 2015-02-25 | 2016-08-25 | Texas Instruments Incorporated | Compute Through Power Loss Approach For Processing Device Having Nonvolatile Logic Memory |
CN109426525A (zh) * | 2017-08-18 | 2019-03-05 | 华为技术有限公司 | 一种针对计算机的睡眠状态唤醒的方法及装置 |
CN109739563A (zh) * | 2018-12-29 | 2019-05-10 | 龙芯中科技术有限公司 | 终端的控制方法、装置、系统及存储介质 |
Non-Patent Citations (3)
Title |
---|
刘建成等: "Linux休眠原理与实现", 科技资讯, no. 08 * |
武汉大学多核架构与编程技术课程组编著: "多核架构与编程技术", vol. 1, 武汉大学出版社, pages: 42 * |
龙芯中科技术有限公司: "龙芯7A1000桥片用户手册V1.3", pages 1 - 14, Retrieved from the Internet <URL:https://mirrors.cloud.tencent.com/loongson/docs/7a1000/Loongson7A1000user_v1.3_20180907.pdf> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6272991B2 (ja) | プリブートファームウェア更新のための選択的パワーマネジメント | |
US9317299B2 (en) | Method and device for cold starting android mobile terminal | |
CN109739563B (zh) | 终端的控制方法、装置、系统及存储介质 | |
US6665802B1 (en) | Power management and control for a microcontroller | |
TWI564802B (zh) | 初始化週邊裝置之方法與使用此方法之電子裝置 | |
WO2018169669A1 (en) | Quick energy efficient reboot from ultra-low power mode for a system on a chip | |
EP2784662A1 (en) | Electronic circuit for and method of executing an application program stored in a One-Time-Programmable (OTP) memory in a System on Chip (SoC) | |
Baik et al. | Boosting up Embedded Linux device: experience on Linux-based Smartphone | |
WO2022121475A1 (zh) | 运行状态切换方法、装置、电子设备及存储介质 | |
CN102929381A (zh) | 电子系统及其电源管理方法 | |
CN106814840A (zh) | 用于处理器的低电力状态保持模式 | |
US20220100258A1 (en) | Method for quickly restoring working state and electronic device | |
US20120311312A1 (en) | Fast Boot Via State Recreation | |
CN210072612U (zh) | 一种物联网芯片系统 | |
CN114253608A (zh) | 系统睡眠后的唤醒方法、装置及设备 | |
CN115718626A (zh) | 一种快速唤醒的soc系统及快速唤醒方法 | |
CN115964090A (zh) | 一种基于芯片的休眠、唤醒方法及装置 | |
EP3945424B1 (en) | Memory power management method and processor system | |
CN106484074B (zh) | 非易失性存储装置、方法、计算机系统及待机或休眠实现方法 | |
US10289492B2 (en) | System for data retention and method of operating system | |
CN114443152A (zh) | 网络唤醒开机方法及计算机设备 | |
CN111966199B (zh) | Cpld在线升级缓启方法、装置、设备及存储介质 | |
CN115437859A (zh) | 休眠唤醒处理方法、装置、电子设备及存储介质 | |
US20170308307A1 (en) | Control Module for Data Retention and Method of Operating Control Module | |
CN112462922B (zh) | 一种风扇节能控制方法、系统、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |