一种基于混合内存的系统休眠、唤醒方法及装置制造方法

xiaoxiao2020-7-22  3

一种基于混合内存的系统休眠、唤醒方法及装置制造方法
【专利摘要】本发明提供了一种基于混合内存的系统休眠方法,包括:进行混合内存的初始化,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区;接收休眠指令后,将系统休眠到PCM。本发明从整体上具备较快的响应速度,同时实现了休眠到磁盘的高可靠性,节省了设备的开销,并拥有良好的用户体验。
【专利说明】一种基于混合内存的系统休眠、唤醒方法及装置
【技术领域】
[0001]本发明涉及存储器领域,尤其涉及一种基于混合内存的系统休眠、唤醒方法及装置。
【背景技术】
[0002]对于计算机系统或者移动终端系统,由于开关机并不方便快捷,在暂时不使用时,往往都是保持着开机状态,这会造成能源的浪费,也带来了不好的用户体验。目前,为了提高开机速度,往往采用系统休眠的策略,主要有休眠到DRAM(Dynamic Random AccessMemory)和休眠到磁盘两种方式。
[0003]休眠到DRAM的方式在休眠和唤醒的相应速度方面表现良好,但是对于休眠中若发生电力供应意外,如停电、电池耗尽等情况,会造成内存数据的丢失,重启后无法恢复到操作系统休眠前的状态。休眠到磁盘的方式能够较好地应对数据丢失的风险,但由于需要保存内存完整的映像,所以需要磁盘提供额外的空间,此外,磁盘的读写速度相对内存来说慢得多,导致休眠和唤醒的时间开销大。

【发明内容】

[0004]本发明的实施例提供了一种基于混合内存的系统休眠、唤醒方法及装置,实现PCM作为内存及存储设备的新策略,减小了时间开销。
[0005]为实现上述目的,本发明实施例提供了如下技术方案:
[0006]—种基于混合内存的系统休眠方法,包括:
[0007]进行混合内存的初始化,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区;
[0008]接收休眠指令后,将系统休眠到PCM。
[0009]可选的,在系统冷启动时进行混合内存的初始化。
[0010]可选的,系统休眠到PCM后,关闭系统电源。
[0011]可选的,混合内存初始化的步骤具体包括:
[0012]设置PCM和DRAM的地址空间;
[0013]对物理内存管理区进行初始化。
[0014]可选的,将系统休眠到PCM的步骤具体包括:
[0015]杀死保存在DRAM中的非永久性进程;
[0016]冻结正在PCM中的进程、设备和CPU上下文。
[0017]此外,本发明还提供了一种基于混合内存的系统唤醒方法,用于唤醒由上述方法进行休眠的系统。
[0018]可选的,唤醒的步骤具体包括:
[0019]进行系统预引导;
[0020]确定是否从PCM上恢复启动;[0021]若是,则,恢复系统设备、CPU上下文和被冻结的进程。
[0022]此外,本发明还提供了一种基于混合内存的系统休眠装置,包括:
[0023]初始化模块,用于进行混合内存的初始化,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区;
[0024]休眠模块,用于接收休眠指令后,将系统休眠到PCM。
[0025]可选的,所述初始化模块在系统冷启动时进行混合内存的初始化。
[0026]可选的,还包括断电模块,用于系统休眠到PCM后,关闭系统电源。
[0027]本发明实施例提供的基于混合内存的系统休眠、唤醒方法,通过设置物理内存管理区页框分配标记,将启动进程的存储分配至PCM,将非永久性进程的存储分配至DRAM,从整体上具备较快的响应速度,同时实现了休眠到磁盘的高可靠性,节省了设备的开销,并拥有良好的用户体验。
【专利附图】

【附图说明】
[0028]图1为根据本发明实施例的基于混合内存的系统休眠方法的流程图;
[0029]图2为根据本发明实施例的混合内存系统构架图;
[0030]图3为根据本发明实施例的系统在运行时内存的进程和数据分布示意图;
[0031]图4为根据本发明实施例的系统在休眠时内存的进程和数据操作示意图;
[0032]图5为根据本发明实施例的系统在唤醒时内存的进程和数据操作示意图。
【具体实施方式】
[0033]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的【具体实施方式】做详细的说明。
[0034]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以下实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内,因此本发明不受下面公开的具体实施例的限制。
[0035]本发明提出了一种基于混合内存的系统休眠方法,混合内存为PCM(PhaseChangeRandom Access Memory)与DRAM的混合内存,将系统休眠到PCM,从而提高系统可靠性以及响应速度。
[0036]为此,本发明提供了如下技术方案:
[0037]—种基于混合内存的系统休眠方法,包括:
[0038]进行混合内存的初始化,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区;
[0039]接收休眠指令后,将系统休眠到PCM。
[0040]在本发明中,通过设置物理内存管理区页框分配标记,从而,将启动进程的存储分配至PCM,将非永久性进程的存储分配至DRAM,在休眠时,可将系统休眠至PCM,实现了休眠到磁盘的高可靠性,节省了设备的开销,并拥有良好的用户体验。
[0041]为了更好的理解本发明,以下将结合具体的实施例进行详细的描述。
[0042]在本发明中,提出了基于PCM和DRAM的混合内存的系统休眠方法,对于PCM和DRAM的混合内存的系统构架如图2所示,中央处理器(CPU)通过缓存与混合内存进行存储操作,进而与磁盘或闪存进行存储操作。
[0043]在系统操作中,存在以下几种进程和数据:静态内核,即内核代码,为内核镜像解压后的代码和数据;动态内核,即内核线程,为操作系统启动过程中创建的内核进程;永久性进程,即操作系统启动过程中创建的用户进程,生存周期在关机之前都是一直存在的;非永久性进程,即用户通过命令行创建的用户进程,生存周期由用户决定。
[0044]在本实施例中,首先,进行混合内存的初始化,可以在系统开机冷启动时进行混合内存的初始化,初始化后,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区。
[0045]在混合内存的初始化中,通过设置PCM和DRAM的地址空间,也就是PCM内存的起始地址和末尾地址、DRAM内存的起始地址和末尾地址,而后,对物理内存管理区进行初始化,在初始化完成之后,操作系统就可以对不同类型的物理内存可见了。
[0046]这样,每当发生缺页中断请求内存时,内存页框分配伙伴关系算法会在PCM区内分配内存,使得静态和动态内核、永久性进程都保存到了 PCM内存中,而用户通过命令行创建的非永久性进程就都保存到了 DRAM中,如图3所示,为在此过程中系统内存的进程和数据分布情况。
[0047]而后,在接到休眠指令后,将系统休眠到PCM。
[0048]具体地,参考图4所示,在用户发出休眠指令后,首先,操作系统杀死保存在DRAM中的非永久性进程,包括清除进程相关的数据结构,把需要写回的数据写回到磁盘上,并保存系统相关设置,此过程与正常关机时对非永久性进程的处理过程相类似,完成这些后,系统回到了开机后的初始状态;同时,操作系统调用休眠到PCM的功能,S卩,冻结正在PCM中的进程和设备,在具体实施例中,可以首先冻结未设置PF_SYNCTHREAD和PF_N0FREEZE的进程,其次当具有PF_SYNCTHREAD标志的进程同步完数据到磁盘之后,这些进程也立即被冻结,然后冻结系统设备和CPU上下文,这些数据会被保存到PCM内存的指定位置。
[0049]更进一步地,在休眠到PCM之后,可以关闭系统电源,使得冷启动后的状态保存到了 PCM 中。
[0050]而后,在接到唤醒操作指令后,操作系统执行唤醒功能。
[0051]具体地,参考图5所示,用户发出唤醒操作,通常地,唤醒操作为一个电信号,其会触发系统电源进行启动,同通常的唤醒操作,系统首先会经过和冷启动相同的预引导阶段,然后BOOTLOADER会检查PCM上休眠中保存寄存器的指定位置,决定是否直接从PCM上恢复启动,若检测到有数据,则会开始唤醒过程,恢复CPU上下文,恢复系统设备,恢复被冻结的进程,最后系统恢复到开机冷启动后的状态。
[0052]以上为本发明系统休眠和唤醒方法的实施例,通过设置物理内存管理区页框分配标记,使得PCM中保留内核和永久性进程,访问较多的非永久性进程保留在DRAM中,操作系统通过休眠到PCM策略,既具备了休眠到DRAM较快的响应速度,又实现了休眠到磁盘的高可靠性,休眠唤醒后能快速恢复到开机冷启动后的状态,而且重复利用PCM节省了设备开销,具有良好的用户体验,可广泛应用于计算机系统和移动终端设备中。
[0053]此外,本发明还提供了基于上述方法的系统休眠装置,包括:
[0054]初始化模块,用于进行混合内存的初始化,将内核设置分区页框分配标记位为PCM区,以及程序文件执行设置分区页框分配标记位为DRAM区;
[0055]休眠模块,用于接收休眠指令后,将系统休眠到PCM。
[0056]其中,所述初始化模块在系统冷启动时进行混合内存的初始化。
[0057]此外,还包括断电模块,用于系统休眠到PCM后,关闭系统电源。
[0058]本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
【权利要求】
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后,关闭系统电源。
【文档编号】G06F3/14GK103927145SQ201410175724
【公开日】2014年7月16日 申请日期:2014年4月28日 优先权日:2014年4月28日
【发明者】陈岚, 戴正元, 郝晓冉 申请人:中国科学院微电子研究所

最新回复(0)