内存回收方法及装置制造方法

文档序号:6500031阅读:140来源:国知局
内存回收方法及装置制造方法
【专利摘要】本发明实施例提供一种内存回收方法及装置,内存回收方法包括:接收内存回收请求消息,内存回收请求消息中包含回收标识,回收标识用于表示请求回收的内存页面数量;根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的页序回收NVM非活动页面,本发明实施例的内存回收方法及装置通过按照NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面,实现了NVM非活动内存页面被写次数相对小的页面先被回收利用,NVM非活动内存页面被写次数相对大的页面后被回收利用,从而能够使NVM内存页面磨损均衡,提高了存储单元的稳定性和可靠性。
【专利说明】内存回收方法及装置【技术领域】
[0001 ] 本发明实施例涉及计算机【技术领域】,尤其涉及内存回收方法及装置。
【背景技术】
[0002]构成内存单元的内存器件通常包括动态随机访问存储器(英文全称DynamicRandom Access Memory,简称 DRAM)和非易失性存储器(英文全称 Non-Volatile Memory,简称NVM),DRAM可以承受的写次数高,但可集成度低,可集成的存储空间有限,NVM的集成度更高,可以集成较大内存容量的内存单元,但可以承受的写次数相对较低,随着人们对存储设备的内存容量的要求越来越高,期望存储设备的内存容量越来越大,越来越稳定可靠,因此,出现了由DRAM和NVM构成的混合结构的内存单元,由DRAM和NVM混合可以提高存储设备的存储容量。
[0003]现有技术中,DRAM和NVM混合结构的存储设备的操作系统在执行页面回收操作时,采用最近最少使用算法(英文全称Least Recently Used,简称LRU)从非活动的NVM页面链表的头部选择相应数量的页面进行回收,这种方法可能会导致被写次数较多的NVM页面先被回收利用,致使被写次数多的NVM被磨损严重,影响整个存储单元的稳定性和可靠性。

【发明内容】

[0004]本发明实施例的目的在于提供一种内存回收方法,旨在解决NVM的内存页面磨损不均衡的问题。
[0005]第一方面,本发明提供一种内存回收方法,包括:
[0006]接收内存回收请求消息,所述内存回收请求消息中包含回收标识,所述回收标识用于表示请求回收的内存页面数量;
[0007]根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面。
[0008]结合第一方面,在第一方面的第一种可能的实现方式中,所述根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,还包括:
[0009]确定所述NVM非活动内存页面的被写次数;
[0010]根据所述NVM非活动内存页面的被写次数,将所述NVM非活动内存页面存储至非活动内存页面链表中的相应段中,所述非活动内存页面链表中包括多个段,每个段用于存储设定被写次数范围的NVM非活动内存页面。
[0011]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述非活动内存页面链表中包括的多个段按照对应的设定被写次数范围从小到大的顺序在所述非活动内存页面链表中排列。
[0012] 结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面,包括:
[0013]在所述非活动内存页面链表中按照设定被写次数范围从小到大的顺序,回收一个或多个段中的与所述回收标识请求回收的内存页面数量匹配的NVM非活动内存页面。
[0014]结合第一方面,在第一方面的第四种可能的实现方式中,所述根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,还包括:
[0015]确定所述NVM非活动内存页面的被写次数;
[0016]将所述NVM非活动内存页面存储至非活动内存页面链表中的最后一个页面组中,所述页面列表中包括多个页面组,每个页面组中包括按照被写次数从小到大顺序排列的设定个数的NVM非活动内存页面。
[0017]结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述非活动内存页面链表中包括的多个页面组按照建立时间的先后页序在所述非活动内存页面链表中排列。
[0018]结合第一方面的第四种可能的实现方式或第一方面的第五种可能的实现方式中,在第一方面的第六种可能的实现方式中,所述根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面,包括:
[0019]在所述非活动内存页面链表中按照建立时间的先后顺序,回收一个或多个页面组中的与所述回收标识请求回收的内存页面数量匹配的NVM非活动内存页面。
[0020]第二方面,本发明实施例提供一种内存回收装置,包括:
[0021 ] 接收模块,用于接收内存回收请求消息,所述内存回收请求消息中包含回收标识,所述回收标识用于表示请求回收的内存页面数量;
[0022]内存回收模块,用于根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面。
[0023]结合第二方面,在第二方面的第一种可能的实现方式中,还包括:
[0024]确定模块,用于在所述内存回收模块根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,确定所述NVM非活动内存页面的被写次数;
[0025]第一插入模块,用于根据所述NVM非活动内存页面的被写次数,将所述NVM非活动内存页面存储至非活动内存页面链表中的相应段中,所述非活动内存页面链表中包括多个段,每个段用于存储设定被写次数范围的NVM非活动内存页面。
[0026]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述非活动内存页面链表中包括的多个段按照对应的设定被写次数范围从小到大的顺序在所述非活动内存页面链表中排列。
[0027]结合第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,
[0028]内存回收模块,具体用于在所述非活动内存页面链表中按照设定被写次数范围从小到大的顺序,回收一个或多个段中的与所述回收标识请求回收的内存页面数量匹配的NVM非活动内存页面。[0029]结合第二方面,在第二方面的第四种可能的实现方式中,还包括:
[0030]确定模块,用于在所述内存回收模块根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,确定所述NVM非活动内存页面的被写次数;
[0031 ] 第二插入模块,用于将所述NVM非活动内存页面存储至非活动内存页面链表中的最后一个页面组中,所述页面列表中包括多个页面组,每个页面组中包括按照被写次数从小到大顺序排列的设定个数的NVM非活动内存页面。
[0032]结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述非活动内存页面链表中包括的多个页面组按照建立时间的先后顺序在所述非活动内存页面链表中排列。
[0033]结合第二方面的第四种可能的实现方式或第二方面的第五种可能的实现方式中,在第二方面的第六种可能的实现方式中,
[0034]内存回收模块,具体用于在所述非活动内存页面链表中按照建立时间的先后顺序,回收一个或多个页面组中的与所述回收标识请求回收的内存页面数量匹配的NVM非活动内存页面。
[0035]本实施例的内存回收方法及装置,通过接收内存回收请求消息,内存回收请求消息中包含回收标识,回收标识用于表示请求回收的内存页面数量,根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面,实现了 NVM非活动内存页面被写次数相对小的页面先被回收利用,NVM非活动内存页面被写次数相对大的页面后被回收利用,从而能够使NVM内存页面磨损均衡,提高了存储单元的稳定性和可靠性。
【专利附图】

【附图说明】
[0036]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0037]图1为本发明内存回收方法实施例一的流程图;
[0038]图2为本发明NVM非活动内存页面链表组织形式实施例一示意图;
[0039]图3为本发明内存回收方法实施例二的流程图;
[0040]图4为本发明NVM非活动内存页面链表组织形式实施例二示意图;
[0041]图5为本发明内存回收方法实施例三的流程图;
[0042]图6为本发明内存回收装置实施例一的流程图。
【具体实施方式】
[0043]为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0044]需要说明的是:本发明实施例的内存回收方法可以适用于内存模块为混合型的内存回收装置,即内存回收装置的内存模块由动态随机访问存储器(英文全称DynamicRandom Access Memory,简称 DRAM)和非易失性存储器(英文全称 Non-Volatile Memory,简称NVM)构成,还可以适用于内存模块由NVM构成的内存回收装置。对于内存模块为混合型的内存回收装置,在执行内存回收时,可以先回收DRAM中的非活动内存页面,当DRAM中的非活动内存页面数量不能满足回收需要时,再回收NVM中内存页面,回收NVM中内存页面的方法可以采用本发明实施例的内存回收方法。
[0045]本实施例的内存回收方法可以采用内存回收装置来实现,该内存回收装置可以通过硬件或软件的方式实现,该内存回收装置通常可以为手机、计算机等终端中具有处理功能的部件,例如:CPU等,可以用于在终端中实现内存回收方法。
[0046]图1为本发明内存回收方法实施例一的流程图,如图1所示,本实施的内存回收方法包括:
[0047]S101、接收内存回收请求消息,内存回收请求消息中包含回收标识,回收标识用于表示请求回收的内存页面数量。
[0048]具体地,例如:内存回收装置在运行程序时,需要为某一进程分配内存空间,此时,如果空闲内存不足,则操作系统向内存管理模块发送内存回收请求消息,内存管理模块接收该内存回收请求消息,该内存回收请求消息中包含回收标识,该回收标识可以为用于表示操作系统请求的内存页面数量的标识,即操作系统请求内存管理模块分配回收标识所标识的数量的内存页面,内存管理模块根据该内存回收请求消息,在NVM非活动内存页面链表中回收相应数量的内存页面满足操作系统的需要。
[0049]S102、根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面。
[0050]具体地,内存管理模块根据NVM非活动内存页面链表中的非活动内存页面的被写次数的大小,按照非活动内存页面的被写次数由小到大的顺序,依次回收与回收标识相应的个数的非活动内存页面,这样NVM非活动内存页面链表中的被写次数小的非活动内存页面先被回收利用,若被回收的非活动内存页面的被写次数在下一次回收时仍然较小,则继续回收该被写次数较小的非活动内存页面,这样使得在执行内存页面回收过程中,被写次数较小的非活动内存页面总是先被回收,避免了内存回收装置的内存模块因为一些内存页面因被写次数多先被损坏,影响整个内存模块的稳定性和可靠性,提高了 NVM内存页面的磨损均衡性。
[0051]本发明实施例的内存回收方法,通过接收内存回收请求消息,内存回收请求消息中包含回收标识,回收标识用于表示请求回收的内存页面数量,根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面,实现了 NVM非活动内存页面被写次数相对小的页面先被回收利用,NVM非活动内存页面被写次数相对大的页面后被回收利用,从而能够使NVM内存页面磨损均衡,提高了存储单元的稳定性和可靠性。
[0052]在上述实施例的基础上,进一步地,根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,还包括:确定NVM非活动内存页面的被写次数;根据NVM非活动内存页面的被写次数,将NVM非活动内存页面存储至非活动内存页面链表中的相应段中,非活动内存页面链表中包括多个段,每个段用于存储设定被写次数范围的NVM非活动内存页面。
[0053]具体地,内存管理模块根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,还可以先确定NVM非活动内存页面的被写次数,例如:内存管理模块可以通过内存控制器缓存中记录的NVM非活动内存页面的被写次数获取非活动内存页面的被写次数,若内存控制器缓存中没有相应非活动内存页面的被写次数的记录时,则还可以从NVM的计数器中获取相应非活动内存页面的被写次数,通过在内存控制器中设置内存控制器缓存,在内存控制器缓存中记录非活动内存页面的被写次数可以减少对NVM的访问次数。内存管理模块还可以定期地将内存控制器缓存中记录的非活动内存页面的被写次数刷新到NVM的计数器中,该NVM的计数器中记录了 NVM中所有内存页面的被写次数。
[0054]在上述实施例的基础上,进一步地,非活动内存页面链表中包括的多个段按照对应的设定被写次数范围从小到大的顺序在非活动内存页面链表中排列。
[0055]具体地,图2为本发明NVM非活动内存页面链表组织形式实施例一示意图,如图2所示,NVM非活动内存页面链表包括多个NVM非活动内存页面链表段,每个NVM非活动内存页面链表段的表头包含一数值范围,该数值范围表示该段内所有内存页面的被写次数范围,如NVM非活动内存页面链表段A内的所有内存页面的被写次数范围在O到100之间,在NVM非活动内存页面链表段A内所有内存页面的被写次数范围在O到100之间的内存页面按照被写次数从小到大的顺序在链表中排列。
[0056]当有新的NVM非活动内存页面移动到NVM非活动内存页面链表中时,通过判断获知待插入的NVM非活动内存页面M的被写次数为30,将该NVM非活动内存页面M插入到被写次数范围在O到100之间的NVM非活动内存页面链表段A中,并具体插入到链表段A的被写次数为20和50的非活动内存页面之间,使得插入后链表段A内的内存页面依然按照被写次数从小到大的顺序排列,这样能够保证在页面回收时,总是能从按照被写次数从小到大的顺序回收NVM非活动内存页面链表中的页面。
[0057]在上述实施例的基础上,进一步地,根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面,包括:在非活动内存页面链表中按照设定被写次数范围从小到大的顺序,回收一个或多个段中的与回收标识请求回收的内存页面数量匹配的NVM非活动内存页面。
[0058]具体地,图3为本发明内存回收方法实施例二的流程图,如图3所示,本实施例提供的内存回收方法,非活动内存页面链表可以分为包括多个段,每个段用于存储设定被写次数范围的NVM非活动内存页面,非活动内存页面链表中包括的多个段按照对应的设定被写次数范围从小到大的顺序在非活动内存页面链表中排列,内存管理模块对NVM中的非活动内存页面进行回收时可以依照下述步骤回收:
[0059]301、选择NVM非活动内存页面链表中被写次数范围最小的段。
[0060]内存管理模块在NVM非活动内存页面链表中选择NVM非活动内存页面链表中被写次数范围最小的NVM非活动内存页面链表段。
[0061]302、从选择的NVM非活动内存页面链表段的头部回收非活动页面。
[0062]从选择的非活动内存页面链表段的头部开始,按照非活动内存页面被写次数从小到大的顺序,选择指定数目的内存页面,回收选择的内存页面,使其成为空闲页面从而可以进行再次利用,所述的指定数目可以由操作系统设定。
[0063]303、判断是否回收了指定数目的内存页面,若是,则执行304 ;若否,则执行305。
[0064]若选择的内存页面的数目能够满足操作系统的需求,则此次内存回收操作完成;若选择的内存页面的数目没有满足操作系统的需求,则从NVM非活动内存页面链表中的其他段中回收内存页面。
[0065]304、结束。
[0066]305、判断是否是最后一个NVM非活动内存页面链表段,若是,则执行304 ;若否,则执行306。
[0067]若上述301中选择的NVM非活动内存页面链表段是NVM非活动内存页面链表的最后一个链表段,则此次内存回收操作完成;若不是,则从NVM非活动内存页面链表中的其他段中回收内存页面。
[0068]306、选择NVM非活动内存页面链表中被写次数范围次小的段。
[0069]选择NVM非活动内存页面链表中被写次数范围较上述301中选择的NVM非活动内存页面链表段的写次数范围小且相邻的NVM非活动内存页面链表段,再执行302。
[0070]可选地,在内存回收方法实施例一的基础上,本实施例的内存回收方法在根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,还包括:确定NVM非活动内存页面的被写次数;将NVM非活动内存页面存储至非活动内存页面链表中的最后一个页面组中,页面列表中包括多个页面组,每个页面组中包括按照被写次数从小到大顺序排列的设定个数的NVM非活动内存页面。
[0071]具体地,内存管理模块在根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,还可以先确定NVM非活动内存页面的被写次数,确定NVM非活动内存页面的被写次数的具体过程与上述实施例相同,此处不再赘述。
[0072]内存管理模块还可以将NVM非活动内存页面存储至非活动内存页面链表中的最后一个页面组中,页面列表中包括多个页面组,每个页面组中包括按照被写次数从小到大顺序排列的设定个数的NVM非活动内存页面。
[0073]在上述实施例的基础上,进一步地,非活动内存页面链表中包括的多个页面组按照建立时间的先后顺序在非活动内存页面链表中排列。
[0074]具体地,图4为本发明NVM非活动内存页面链表组织形式实施例二示意图,如图4所示,NVM非活动内存页面链表包括多个页面组,每个页面组按照建立时间的先后顺序在页面链表中排列,例如:页面组O中包含的设定个数的NVM非活动内存页面插入到链表中的时间比页面组P中包含的设定个数的NVM非活动内存页面插入到链表中的时间相对较早;页面组P中包含的设定个数的NVM非活动内存页面插入到链表中的时间比页面组Q中包含的设定个数的NVM非活动内存页面插入到链表中的时间相对较早。
[0075]页面组O、页面组P和页面组Q中包含的设定个数的NVM非活动内存页面依次按照非活动内存页面的被写次数从小到大顺序排列,当有新的NVM非活动内存页面N移动到非活动内存页面链表中时,通过判断获知待插入的NVM非活动内存页面N的被写次数为30,将该NVM非活动内存页面N插入到NVM非活动内存页面链表尾部的页面组Q中,并具体插入到页面组Q的被写次数为55和20的非活动内存页面之间,使得插入后链表段A内的内存页面依然按照被写次数从小到大的顺序排列,这样能够保证在页面回收时,总是能从按照被写次数从小到大的顺序回收页面组中的页面。
[0076]在上述实施例的基础上,进一步地,根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的页序回收NVM非活动页面,包括:在非活动内存页面链表中按照建立时间的先后顺序,回收一个或多个页面组中的与回收标识请求回收的内存页面数量匹配的NVM非活动内存页面。
[0077]具体地,图5为本发明内存回收方法实施例三的流程图,如图5所示,本实施例提供的内存回收方法,页面列表中可以包括多个页面组,每个页面组中包括按照被写次数从小到大顺序排列的设定个数的NVM非活动内存页面,页面链表中包括的多个页面组按照建立时间的先后顺序在页面链表中排列,内存管理模块对NVM中的非活动内存页面进行回收时可以依照下述步骤回收:
[0078]501、从NVM非活动内存页面链表中建立时间最早的页面组开始回收非活动页面。
[0079]内存管理模块从NVM非活动内存页面链表段的头部开始,按照非活动内存页面被写次数从小到大的顺序,选择指定数目的内存页面,回收选择的内存页面,使其成为空闲页面从而可以进行再次利用,所述的指定数目可以根据操作系统的需求而定。
[0080]502、判断是否回收了指定数目的内存页面。
[0081]若选择的内存页面的数目能够满足操作系统的需求,则此次内存回收操作完成;若选择的内存页面的数目没有满足操作系统的需求,则从NVM非活动内存页面链表中的其他页面组中回收内存页面。
[0082]503、结束。
[0083]504、判断是否到达NVM非活动内存页面链表的尾部。
[0084]若已经到达NVM非活动内存页面链表的尾部,则此次内存回收操作完成;若不是,则从NVM非活动内存页面链表中的其他页面组中回收内存页面。
[0085]505、从NVM非活动内存页面链表中建立时间的页面组开始回收非活动页面。
[0086]选择NVM非活动内存页面链表中建立时间较上述501中选择的页面组的建立时间晚且相邻的页面组,在选择的页面组中按照非活动内存页面被写次数从小到大的顺序回收内存页面,直至回收的内存页面数量满足操作系统的需要。
[0087]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0088]图6为本发明内存回收装置实施例一的流程图,如图6所示,本实施的内存回收装置600包括:接收模块601和内存回收模块602,其中:
[0089]接收模块601用于接收内存回收请求消息,内存回收请求消息中包含回收标识,回收标识用于表示请求回收的内存页面数量;
[0090]内存回收模块602用于根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的页序回收NVM非活动页面。
[0091 ] 本实施例的内存回收装置可以用于执行内存回收方法实施例一的内存回收方法,具体执行过程可以参照内存回收方法实施例一,此处不再赘述。
[0092]本实施例的内存回收装置,通过接收模块接收内存回收请求消息,内存回收请求消息中包含回收标识,回收标识用于表示请求回收的内存页面数量,内存回收模块根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面,实现了 NVM非活动内存页面被写次数相对小的页面先被回收利用,NVM非活动内存页面被写次数相对大的页面后被回收利用,从而能够使NVM内存页面磨损均衡,提高了存储单元的稳定性和可靠性。
[0093]在上述实施例的基础上,进一步地,内存回收装置600还可以包括:确定模块和第一插入模块。
[0094]确定模块,可以用于在内存回收模块根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,确定NVM非活动内存页面的被写次数;
[0095]第一插入模块,可以用于根据NVM非活动内存页面的被写次数,将NVM非活动内存页面存储至非活动内存页面链表中的相应段中,非活动内存页面链表中包括多个段,每个段用于存储设定被写次数范围的NVM非活动内存页面。
[0096]在上述实施例的基础上,进一步地,非活动内存页面链表中包括的多个段按照对应的设定被写次数范围从小到大的顺序在非活动内存页面链表中排列。
[0097]在上述实施例的基础上,进一步地,内存回收模块具体可以用于在非活动内存页面链表中按照设定被写次数范围从小到大的顺序,回收一个或多个段中的与回收标识请求回收的内存页面数量匹配的NVM非活动内存页面。
[0098]可选地,在内存回收装置实施例一的基础上,内存回收装置600还可以包括:确定模块和第二插入模块,其中:
[0099]确定模块,可以用于在内存回收模块根据回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,确定NVM非活动内存页面的被写次数;
[0100]第二插入模块,可以用于将NVM非活动内存页面存储至非活动内存页面链表中的最后一个页面组中,页面列表中包括多个页面组,每个页面组中包括按照被写次数从小到大顺序排列的设定个数的NVM非活动内存页面。
[0101]在上述实施例的基础上,进一步地,非活动内存页面链表中包括的多个页面组按照建立时间的先后顺序在非活动内存页面链表中排列。
[0102]在上述实施例的基础上,进一步地,内存回收模块具体可以用于在非活动内存页面链表中按照建立时间的先后顺序,回收一个或多个页面组中的与回收标识请求回收的内存页面数量匹配的NVM非活动内存页面。
[0103]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种内存回收方法,其特征在于,包括: 接收内存回收请求消息,所述内存回收请求消息中包含回收标识,所述回收标识用于表示请求回收的内存页面数量; 根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面。
2.根据权利要求1所述的方法,其特征在于,所述根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,还包括: 确定所述NVM非活动内存页面的被写次数; 根据所述NVM非活动内存页面的被写次数,将所述NVM非活动内存页面存储至非活动内存页面链表中的相应段中,所述非活动内存页面链表中包括多个段,每个段用于存储设定被写次数范围的NVM非活动内存页面。
3.根据权利要求2所述的方法,其特征在于,所述非活动内存页面链表中包括的多个段按照对应的设定被写次数范围从小到大的顺序在所述非活动内存页面链表中排列。
4.根据权利要求2或3所述的方法,其特征在于,所述根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面,包括: 在所述非活动内存页面链表中按照设定被写次数范围从小到大的顺序,回收一个或多个段中的与所述回收标识请求回收的内存页面数量匹配的NVM非活动内存页面。
5.根据权利要求1所述的方法,其特征在于,所述根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,还包括: 确定所述NVM非活动内存页面的被写次数; 将所述NVM非活动内存页面存储至非活动内存页面链表中的最后一个页面组中,所述页面列表中包括多个页面组,每个页面组中包括按照被写次数从小到大顺序排列的设定个数的NVM非活动内存页面。
6.根据权利要求5所述的方法,其特征在于,所述非活动内存页面链表中包括的多个页面组按照建立时间的先后顺序在所述非活动内存页面链表中排列。
7.根据权利要求5或6所述的方法,其特征在于,所述根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面,包括: 在所述非活动内存页面链表中按照建立时间的先后顺序,回收一个或多个页面组中的与所述回收标识请求回收的内存页面数量匹配的NVM非活动内存页面。
8.—种内存回收装置,其特征在于,包括: 接收模块,用于接收内存回收请求消息,所述内存回收请求消息中包含回收标识,所述回收标识用于表示请求回收的内存页面数量; 内存回收模块,用于根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面。
9.根据权利要求8所述的装置,其特征在于,还包括: 确定模块,用于在所述内存回收模块根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,确定所述NVM非活动内存页面的被写次数; 第一插入模块,用于根据所述NVM非活动内存页面的被写次数,将所述NVM非活动内存页面存储至非活动内存页面链表中的相应段中,所述非活动内存页面链表中包括多个段,每个段用于存储设定被写次数范围的NVM非活动内存页面。
10.根据权利要求9所述的装置,其特征在于,所述非活动内存页面链表中包括的多个段按照对应的设定被写次数范围从小到大的顺序在所述非活动内存页面链表中排列。
11.根据权利要求9或10所述的装置,其特征在于, 内存回收模块,具体用于在所述非活动内存页面链表中按照设定被写次数范围从小到大的顺序,回收一个或多个段中的与所述回收标识请求回收的内存页面数量匹配的NVM非活动内存页面。
12.根据权利要求8所述的装置,其特征在于,还包括: 确定模块,用于在所述内存回收模块根据所述回收标识,按照非易失性存储器NVM非活动内存页面被写次数从小到大的顺序回收NVM非活动页面之前,确定所述NVM非活动内存页面的被写次数; 第二插入模块,用于将所述NVM非活动内存页面存储至非活动内存页面链表中的最后一个页面组中,所述页面列表中包括多个页面组,每个页面组中包括按照被写次数从小到大顺序排列的设定个数的NVM非活动内存页面。
13.根据权利要求12所述的装置,其特征在于,所述非活动内存页面链表中包括的多个页面组按照建立时间的先后顺序在所述非活动内存页面链表中排列。
14.根据权利要求12或13所述的装置,其特征在于, 内存回收模块,具体用于在所述非活动内存页面链表中按照建立时间的先后顺序,回收一个或多个页面组中的与所述回收标识请求回收的内存页面数量匹配的NVM非活动内存页面。
【文档编号】G06F12/02GK104008061SQ201310057351
【公开日】2014年8月27日 申请日期:2013年2月22日 优先权日:2013年2月22日
【发明者】夏飞, 蒋德钧, 魏巍, 熊劲 申请人:华为技术有限公司, 中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1