CN109739563B - 终端的控制方法、装置、系统及存储介质 - Google Patents
终端的控制方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN109739563B CN109739563B CN201811642379.0A CN201811642379A CN109739563B CN 109739563 B CN109739563 B CN 109739563B CN 201811642379 A CN201811642379 A CN 201811642379A CN 109739563 B CN109739563 B CN 109739563B
- Authority
- CN
- China
- Prior art keywords
- register
- information
- state
- terminal
- address
- 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.)
- Active
Links
Images
Landscapes
- Power Sources (AREA)
Abstract
本发明提供一种终端的控制方法、装置、系统及存储介质,该方法包括:当接收休眠指示信号时,根据休眠指示信号进行数据存储,并生成第一跳转信息;根据所述第一跳转信息,控制终端进入休眠状态;当接收到唤醒指示信号时,根据唤醒指示信号,从休眠状态进入唤醒状态,并生成第二跳转信息;根据所述第二跳转信息,控制终端恢复休眠状态之前的状态。从而可以使得ACPI支持不完善的平台,能够快速实现挂起到内存功能,从而在ACPI支持不完善的平台上实现S3的电源管理功能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种终端的控制方法、装置、系统及存储介质。
背景技术
高级配置与电源接口(Advanced Configuration and Power Interface,ACPI),是1997年由英特尔、微软、东芝公司共同提出、制定提供终端应用程序管理所有电源管理接口,是一种工业标准,包括了软件和硬件方面的规范。但是,ACPI需要软硬件相关的支持,x86架构对其的支持很完善;而其他架构则需要符合其硬件设计规范,并添加相关的软件支持才能较好的支持ACPI。
因此,对ACPI支持不完善的平台(例如硬件设计不完善,支持不全面,或是软件架构上不健全的平台),则无法使用其接口快速实现挂起到内存的功能。
发明内容
本发明提供一种终端的控制方法、装置、系统及存储介质,以使得ACPI支持不完善的平台,能够快速实现挂起到内存功能,从而在ACPI支持不完善的平台上实现S3的电源管理。
第一方面,本发明实施例提供一种终端的控制方法,包括:
当接收休眠指示信号时,根据休眠指示信号进行数据存储,并生成第一跳转信息;
根据所述第一跳转信息,控制终端进入休眠状态;
当接收到唤醒指示信号时,根据唤醒指示信号,从休眠状态进入唤醒状态,并生成第二跳转信息;
根据所述第二跳转信息,控制终端恢复休眠状态之前的状态。
在一种可能的设计中,根据休眠指示信号进行数据存储,并生成第一跳转信息,包括:
根据休眠指示信号,刷新各级缓存、保存中央处理器CPU相关寄存器到栈空间;
将所述栈空间的栈底地址保存到第一寄存器中,将唤醒起始地址保存到第二寄存器中;
根据终端挂起代码的固定地址,生成第一跳转信息;所述第一跳转信息用于指示跳转到终端挂起代码的固定地址。
在一种可能的设计中,根据所述第一跳转信息,控制终端进入休眠状态,包括:
获取第一寄存器和第二寄存器的值;
将所述第一寄存器和第二寄存器的值存储到预设存储空间,所述预设存储空间满足约束条件:linux内核不允许使用所述预设存储空间,且进入S3状态后预设存储空间内存储信息不丢失;
设置芯片组中的高级配置与电源接口ACPI寄存器的状态为挂起到内存S3。
在一种可能的设计中,根据唤醒指示信号,进行数据恢复,并生成第二跳转信息,包括:
对CPU进行初始化处理,并配置缓存,使得各级缓存处于使能状态;
初始化内存控制器,使能内存;
初始化芯片组;
读取S3标识;
若存在S3标识,则运行S3唤醒流程,并在S3启动之后清除芯片组中ACPI寄存器的S3标识;
若不存在S3标识,则运行预设的开机流程;
从预设存储空间中读取所述第一寄存器和第二寄存器的值;
根据所述第一寄存器和第二寄存器的值,获取唤醒起始地址;
根据所述唤醒起始地址,生成第二跳转信息;所述第二跳转信息用于指示跳转到所述唤醒起始地址。
在一种可能的设计中,根据所述第二跳转信息,控制终端恢复休眠状态之前的状态,包括:
根据所述第二跳转信息,跳转到唤醒起始地址;
按照所述唤醒起始地址,运行相应的唤醒代码;
获取所述第一寄存器中的栈底地址,并根据所述栈底地址指示的栈空间,恢复CPU相关寄存器;
恢复芯片组状态、设备状态,以使得所述终端恢复休眠状态之前的状态。
第二方面,本发明实施例提供一种终端的控制装置,包括:
存储模块,用于在接收到休眠指示信号时,根据休眠指示信号进行数据存储,并生成第一跳转信息;
处理模块,用于根据所述第一跳转信息,控制终端进入休眠状态;
唤醒模块,用于在接收到唤醒指示信号时,根据唤醒指示信号,从休眠状态进入唤醒状态,并生成第二跳转信息;
恢复模块,用于根据所述第二跳转信息,控制终端恢复休眠状态之前的状态。
在一种可能的设计中,所述存储模块,具体用于:
根据休眠指示信号,刷新各级缓存、保存中央处理器CPU相关寄存器到栈空间;
将所述栈空间的栈底地址保存到第一寄存器中,将唤醒起始地址保存到第二寄存器中;
根据终端挂起代码的固定地址,生成第一跳转信息;所述第一跳转信息用于指示跳转到终端挂起代码的固定地址。
在一种可能的设计中,所述处理模块,具体用于:
获取第一寄存器和第二寄存器的值;
将所述第一寄存器和第二寄存器的值存储到预设存储空间,所述预设存储空间满足约束条件:linux内核不允许使用所述预设存储空间,且进入S3状态后预设存储空间内存储信息不丢失;
设置芯片组中的ACPI寄存器的状态为挂起到内存S3。
在一种可能的设计中,所述唤醒模块,具体用于:
对CPU进行初始化处理,并配置缓存,使得各级缓存处于使能状态;
初始化内存控制器,使能内存;
初始化芯片组;
读取S3标识;
若存在S3标识
则运行S3唤醒流程,并在S3启动之后清除芯片组中ACPI寄存器的S3标识;
若不存在S3标识,则运行预设的开机流程;
从预设存储空间中读取所述第一寄存器和第二寄存器的值;
根据所述第一寄存器和第二寄存器的值,获取唤醒起始地址;
根据所述唤醒起始地址,生成第二跳转信息;所述第二跳转信息用于指示跳转到所述唤醒起始地址。
在一种可能的设计中,所述恢复模块,具体用于:
根据所述第二跳转信息,跳转到唤醒起始地址;
按照所述唤醒起始地址,运行相应的唤醒代码;
获取所述第一寄存器中的栈底地址,并根据所述栈底地址指示的栈空间,恢复CPU相关寄存器;
恢复芯片组状态、设备状态,以使得所述终端恢复休眠状态之前的状态。
第三方面,本发明实施例提供一种控制系统,包括:存储器和处理器,存储器中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任一项所述的终端的控制方法。
第四方面,本发明实施例一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述的终端的控制方法。
本发明提供的终端的控制方法、装置、系统及存储介质,通过在接收休眠指示信号时,根据休眠指示信号进行数据存储,并生成第一跳转信息;根据所述第一跳转信息,控制终端进入休眠状态;在接收到唤醒指示信号时,根据唤醒指示信号,从休眠状态进入唤醒状态,并生成第二跳转信息;根据所述第二跳转信息,控制终端恢复休眠状态之前的状态。从而可以使得ACPI支持不完善的平台,能够快速实现挂起到内存功能,从而在ACPI支持不完善的平台上实现S3的电源管理功能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的应用场景示意图;
图2为本发明实施例一提供的终端的控制方法的流程图;
图3为linux内核挂起流程的原理示意图;
图4为本发明实施例二提供的终端的控制装置的结构示意图;
图5为本发明实施例三提供的控制系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解:
1)高级配置与电源接口(Advanced Configuration and Power Interface,缩写:ACPI),是1997年由英特尔、微软、东芝公司共同提出、制定提供操作系统应用程序管理所有电源管理接口,是一种工业标准,包括了软件和硬件方面的规范。ACPI共有六种状态,分别是S0到S5,它们代表的含义分别是:S0--实际上这就是常规的工作状态,所有设备全开,功耗一般会超过80W;S1--也称为POS(Power on Suspend),这时除了通过CPU时钟控制器将CPU关闭之外,其他的部件仍然正常工作,这时的功耗一般在30W以下;(其实有些CPU降温软件就是利用这种工作原理);S3--STR(Suspend to RAM,挂起到内存),这时的功耗不超过10W;S4--也称为STD(Suspend to Disk,挂起到硬盘),这时系统主电源关闭,但是硬盘仍然带电并可以被唤醒;S5—包括电源在内的所有设备全部关闭,功耗为0。
2)基本输入输出系统(Basic Input Output System,BIOS),是计算机系统软件中与硬件关系最密切的软件,它包含最基本的中断服务程序、系统设置程序、加电自检程序和系统启动自举程序。BIOS程序是计算机开机加电后第一个开始执行的程序,完成硬件检测及基本的设置功能,BIOS也为操作系统及其他自启动程序的开发、加载提供接口,是计算机系统中最基础的系统软件。
3)电源管理(Power Management,PM),是指如何将电源有效分配给系统的不同组件,以降低组件闲置时的能耗,优秀的电源管理系统能够节能二分之一或三分之二。
4)高级电源管理(Advanced Power Management,APM),是一种基于BIOS的系统电源管理方案,它提供了CPU和设备电源管理,通过设备工作超时设定来决定何时将设备转换到低耗能状态。
图1为本发明的应用场景示意图,如图1所示,包括linux内核10和基本输入输出系统20;在ACPI机制不完善情况下,现有的linux操作系统中无法实现S3功能。需要说明的是,本应用场景中的不完善是指硬件设计不完善,支持不全面,而芯片组的电源管理模块必须支持S3的情况。具体地,要实现linux操作系统的S3功能,需要在挂起时,刷写内核部分架构相关的各级缓存,保存寄存器及现场数据,然后跳转到BIOS中相关的处理代码。BIOS对内核返回的信息进行保存,完成内存自刷新的设置,并设置芯片组相关的ACPI寄存器,以进入S3模式。在恢复时,BIOS会初始化CPU、缓存、内存控制器、芯片组,然后读取自身ACPI相关的寄存器进行判断,获取当前的启动模式。若启动模式是S3唤醒启动,则恢复之前保存的信息并跳转到内核唤醒程序执行;然后内核会首先恢复CPU相关寄存器的值及初始化相应平台下配置寄存器及芯片组的寄存器,然后跳转到内核通用的唤醒流程执行。若启动模式是正常启动,则执行常规的开机启动流程。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图2为本发明实施例一提供的终端的控制方法的流程图,如图2所示,本实施例中的方法可以包括:
S101、当接收休眠指示信号时,根据休眠指示信号进行数据存储,并生成第一跳转信息。
本实施例中,可以根据休眠指示信号,刷新各级缓存、保存CPU相关寄存器到栈空间;将栈空间的栈底地址保存到第一寄存器中,将唤醒起始地址保存到第二寄存器中;根据终端挂起代码的固定地址,生成第一跳转信息;第一跳转信息用于指示跳转到终端挂起代码的固定地址。
具体地,以linux系统为例,linux内核对挂起和恢复操作有着完善的支持,新的架构平台添加时仅仅需要完善自己架构相关部分,例如linux内核包括第一子流程11、第二子流程12、第三子流程13。其中,第一子流程11用于执行文件打开、文件系统相关内容的保存。第二子流程12用于执行对设备的睡眠唤醒。图3为linux内核挂起流程的原理示意图,结合图3。当接收到休眠指示信号时,依次执行第一子流程11、第二子流程12、第三子流程13;其中,第三子流程13主要完成各级缓存的刷新、将CPU相关寄存器的存储到栈空间,并将栈底地址保存到一个通用寄存器中;将唤醒后执行代码地址保存到另一个通用寄存器中;最后跳转到终端挂起代码的固定地址执行相关代码。
S102、根据第一跳转信息,控制终端进入休眠状态。
本实施例中,可以获取第一寄存器和第二寄存器的值;将第一寄存器和第二寄存器的值存储到预设存储空间。其中,预设存储空间满足约束条件:linux内核不允许使用所述预设存储空间,且进入S3状态后预设存储空间内存储信息不丢失;控制芯片组中的ACPI寄存器的状态为挂起到内存S3。如果BIOS唤醒时会破坏内核使用的某段内存空间,则需要将该段地址保存至内核不会使用的地址空间中或调整BIOS的结构布局,确保BIOS唤醒时会使用到的地址空间与内核使用的地址空间不冲突。
本实施例中,控制芯片组中的ACPI寄存器的状态为S3时,仅仅主存储器(RAM)有电源供给。
具体地,当处于休眠状态时,将终端、所有的应用程序和被打开的文档等状态全部保存到内存中,设置芯片组ACPI相关寄存器,进入S3状态,此时主板风扇停转,电源指示灯闪烁,仅主存储器供电。
S103、当接收到唤醒指示信号时,根据唤醒指示信号,从休眠状态进入唤醒状态,并生成第二跳转信息。
本实施例中,对CPU进行初始化处理,并配置缓存,使得各级缓存处于使能状态;初始化内存控制器,使能内存;初始化芯片组,读取S3标识;若存在S3标识,则运行S3唤醒流程,并在S3启动之后清除芯片组中ACPI寄存器的S3标识;若不存在S3标识,则运行预设的开机流程;从预设存储空间中读取第一寄存器和第二寄存器的值;根据第一寄存器和第二寄存器的值,获取唤醒起始地址;根据唤醒起始地址,生成第二跳转信息;第二跳转信息用于指示跳转到唤醒起始地址。
具体地,当按下开机键时,生成唤醒指示信号,此时,BIOS运行,通过判断相关状态值确认目前的启动模式,当获知是S3唤醒启动时,完成CPU、内存、芯片组的初始化之后,跳转到内核恢复代码位置,以恢复之前的状态。
在一种可选的实施方式中,可以预先设置一个闪存的固定地址,用于存放跳转到BIOS之后挂起的相关代码。
本实施例中,将挂起的相关代码存放在闪存中,而尽量不要存放在内存中,是因为在BIOS中需要设定内存自刷新,设定之后,内存就不能被访问了。该地址会通过BIOS与内核的传参接口传递给内核使用。内核执行完自身的相关挂起流程后,会跳转到该固定地址执行BIOS下的流程。
在一种可能的实施方式中,可以查看芯片组中ACPI相关寄存器,并清掉S3标识,如果是S3唤醒开机,则执行S3唤醒流程;否则执行正常开机流程。当执行S3唤醒流程时,如果BIOS唤醒时会破坏内核使用的某段内存空间,则需要将该段地址保存值内核不会使用的地址空间中或调整BIOS的结构布局,确保BIOS唤醒时会使用到的地址空间与内核使用的地址空间不冲突。如果保存了一些冲突的地址内容到其他非冲突地址段,此时,需要对配置进行恢复,将之前保存的地址段写回到原位置。并从之前保存的内核传递寄存器位置的地址读取出两个寄存器的值。跳转到记录唤醒起始地址的寄存器执行。
S104、根据第二跳转信息,控制终端恢复休眠状态之前的状态。
本实施例中,根据第二跳转信息,跳转到唤醒起始地址;按照唤醒起始地址,运行相应的唤醒代码;获取第一寄存器中的栈底地址,并根据栈底地址指示的栈空间,恢复CPU相关寄存器;恢复芯片组状态、设备状态,以使得终端进入唤醒状态。
本实施例中,由于终端、所有应用程序和被打开的文档等等的状态都是保存在主存储器中,所以用户可以把工作恢复到正好上次他们保持的状态,即计算机从S3状态回来时主存储器的内容和它进入S3状态时候的内容是相同的。
在一种可选的实施方式中,还可以根据实际情况,添加一些特殊事件的处理:如S3状态下关机、S3状态下意外断电情况下S3状态位的清除等等。
本实施例,通过在接收休眠指示信号时,根据休眠指示信号进行数据存储,并生成第一跳转信息;根据第一跳转信息,控制终端进入休眠状态;在接收到唤醒指示信号时,根据唤醒指示信号,从休眠状态进入唤醒状态,并生成第二跳转信息;根据第二跳转信息,控制终端恢复休眠状态之前的状态。从而可以使得ACPI支持不完善的平台,能够快速实现挂起到内存功能,从而在ACPI支持不完善的平台上实现S3的电源管理功能。
图4为本发明实施例二提供的终端的控制装置的结构示意图,如图4所示,本实施例中的装置可以包括:
存储模块31,用于在接收到休眠指示信号时,根据休眠指示信号进行数据存储,并生成第一跳转信息;
处理模块32,用于根据所述第一跳转信息,控制终端进入休眠状态;
唤醒模块33,用于在接收到唤醒指示信号时,根据唤醒指示信号,从休眠状态进入唤醒状态,并生成第二跳转信息;
恢复模块34,用于根据所述第二跳转信息,控制终端恢复休眠状态之前的状态。
在一种可能的设计中,所述存储模块31,具体用于:
根据休眠指示信号,刷新各级缓存、保存中央处理器CPU相关寄存器到栈空间;
将所述栈空间的栈底地址保存到第一寄存器中,将唤醒起始地址保存到第二寄存器中;
根据终端挂起代码的固定地址,生成第一跳转信息;所述第一跳转信息用于指示跳转到终端挂起代码的固定地址。
在一种可能的设计中,所述处理模块32,具体用于:
获取第一寄存器和第二寄存器的值;
将所述第一寄存器和第二寄存器的值存储到预设存储空间,所述预设存储空间满足约束条件:linux内核不允许使用所述预设存储空间,且进入S3状态后预设存储空间内存储信息不丢失;
设置芯片组中的ACPI寄存器的状态为挂起到内存S3。
在一种可能的设计中,所述唤醒模块33,具体用于:
对CPU进行初始化处理,并配置缓存,使得各级缓存处于使能状态;
初始化内存控制器,使能内存;
初始化芯片组;
读取S3标识;
若存在S3标识
则运行S3唤醒流程,并在S3启动之后清除芯片组中ACPI寄存器的S3标识;
若不存在S3标识,则运行预设的开机流程;
从预设存储空间中读取所述第一寄存器和第二寄存器的值;
根据所述第一寄存器和第二寄存器的值,获取唤醒起始地址;
根据所述唤醒起始地址,生成第二跳转信息;所述第二跳转信息用于指示跳转到所述唤醒起始地址。
在一种可能的设计中,所述恢复模块34,具体用于:
根据所述第二跳转信息,跳转到唤醒起始地址;
按照所述唤醒起始地址,运行相应的唤醒代码;
获取所述第一寄存器中的栈底地址,并根据所述栈底地址指示的栈空间,恢复CPU相关寄存器;
恢复芯片组状态、设备状态,以使得所述终端恢复休眠状态之前的状态。
本实施例的显示内存的分配装置,可以执行图2所示方法中的技术方案,其具体实现过程和技术原理参见图2所示方法中的相关描述,此处不再赘述。
本实施例,通过在接收休眠指示信号时,根据休眠指示信号进行数据存储,并生成第一跳转信息;在接收到唤醒指示信号时,根据第一跳转信息,控制终端进入休眠状态;根据唤醒指示信号,从休眠状态进入唤醒状态,并生成第二跳转信息;根据第二跳转信息,控制终端恢复休眠状态之前的状态。从而可以使得ACPI支持不完善的平台,能够快速实现挂起到内存功能,从而在ACPI支持不完善的平台上实现S3的电源管理功能。
图5为本发明实施例三提供的控制系统的结构示意图,如图5所示,本实施例的控制系统40可以包括:处理器41和存储器42。
存储器42,用于存储计算机程序(如实现上述终端的控制方法的应用程序、功能模块等)、计算机指令等;
上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器42中。并且上述的计算机程序、计算机指令、数据等可以被处理器41调用。
处理器41,用于执行存储器42存储的计算机程序,以实现上述实施例涉及的方法中的各个步骤。
具体可以参见前面方法实施例中的相关描述。
处理器41和存储器42可以是独立结构,也可以是集成在一起的集成结构。当处理器41和存储器42是独立结构时,存储器42、处理器41可以通过总线43耦合连接。
本实施例的服务器可以执行图2所示方法中的技术方案,其具体实现过程和技术原理参见图2所示方法中的相关描述,此处不再赘述。
此外,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当用户设备的至少一个处理器执行该计算机执行指令时,用户设备执行上述各种可能的方法。
其中,计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于通信设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种终端的控制方法,其特征在于,包括:
当接收休眠指示信号时,根据休眠指示信号进行数据存储,并生成第一跳转信息;
根据所述第一跳转信息,从内核跳转到BIOS,控制终端进入休眠状态;
当接收到唤醒指示信号时,根据唤醒指示信号,从休眠状态进入唤醒状态,并生成第二跳转信息;
根据所述第二跳转信息,从BIOS跳转到内核,控制终端恢复休眠状态之前的状态。
2.根据权利要求1所述的方法,其特征在于,根据休眠指示信号进行数据存储,并生成第一跳转信息,包括:
根据休眠指示信号,刷新各级缓存、保存中央处理器CPU相关寄存器到栈空间;
将所述栈空间的栈底地址保存到第一寄存器中,将唤醒起始地址保存到第二寄存器中;
根据终端挂起代码的固定地址,生成第一跳转信息;所述第一跳转信息用于指示跳转到终端挂起代码的固定地址。
3.根据权利要求2所述的方法,其特征在于,根据所述第一跳转信息,控制终端进入休眠状态,包括:
获取第一寄存器和第二寄存器的值;
将所述第一寄存器和第二寄存器的值存储到预设存储空间,所述预设存储空间满足约束条件:linux内核不允许使用所述预设存储空间,且进入S3状态后预设存储空间内存储信息不丢失;
设置芯片组中的高级配置与电源接口ACPI寄存器的状态为挂起到内存S3。
4.根据权利要求3所述的方法,其特征在于,根据唤醒指示信号,进行数据恢复,并生成第二跳转信息,包括:
对CPU进行初始化处理,并配置缓存,使得各级缓存处于使能状态;
初始化内存控制器,使能内存;
初始化芯片组;
读取S3标识;
若存在S3标识,则运行S3唤醒流程,并在S3启动之后清除芯片组中ACPI寄存器的S3标识;
若不存在S3标识,则运行预设的开机流程;
从预设存储空间中读取所述第一寄存器和第二寄存器的值;
根据所述第一寄存器和第二寄存器的值,获取唤醒起始地址;
根据所述唤醒起始地址,生成第二跳转信息;所述第二跳转信息用于指示跳转到所述唤醒起始地址。
5.根据权利要求2所述的方法,其特征在于,根据所述第二跳转信息,控制终端恢复休眠状态之前的状态,包括:
根据所述第二跳转信息,跳转到唤醒起始地址;
按照所述唤醒起始地址,运行相应的唤醒代码;
获取所述第一寄存器中的栈底地址,并根据所述栈底地址指示的栈空间,恢复CPU相关寄存器;
恢复芯片组状态、设备状态,以使得所述终端恢复休眠状态之前的状态。
6.一种终端的控制装置,其特征在于,包括:
存储模块,用于在接收到休眠指示信号时,根据休眠指示信号进行数据存储,并生成第一跳转信息;
处理模块,用于根据所述第一跳转信息,从内核跳转到BIOS,控制终端进入休眠状态;
唤醒模块,用于在接收到唤醒指示信号时,根据唤醒指示信号,从休眠状态进入唤醒状态,并生成第二跳转信息;
恢复模块,用于根据所述第二跳转信息,从BIOS跳转到内核,控制终端恢复休眠状态之前的状态。
7.根据权利要求6所述的装置,其特征在于,所述存储模块,具体用于:
根据休眠指示信号,刷新各级缓存、保存中央处理器CPU相关寄存器到栈空间;
将所述栈空间的栈底地址保存到第一寄存器中,将唤醒起始地址保存到第二寄存器中;
根据终端挂起代码的固定地址,生成第一跳转信息;所述第一跳转信息用于指示跳转到终端挂起代码的固定地址。
8.根据权利要求7所述的装置,其特征在于,所述处理模块,具体用于:
获取第一寄存器和第二寄存器的值;
将所述第一寄存器和第二寄存器的值存储到预设存储空间,所述预设存储空间满足约束条件:linux内核不允许使用所述预设存储空间,且进入S3状态后预设存储空间内存储信息不丢失;
设置芯片组中的ACPI寄存器的状态为挂起到内存S3。
9.根据权利要求8所述的装置,其特征在于,所述唤醒模块,具体用于:
对CPU进行初始化处理,并配置缓存,使得各级缓存处于使能状态;
初始化内存控制器,使能内存;
初始化芯片组;
读取S3标识;
若存在S3标识
则运行S3唤醒流程,并在S3启动之后清除芯片组中ACPI寄存器的S3标识;
若不存在S3标识,则运行预设的开机流程;
从预设存储空间中读取所述第一寄存器和第二寄存器的值;
根据所述第一寄存器和第二寄存器的值,获取唤醒起始地址;
根据所述唤醒起始地址,生成第二跳转信息;所述第二跳转信息用于指示跳转到所述唤醒起始地址。
10.根据权利要求7所述的装置,其特征在于,所述恢复模块,具体用于:
根据所述第二跳转信息,跳转到唤醒起始地址;
按照所述唤醒起始地址,运行相应的唤醒代码;
获取所述第一寄存器中的栈底地址,并根据所述栈底地址指示的栈空间,恢复CPU相关寄存器;
恢复芯片组状态、设备状态,以使得所述终端恢复休眠状态之前的状态。
11.一种控制系统,其特征在于,包括:存储器和处理器,存储器中存储有所述处理器的可执行信息;其中,所述处理器配置为经由执行所述可执行信息来执行权利要求1-5中任一项所述的终端的控制方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述的终端的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811642379.0A CN109739563B (zh) | 2018-12-29 | 2018-12-29 | 终端的控制方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811642379.0A CN109739563B (zh) | 2018-12-29 | 2018-12-29 | 终端的控制方法、装置、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739563A CN109739563A (zh) | 2019-05-10 |
CN109739563B true CN109739563B (zh) | 2022-04-22 |
Family
ID=66362564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811642379.0A Active CN109739563B (zh) | 2018-12-29 | 2018-12-29 | 终端的控制方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739563B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112153245B (zh) * | 2019-06-26 | 2021-09-24 | 杭州海康威视数字技术股份有限公司 | 控制方法及摄像机 |
CN112306559A (zh) * | 2019-07-26 | 2021-02-02 | 珠海零边界集成电路有限公司 | 一种存储启动系统及方法 |
WO2021026776A1 (zh) * | 2019-08-13 | 2021-02-18 | 深圳市大疆创新科技有限公司 | 终端控制方法、控制终端及可移动平台 |
TWI726561B (zh) * | 2019-12-31 | 2021-05-01 | 新唐科技股份有限公司 | 操作電路及控制方法 |
CN114253608A (zh) * | 2020-09-25 | 2022-03-29 | 龙芯中科技术股份有限公司 | 系统睡眠后的唤醒方法、装置及设备 |
CN112346789A (zh) * | 2020-11-06 | 2021-02-09 | 中国电子信息产业集团有限公司 | 双系统休眠及唤醒方法、装置、设备及存储介质 |
CN112506576A (zh) * | 2020-12-11 | 2021-03-16 | 浪潮电子信息产业股份有限公司 | 运行状态切换方法、装置、电子设备及存储介质 |
CN113010215B (zh) * | 2021-03-12 | 2023-03-21 | 山东英信计算机技术有限公司 | 一种操作系统快速重启的方法、装置、设备及可读介质 |
CN113760376B (zh) * | 2021-09-06 | 2024-05-28 | 合肥松豪电子科技有限公司 | TP芯片CPU在Eflash上同时运行且操作的方法 |
CN114167823B (zh) * | 2021-11-11 | 2023-11-14 | 合肥欣奕华智能机器股份有限公司 | 机器人控制方法、装置、电子设备和存储介质 |
CN114564242A (zh) * | 2022-02-28 | 2022-05-31 | 石家庄通合电子科技股份有限公司 | 自唤醒功能的实现方法、装置、终端及存储介质 |
CN115756622B (zh) * | 2022-12-01 | 2024-04-09 | 镁佳(北京)科技有限公司 | 芯片控制方法及芯片 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1530796A (zh) * | 2003-03-12 | 2004-09-22 | 联想(北京)有限公司 | 一种加快操作系统的引导方法 |
CN101662370A (zh) * | 2008-08-26 | 2010-03-03 | 华为技术有限公司 | 服务器休眠/唤醒方法及具有休眠/唤醒功能的服务器 |
CN101937344A (zh) * | 2009-06-30 | 2011-01-05 | 联想(北京)有限公司 | 一种计算机及其快速启动的方法 |
US7962775B1 (en) * | 2007-01-10 | 2011-06-14 | Marvell International Ltd. | Methods and apparatus for power mode control for PDA with separate communications and applications processors |
CN102866934A (zh) * | 2011-07-05 | 2013-01-09 | 中国科学院上海微系统与信息技术研究所 | 基于非易失随机存储器的嵌入式设备的休眠及唤醒系统 |
CN104460925A (zh) * | 2014-12-18 | 2015-03-25 | 山东超越数控电子有限公司 | 一种基于申威平台的电源管理实现方法 |
CN105573860A (zh) * | 2014-11-11 | 2016-05-11 | 鸿富锦精密工业(武汉)有限公司 | 用于计算机系统中的休眠管理方法及休眠管理系统 |
-
2018
- 2018-12-29 CN CN201811642379.0A patent/CN109739563B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1530796A (zh) * | 2003-03-12 | 2004-09-22 | 联想(北京)有限公司 | 一种加快操作系统的引导方法 |
US7962775B1 (en) * | 2007-01-10 | 2011-06-14 | Marvell International Ltd. | Methods and apparatus for power mode control for PDA with separate communications and applications processors |
CN101662370A (zh) * | 2008-08-26 | 2010-03-03 | 华为技术有限公司 | 服务器休眠/唤醒方法及具有休眠/唤醒功能的服务器 |
CN101937344A (zh) * | 2009-06-30 | 2011-01-05 | 联想(北京)有限公司 | 一种计算机及其快速启动的方法 |
CN102866934A (zh) * | 2011-07-05 | 2013-01-09 | 中国科学院上海微系统与信息技术研究所 | 基于非易失随机存储器的嵌入式设备的休眠及唤醒系统 |
CN105573860A (zh) * | 2014-11-11 | 2016-05-11 | 鸿富锦精密工业(武汉)有限公司 | 用于计算机系统中的休眠管理方法及休眠管理系统 |
CN104460925A (zh) * | 2014-12-18 | 2015-03-25 | 山东超越数控电子有限公司 | 一种基于申威平台的电源管理实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109739563A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739563B (zh) | 终端的控制方法、装置、系统及存储介质 | |
CN104850435B (zh) | 电源管理控制器与方法 | |
JP5093620B2 (ja) | プラットフォームベースのアイドルタイム処理 | |
US8028177B2 (en) | Method for changing power states of a computer | |
US10452404B2 (en) | Optimized UEFI reboot process | |
TWI528162B (zh) | 電腦系統及其作業系統切換方法 | |
US7757060B2 (en) | Reducing wake latency time for power conserving state transition | |
US20070150713A1 (en) | Methods and arrangements to dynamically modify the number of active processors in a multi-node system | |
PL193918B1 (pl) | Sposób sterowania systemem obsługi informacji i system obsługi informacji | |
US20030070065A1 (en) | Suspending to nonvolatile storage | |
JPH1097353A (ja) | コンピュータシステム及び同システムに適用するレジューム処理方法 | |
JP2002163045A (ja) | コンピュータシステム及びその待機モード制御方法 | |
US20150143098A1 (en) | Method for updating firmware of an electronic device within a computer | |
KR20090026895A (ko) | 시스템 온 칩에서 전력 소모를 감소시키기 위한 장치 및방법 | |
CN101599023A (zh) | 电源管理控制器与方法 | |
CN112506745B (zh) | 内存温度读取方法、装置及计算机可读存储介质 | |
US20190004818A1 (en) | Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof | |
US6725384B1 (en) | Method and apparatus for enabling a wake-up event by modifying a second register to enable a second wake-up event responsive to detecting entry of data in a first register | |
CN111506351A (zh) | 片上系统的深度休眠方法、唤醒方法和休眠与唤醒方法 | |
TWI485623B (zh) | 快速喚醒電腦系統方法與電腦系統 | |
US20120311312A1 (en) | Fast Boot Via State Recreation | |
JP5578811B2 (ja) | 情報処理装置、情報処理装置の制御方法及びプログラム | |
WO2012126345A1 (zh) | 计算机的启动方法、启动装置、状态转换方法和状态转换装置 | |
JPH11282685A (ja) | 情報処理装置 | |
KR101236393B1 (ko) | 전자장치 및 그 제어방법 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |