CN103927145A - 一种基于混合内存的系统休眠、唤醒方法及装置 - Google Patents
一种基于混合内存的系统休眠、唤醒方法及装置 Download PDFInfo
- Publication number
- CN103927145A CN103927145A CN201410175724.XA CN201410175724A CN103927145A CN 103927145 A CN103927145 A CN 103927145A CN 201410175724 A CN201410175724 A CN 201410175724A CN 103927145 A CN103927145 A CN 103927145A
- Authority
- CN
- China
- Prior art keywords
- pcm
- internal memory
- hibernates
- initialization
- dram
- 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.)
- Granted
Links
Abstract
本发明提供了一种基于混合内存的系统休眠方法,包括:进行混合内存的初始化,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区;接收休眠指令后,将系统休眠到PCM。本发明从整体上具备较快的响应速度,同时实现了休眠到磁盘的高可靠性,节省了设备的开销,并拥有良好的用户体验。
Description
技术领域
本发明涉及存储器领域,尤其涉及一种基于混合内存的系统休眠、唤醒方法及装置。
背景技术
对于计算机系统或者移动终端系统,由于开关机并不方便快捷,在暂时不使用时,往往都是保持着开机状态,这会造成能源的浪费,也带来了不好的用户体验。目前,为了提高开机速度,往往采用系统休眠的策略,主要有休眠到DRAM(Dynamic Random Access Memory)和休眠到磁盘两种方式。
休眠到DRAM的方式在休眠和唤醒的相应速度方面表现良好,但是对于休眠中若发生电力供应意外,如停电、电池耗尽等情况,会造成内存数据的丢失,重启后无法恢复到操作系统休眠前的状态。休眠到磁盘的方式能够较好地应对数据丢失的风险,但由于需要保存内存完整的映像,所以需要磁盘提供额外的空间,此外,磁盘的读写速度相对内存来说慢得多,导致休眠和唤醒的时间开销大。
发明内容
本发明的实施例提供了一种基于混合内存的系统休眠、唤醒方法及装置,实现PCM作为内存及存储设备的新策略,减小了时间开销。
为实现上述目的,本发明实施例提供了如下技术方案:
一种基于混合内存的系统休眠方法,包括:
进行混合内存的初始化,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区;
接收休眠指令后,将系统休眠到PCM。
可选的,在系统冷启动时进行混合内存的初始化。
可选的,系统休眠到PCM后,关闭系统电源。
可选的,混合内存初始化的步骤具体包括:
设置PCM和DRAM的地址空间;
对物理内存管理区进行初始化。
可选的,将系统休眠到PCM的步骤具体包括:
杀死保存在DRAM中的非永久性进程;
冻结正在PCM中的进程、设备和CPU上下文。
此外,本发明还提供了一种基于混合内存的系统唤醒方法,用于唤醒由上述方法进行休眠的系统。
可选的,唤醒的步骤具体包括:
进行系统预引导;
确定是否从PCM上恢复启动;
若是,则,恢复系统设备、CPU上下文和被冻结的进程。
此外,本发明还提供了一种基于混合内存的系统休眠装置,包括:
初始化模块,用于进行混合内存的初始化,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区;
休眠模块,用于接收休眠指令后,将系统休眠到PCM。
可选的,所述初始化模块在系统冷启动时进行混合内存的初始化。
可选的,还包括断电模块,用于系统休眠到PCM后,关闭系统电源。
本发明实施例提供的基于混合内存的系统休眠、唤醒方法,通过设置物理内存管理区页框分配标记,将启动进程的存储分配至PCM,将非永久性进程的存储分配至DRAM,从整体上具备较快的响应速度,同时实现了休眠到磁盘的高可靠性,节省了设备的开销,并拥有良好的用户体验。
附图说明
图1为根据本发明实施例的基于混合内存的系统休眠方法的流程图;
图2为根据本发明实施例的混合内存系统构架图;
图3为根据本发明实施例的系统在运行时内存的进程和数据分布示意图;
图4为根据本发明实施例的系统在休眠时内存的进程和数据操作示意图;
图5为根据本发明实施例的系统在唤醒时内存的进程和数据操作示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以下实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内,因此本发明不受下面公开的具体实施例的限制。
本发明提出了一种基于混合内存的系统休眠方法,混合内存为PCM(PhaseChange Random Access Memory)与DRAM的混合内存,将系统休眠到PCM,从而提高系统可靠性以及响应速度。
为此,本发明提供了如下技术方案:
一种基于混合内存的系统休眠方法,包括:
进行混合内存的初始化,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区;
接收休眠指令后,将系统休眠到PCM。
在本发明中,通过设置物理内存管理区页框分配标记,从而,将启动进程的存储分配至PCM,将非永久性进程的存储分配至DRAM,在休眠时,可将系统休眠至PCM,实现了休眠到磁盘的高可靠性,节省了设备的开销,并拥有良好的用户体验。
为了更好的理解本发明,以下将结合具体的实施例进行详细的描述。
在本发明中,提出了基于PCM和DRAM的混合内存的系统休眠方法,对于PCM和DRAM的混合内存的系统构架如图2所示,中央处理器(CPU)通过缓存与混合内存进行存储操作,进而与磁盘或闪存进行存储操作。
在系统操作中,存在以下几种进程和数据:静态内核,即内核代码,为内核镜像解压后的代码和数据;动态内核,即内核线程,为操作系统启动过程中创建的内核进程;永久性进程,即操作系统启动过程中创建的用户进程,生存周期在关机之前都是一直存在的;非永久性进程,即用户通过命令行创建的用户进程,生存周期由用户决定。
在本实施例中,首先,进行混合内存的初始化,可以在系统开机冷启动时进行混合内存的初始化,初始化后,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区。
在混合内存的初始化中,通过设置PCM和DRAM的地址空间,也就是PCM内存的起始地址和末尾地址、DRAM内存的起始地址和末尾地址,而后,对物理内存管理区进行初始化,在初始化完成之后,操作系统就可以对不同类型的物理内存可见了。
这样,每当发生缺页中断请求内存时,内存页框分配伙伴关系算法会在PCM区内分配内存,使得静态和动态内核、永久性进程都保存到了PCM内存中,而用户通过命令行创建的非永久性进程就都保存到了DRAM中,如图3所示,为在此过程中系统内存的进程和数据分布情况。
而后,在接到休眠指令后,将系统休眠到PCM。
具体地,参考图4所示,在用户发出休眠指令后,首先,操作系统杀死保存在DRAM中的非永久性进程,包括清除进程相关的数据结构,把需要写回的数据写回到磁盘上,并保存系统相关设置,此过程与正常关机时对非永久性进程的处理过程相类似,完成这些后,系统回到了开机后的初始状态;同时,操作系统调用休眠到PCM的功能,即,冻结正在PCM中的进程和设备,在具体实施例中,可以首先冻结未设置PF_SYNCTHREAD和PF_NOFREEZE的进程,其次当具有PF_SYNCTHREAD标志的进程同步完数据到磁盘之后,这些进程也立即被冻结,然后冻结系统设备和CPU上下文,这些数据会被保存到PCM内存的指定位置。
更进一步地,在休眠到PCM之后,可以关闭系统电源,使得冷启动后的状态保存到了PCM中。
而后,在接到唤醒操作指令后,操作系统执行唤醒功能。
具体地,参考图5所示,用户发出唤醒操作,通常地,唤醒操作为一个电信号,其会触发系统电源进行启动,同通常的唤醒操作,系统首先会经过和冷启动相同的预引导阶段,然后BOOTLOADER会检查PCM上休眠中保存寄存器的指定位置,决定是否直接从PCM上恢复启动,若检测到有数据,则会开始唤醒过程,恢复CPU上下文,恢复系统设备,恢复被冻结的进程,最后系统恢复到开机冷启动后的状态。
以上为本发明系统休眠和唤醒方法的实施例,通过设置物理内存管理区页框分配标记,使得PCM中保留内核和永久性进程,访问较多的非永久性进程保留在DRAM中,操作系统通过休眠到PCM策略,既具备了休眠到DRAM较快的响应速度,又实现了休眠到磁盘的高可靠性,休眠唤醒后能快速恢复到开机冷启动后的状态,而且重复利用PCM节省了设备开销,具有良好的用户体验,可广泛应用于计算机系统和移动终端设备中。
此外,本发明还提供了基于上述方法的系统休眠装置,包括:
初始化模块,用于进行混合内存的初始化,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区;
休眠模块,用于接收休眠指令后,将系统休眠到PCM。
其中,所述初始化模块在系统冷启动时进行混合内存的初始化。
此外,还包括断电模块,用于系统休眠到PCM后,关闭系统电源。
本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (10)
1.一种基于混合内存的系统休眠方法,包括:
进行混合内存的初始化,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区;
接收休眠指令后,将系统休眠到PCM。
2.根据权利要求1所述的系统休眠方法,其特征在于,在系统冷启动时进行混合内存的初始化。
3.根据权利要求1所述的系统休眠方法,其特征在于,系统休眠到PCM后,关闭系统电源。
4.根据权利要求1所述的系统休眠方法,其特征在于,混合内存初始化的步骤具体包括:
设置PCM和DRAM的地址空间;
对物理内存管理区进行初始化。
5.根据权利要求1所述的系统休眠方法,其特征在于,将系统休眠到PCM的步骤具体包括:
杀死保存在DRAM中的非永久性进程;
冻结正在PCM中的进程、设备和CPU上下文。
6.一种基于混合内存的系统唤醒方法,其特征在于,唤醒采用权利要求1-5中任一项所述的系统休眠方法进行休眠的系统。
7.根据权利要求6所述的系统唤醒方法,其特征在于,唤醒的步骤具体包括:
进行系统预引导;
确定是否从PCM上恢复启动;
若是,则,恢复系统设备、CPU上下文和被冻结的进程。
8.一种基于混合内存的系统休眠装置,其特征在于,包括:
初始化模块,用于进行混合内存的初始化,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区;
休眠模块,用于接收休眠指令后,将系统休眠到PCM。
9.根据权利要求8所述的系统休眠装置,其特征在于,所述初始化模块在系统冷启动时进行混合内存的初始化。
10.根据权利要求9所述的系统休眠装置,其特征在于,还包括断电模块,用于系统休眠到PCM后,关闭系统电源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410175724.XA CN103927145B (zh) | 2014-04-28 | 2014-04-28 | 一种基于混合内存的系统休眠、唤醒方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410175724.XA CN103927145B (zh) | 2014-04-28 | 2014-04-28 | 一种基于混合内存的系统休眠、唤醒方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103927145A true CN103927145A (zh) | 2014-07-16 |
CN103927145B CN103927145B (zh) | 2017-02-15 |
Family
ID=51145379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410175724.XA Active CN103927145B (zh) | 2014-04-28 | 2014-04-28 | 一种基于混合内存的系统休眠、唤醒方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103927145B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102590A (zh) * | 2014-07-22 | 2014-10-15 | 浪潮(北京)电子信息产业有限公司 | 一种异构内存管理方法及装置 |
CN104268005A (zh) * | 2014-10-22 | 2015-01-07 | 华为技术有限公司 | 虚拟机唤醒方法和装置 |
CN105938458A (zh) * | 2016-04-13 | 2016-09-14 | 上海交通大学 | 软件定义的异构混合内存管理方法 |
US10241919B2 (en) | 2014-05-09 | 2019-03-26 | Huawei Technologies Co., Ltd. | Data caching method and computer system |
WO2021197239A1 (zh) * | 2020-03-31 | 2021-10-07 | 华为技术有限公司 | 一种设备休眠方法及计算设备 |
WO2023169518A1 (zh) * | 2022-03-11 | 2023-09-14 | 华为技术有限公司 | 一种进程管理方法和电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819497B (zh) * | 2012-05-31 | 2015-09-30 | 华为技术有限公司 | 一种内存分配方法、装置及系统 |
CN102768571A (zh) * | 2012-06-13 | 2012-11-07 | 上海交通大学 | 基于pcm的数据中心的节能方法 |
-
2014
- 2014-04-28 CN CN201410175724.XA patent/CN103927145B/zh active Active
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10241919B2 (en) | 2014-05-09 | 2019-03-26 | Huawei Technologies Co., Ltd. | Data caching method and computer system |
CN104102590A (zh) * | 2014-07-22 | 2014-10-15 | 浪潮(北京)电子信息产业有限公司 | 一种异构内存管理方法及装置 |
CN104268005A (zh) * | 2014-10-22 | 2015-01-07 | 华为技术有限公司 | 虚拟机唤醒方法和装置 |
CN105938458A (zh) * | 2016-04-13 | 2016-09-14 | 上海交通大学 | 软件定义的异构混合内存管理方法 |
CN105938458B (zh) * | 2016-04-13 | 2019-02-22 | 上海交通大学 | 软件定义的异构混合内存管理方法 |
WO2021197239A1 (zh) * | 2020-03-31 | 2021-10-07 | 华为技术有限公司 | 一种设备休眠方法及计算设备 |
WO2023169518A1 (zh) * | 2022-03-11 | 2023-09-14 | 华为技术有限公司 | 一种进程管理方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103927145B (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2581826B1 (en) | Method and device for cold starting android mobile terminal | |
CN103927145A (zh) | 一种基于混合内存的系统休眠、唤醒方法及装置 | |
CN109739563B (zh) | 终端的控制方法、装置、系统及存储介质 | |
US8028177B2 (en) | Method for changing power states of a computer | |
CN102866934B (zh) | 基于非易失随机存储器的嵌入式设备的休眠及唤醒系统 | |
JP2011521365A (ja) | 電力消費低減のためのスリープ状態を提供する補助メモリ制御器を有する集積回路及びそのための方法 | |
KR20130055636A (ko) | 모바일 디바이스 내의 집적된 비휘발성 메모리와 메인 휘발성 메모리의 병행 사용 | |
EP3716637A1 (en) | Television standby and startup method, television and computer-readable storage medium | |
CN105446916B (zh) | Usb总线状态切换方法及装置 | |
CN111506351A (zh) | 片上系统的深度休眠方法、唤醒方法和休眠与唤醒方法 | |
CN103823769A (zh) | 计算机系统及数据回复方法 | |
CN104798058B (zh) | 功率状态转换期间高效存储/恢复状态信息的方法及设备 | |
US20170147363A1 (en) | System and method for reducing hibernate and resume time | |
CN115509342B (zh) | 一种多核集群之间的切换方法及系统 | |
CN102968174A (zh) | 安卓设备深层睡眠唤醒方法 | |
CN102736928B (zh) | 快速唤醒计算机系统方法与计算机系统 | |
CN101937344A (zh) | 一种计算机及其快速启动的方法 | |
WO2020093868A1 (zh) | 多核芯片、系统,及其方法和存储介质 | |
CN101727160B (zh) | 协处理器系统工作模式的切换方法和装置及处理器系统 | |
CN101950281B (zh) | 一种控制协处理器的方法和装置 | |
US9971535B2 (en) | Conversion method for reducing power consumption and computing apparatus using the same | |
CN101436097B (zh) | 电子装置及其唤醒方法 | |
CN103150191A (zh) | 一种终端设备 | |
CN103984645A (zh) | 一种基于双控的缓存一致性数据刷写方法 | |
KR101064834B1 (ko) | 비휘발성 램을 이용한 인스턴트 부팅 가능 컴퓨팅 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |