一种管理异构混合内存的方法及装置制造方法

文档序号:6626139阅读:144来源:国知局
一种管理异构混合内存的方法及装置制造方法
【专利摘要】本发明公开了一种管理异构混合内存的方法及装置。所述异构混合内存包括NVM和DRAM,所述方法包括以下步骤:接收用户进程发送的内存分配请求,对所述用户进程进行判断;如果所述用户进程为系统级进程,则将所述DRAM中的内存空间分配给所述用户进程;如果所述用户进程为批量处理进程,则将所述NVM中的内存空间分配给所述用户进程。本发明通过上述内存管理机制,能够保证系统级进程在访存速度较快的DRAM中进行数据处理,并使得批量处理进程在NVM中进行数据处理,降低了由于DRAM和NVM之间的访存速度差异而对数据处理速度带来的影响,提升了用户进程的数据处理速度和系统整体的处理性能。
【专利说明】一种管理异构混合内存的方法及装置

【技术领域】
[0001]本发明涉及计算机【技术领域】,具体涉及一种管理异构混合内存的方法及装置。

【背景技术】
[0002]随着云时代的来临,大数据(Big data)也吸引了越来越多的关注,大数据所催生的内存计算对计算机内存的速度、容量、能耗和可靠性提出了极高的需求。而传统的计算机内存由DRAM (Dynamic Random Access Memory,动态随机存取存储器)构成,由于DRAM的介质尺寸已到达CMOS (Complementary Metal-Oxide-Semiconductor,互补式金属氧化物半导体)工艺的极限,因此,DRAM在系统稳定性、数据可靠性和寿命等问题上面临极大挑战。
[0003]NVM(Non-VolatiIe Memory,非易失性存储器)的出现,为扩展计算机内存提供了新的途径,同时促进了计算机在系统结构上从机械硬盘的传统架构到新型NVM的内存架构的演变。
[0004]目前,业界中通过1/0通道构建由DRAM和NVM组成的混合内存,通过1/0通道将数据迁移到内存中,数据访问延迟较大,无法达到内存计算的ns(纳秒)级别的性能需求。


【发明内容】

[0005]本发明提供了一种管理异构混合内存的方法及装置,以解决现有技术中数据访问延迟较大的缺陷。
[0006]本发明提供了一种管理异构混合内存的方法,所述异构混合内存包括非易失性存储器NVM和动态随机存取存储器DRAM,所述方法包括以下步骤:
[0007]接收用户进程发送的内存分配请求,对所述用户进程进行判断;
[0008]如果所述用户进程为系统级进程,则将所述DRAM中的内存空间分配给所述用户进程;
[0009]如果所述用户进程为批量处理进程,则将所述NVM中的内存空间分配给所述用户进程。
[0010]可选地,所述的方法,还包括:
[0011]对用户进程释放的内存空间进行判断;
[0012]如果是所述DRAM中的内存空间,则通过伙伴系统对所述用户进程释放的内存空间进行回收;
[0013]如果是所述NVM中的内存空间,则将所述用户进程释放的内存空间标记为可回收内存,更新所述可回收内存的时间戳,并在所述可回收内存的时间戳到期后,通过所述伙伴系统对所述可回收内存进行回收。
[0014]可选地,所述的方法,还包括:
[0015]将所述异构混合内存中的数据分为热数据、候选热数据和冷数据,将所述热数据和所述候选热数据存放到所述DRAM中,将所述冷数据存放到NVM中,并生成热数据队列和候选热数据队列;
[0016]其中,所述热数据为所述异构混合内存中访问频率大于或等于预定的第一阈值的数据,所述候选热数据为所述异构混合内存中访问频率小于所述第一阈值且大于预定的第二阈值的数据,所述冷数据为异构混合内存中访问频率小于或等于所述第二阈值的数据,所述热数据队列用于存放所述热数据的逻辑区块地址LBA,所述候选热数据队列用于存放所述候选热数据的LBA。
[0017]可选地,所述的方法,还包括:
[0018]将所述热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从热数据队列中删除并添加到所述候选热数据队列,将所述最少使用的LBA对应的数据标记为候选热数据。
[0019]可选地,所述的方法,还包括:
[0020]将所述候选热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从所述候选热数据队列中删除,将所述最少使用的LBA对应的数据标记为冷数据,并将所述最少使用的LBA对应的数据存放到所述NVM中。
[0021]可选地,所述的方法,还包括:
[0022]在系统内核层构建内存镜像,在系统运行时,将所述内存镜像写入所述NVM;
[0023]在系统关机或休眠后检测到用户的触发,则将所述NVM中的内存镜像写回至所述DRAM。
[0024]本发明还提供了一种管理异构混合内存的装置,所述异构混合内存包括非易失性存储器NVM和动态随机存取存储器DRAM,所述装置包括:
[0025]接收模块,用于接收用户进程发送的内存分配请求;
[0026]第一判断模块,用于对所述用户进程进行判断;
[0027]分配模块,用于在所述第一判断模块判断出所述用户进程为系统级进程时,将所述DRAM中的内存空间分配给所述用户进程;在所述第一判断模块判断出所述用户进程为批量处理进程时,将所述NVM中的内存空间分配给所述用户进程。
[0028]可选地,所述的装置,还包括:
[0029]第二判断模块,用于对用户进程释放的内存空间进行判断;
[0030]回收模块,用于在所述第二判断模块判断出所述用户进程释放的内存空间是所述DRAM中的内存空间时,通过伙伴系统对所述用户进程释放的内存空间进行回收;在所述第二判断模块判断出所述用户进程释放的内存空间是所述NVM中的内存空间时,将所述用户进程释放的内存空间标记为可回收内存,更新所述可回收内存的时间戳,并在所述可回收内存的时间戳到期后,通过所述伙伴系统对所述可回收内存进行回收。
[0031]可选地,所述的装置,还包括:
[0032]分类模块,用于将所述异构混合内存中的数据分为热数据、候选热数据和冷数据,将所述热数据和所述候选热数据存放到所述DRAM中,将所述冷数据存放到NVM中,并生成热数据队列和候选热数据队列;
[0033]其中,所述热数据为所述异构混合内存中访问频率大于或等于预定的第一阈值的数据,所述候选热数据为所述异构混合内存中访问频率小于所述第一阈值且大于预定的第二阈值的数据,所述冷数据为异构混合内存中访问频率小于或等于所述第二阈值的数据,所述热数据队列用于存放所述热数据的逻辑区块地址LBA,所述候选热数据队列用于存放所述候选热数据的LBA。
[0034]可选地,所述的装置,还包括:
[0035]第一管理模块,用于将所述热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从热数据队列中删除并添加到所述候选热数据队列,将所述最少使用的LBA对应的数据标记为候选热数据。
[0036]可选地,所述的装置,还包括:
[0037]第二管理模块,用于将所述候选热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从所述候选热数据队列中删除,将所述最少使用的LBA对应的数据标记为冷数据,并将所述最少使用的LBA对应的数据存放到所述NVM中。
[0038]可选地,所述的装置,还包括:
[0039]构建模块,用于在系统内核层构建内存镜像;
[0040]写入模块,用于在系统运行时,将所述内存镜像写入所述NVM ;在系统关机或休眠后检测到用户的触发时,将所述NVM中的内存镜像写回至所述DRAM。
[0041]本发明通过上述内存管理机制,能够保证系统级进程在访存速度较快的DRAM中进行数据处理,并使得批量处理进程在NVM中进行数据处理,降低了由于DRAM和NVM之间的访存速度差异而对数据处理速度带来的影响,提升了用户进程的数据处理速度和系统整体的处理性能。

【专利附图】

【附图说明】
[0042]图1为本发明实施例中的一种基于异构混合内存的系统硬件架构图;
[0043]图2为本发明实施例中的一种分配异构混合内存的方法流程图;
[0044]图3为本发明实施例中的一种回收异构混合内存的方法流程图;
[0045]图4为本发明实施例中的一种管理异构混合内存的装置结构图。

【具体实施方式】
[0046]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047]需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0048]本发明实施例中的异构混合内存包括NVM和DRAM,NVM可以是Flash存储器,也可以是PCM (Phase-Change Memory,相变化内存),还可以是Flash存储器和PCM的组合,如图1所示。
[0049]其中,CPU通过 DDR SDRAM (Double Data Rate Synchronous Dynamic RandomAccess Memory,双倍数据率同步动态随机存取存储器)控制器访问DRAM,并通过CCB (CPUCoherence Bus, CPU 一致性总线)与NVM内存管理芯片连接;NVM内存管理芯片支持多种标准接口,通过NVMe (Non-Volatile Memory Express,非易失性存储器快速)接口与Flash存储器连接,通过LPDDR2 (Low Power Double Data Rate SDRAM,低功耗双倍数据率同步动态随机存取存储器)控制器连接PCM,并通过DDR SDRAM控制器连接DRAM缓存。
[0050]本发明实施例通过统一编址的方式对异构混合内存进行统一管理,异构混合内存由多个固定长度的页框组成,每个页框包含一个页,每个页是由一系列连续的线性地址组成的。本发明实施例通过页表对异构混合内存中的页进行管理,并将NVM中的页框标记为LARGEMEM_FLAG。其中,页表是内存块的目录文件,用于实现从页号到物理块号的地址映射。
[0051]进一步地,本发明实施例中的页框的大小比系统中默认的页框的大小扩大2-3倍,能够显著地减少内存中页框的数量,将TLB (Translat1n Lookaside Buffer,翻译后备缓冲器)缺失的开销降低到2%以内,降低对查询效率的影响。
[0052]基于上述异构混合内存,本发明实施例提供了一种管理异构混合内存的方法,包括对异构混合内存的分配和回收,其中,分配异构混合内存的方法流程,如图2所示,包括以下步骤:
[0053]步骤201,接收用户进程发送的内存分配请求。
[0054]步骤202,对用户进程进行判断,如果用户进程为系统级进程,则执行步骤203 ;如果用户进程为批量处理进程,则执行步骤204。
[0055]步骤203,将DRAM中的内存空间分配给用户进程。
[0056]具体地,当判断出用户进程为系统级进程后,可以判断用户进程申请分配的内存是否为小块内存,如果不是小块内存,则通过伙伴系统将DRAM中的内存空间分配给该用户进程,并将分配的内存空间的首地址返回给该用户进程;如果是小块内存,则通过slab分配器将slab列表中的内存空间分配给用户进程,并将分配的内存空间的首地址返回给该用户进程。其中,小块内存是指系统级进程运行时申请的内存块,小块内存的大小不会超过整个DRAM的大小。
[0057]步骤204,将NVM中的内存空间分配给用户进程。
[0058]具体地,当判断出用户进程为批量处理进程后,可以通过bam分配器将NVM中的内存空间分配给该用户进程,并将分配的内存空间的首地址返回给该用户进程。
[0059]其中,bam分配器是由用户自定义的分配器,其工作机制与slab分配器相似。bam分配器与slab分配器的区别在于,bam分配器将分配的内存地址指向NVM中的区域,将将NVM中的内存空间分配给用户进程。
[0060]通过上述内存分配流程,能够保证系统级进程在访存速度较快的DRAM中进行数据处理,并使得批量处理进程在NVM中进行数据处理,降低了由于DRAM和NVM之间的访存速度差异而对数据处理速度带来的影响,提升了用户进程的数据处理速度和系统整体的处理性能。
[0061]相应地,当用户进程运行结束后,回收异构混合内存的方法流程,如图3所示,包括以下步骤:
[0062]步骤301,对用户进程释放的内存空间进行判断,如果是DRAM中的内存空间,则执行步骤302 ;如果是NVM中的内存空间,则执行步骤303。
[0063]具体地,可以判断用户进程释放的内存空间是否被标记为LARGEMEM_FLAG,如果是,则确定用户进程释放的内存空间是NVM中的内存空间;否则,确定用户进程释放的内存空间是DRAM中的内存空间。
[0064]步骤302,通过伙伴系统对用户进程释放的内存空间进行回收。
[0065]步骤303,将用户进程释放的内存空间标记为可回收内存,并更新可回收内存的时间戳。
[0066]其中,时间戳是由系统内部设定的。
[0067]步骤304,当可回收内存的时间戳到期后,通过伙伴系统对可回收内存进行回收。
[0068]具体地,可通过内核级守护进程对可回收内存的时间戳进行定时轮询,判断可回收内存的时间戳是否到期,如果未到期,则继续通过内核级守护进行对可回收内存的时间戳进行定时轮询,如果到期,则通过伙伴系统对可回收内存进行回收。
[0069]上述内存回收流程中,通过对NVM中的内存空间采用延后回收机制,能够避免对内存空间频繁地回收和分配,提升了系统的处理性能。
[0070]由于异构混合内存中的不同数据的访问频率也各不相同,本发明实施例中基于多维关联规则的决策树模型,根据数据应用层面、数据读写特性、数据更新频率和数据实时性等因素,对异构混合内存中的数据进行多维度评价,根据评价结果将异构混合内存中的数据分为热数据、候选热数据和冷数据,将热数据和候选热数据存放到DRAM中,将冷数据存放到NVM中,并生成热数据队列和候选热数据队列。其中,热数据为异构混合内存中访问频率大于或等于预定的第一阈值的数据,候选热数据为异构混合内存中访问频率小于第一阈值且大于预定的第二阈值的数据,冷数据为异构混合内存中访问频率小于或等于第二阈值的数据,热数据队列用于存放热数据的LBA(Logical Block Address,逻辑区块地址),候选热数据队列用于存放候选热数据的LBA。其中,第一阈值可以大于第二阈值。
[0071]相应地,在系统运行过程中,还可以根据系统运行时的数据使用状况,采用LRU(Least Recently Used,近期最少使用)优化算法对热数据队列和候选热数据队列中的LBA进行维护。对于热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA,可以将该LBA从热数据队列中删除,并将该LBA添加到候选热数据队列,将该LBA对应的数据标记为候选热数据。对于候选热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA,可以将该LBA从候选热数据队列中删除,将该LBA对应的数据标记为冷数据,并将该LBA对应的数据存放到NVM中。
[0072]通过上述基于数据热度的分配管理机制,对异构混合内存中的数据进行分级管理,将不同热度的数据存放到内存中的不同区域,从加快了对内存数据的访问速度,提升了系统的处理性能。
[0073]基于上述异构混合内存,本发明实施例还在操作系统内核层面对文件系统、虚拟内存和系统快速启动进行优化,充分地利用NVM的非易失性特性,以提高系统性能。
[0074]具体地,可以将文件系统中的文件索引、操作日志和文件系统缓冲区设置在NVM中进行管理,并对虚拟内存进行优化,用NVM中的交换分区替代磁盘交换分区,用来保存从DRAM中替换出来的内存页。
[0075]此外,还可以在系统内核层构建内存镜像,在系统运行时,将该内存镜像写入NVM。相应地,在系统关机或休眠后检测到用户的触发,则将NVM中的内存镜像写回至DRAM,从而在几乎不影响系统性能情况下,通过更细粒度的时间周期,精确地实现内存镜像的同步更新,实现系统的瞬时开机或者唤醒。
[0076]然而,NVM虽然具有非易失性,但也存在寿命上的限制。因此,针对NVM的寿命受到写操作和擦除操作的影响的特性,可以统计NVM在抽样时段内的写操作次数和擦除操作次数,根据统计结果预测NVM的最大写操作操作次数和最大擦除操作次数。相应地,在系统运行过程中,可以对NVM的写操作次数和擦除操作次数进行监控,当NVM的写操作次数达到NVM的最大写操作次数与第一预设百分比的乘积,或者,NVM的擦除操作次数达到NVM的最大擦除操作次数与第二预设百分比的乘积时,可以屏蔽对上述NVM的寻址操作和管理操作,并进行系统报警。优选地,第一预设百分比和第二预设百分比可以均为90%。通过上述NVM寿命的管理机制,能够防止因NVM寿命终结而造成的数据块不可用的问题。
[0077]此外,本发明实施例还采用加密和校验机制,对于需要写入到NVM中的数据,可以通过加密模块对该数据进行加密,并将加密后的数据写入到NVM中,从而防止存储数据被窃取。对于需要从NVM写入到DRAM的数据,可以通过解密模块对该数据进行解密,并将解密后的数据写入到DRAM中,从而实现数据的完整可用。另外,本发明实施例对NVM中的系统关键数据使用校验机制,即,使用加解密技术对系统关键数据进行保护,防止恶意的入侵修改所引起的系统安全问题,保障异构混合内存体系结构下的系统及数据安全。
[0078]另外,本发明实施例还通过在内核层收集系统运行时信息来监控工作负载,并基于神经网络模型对系统能耗状态评估,当计算节点的负载低于特定阈值时,则将该计算节点设置为休眠状态,以减少系统能耗;当系统负载提高时,则对当前处于休眠状态的计算节点进行唤醒。与传统的节能方式相比,本发明实施例将休眠的粒度从器件级提升至节点级,能够更有效地进行能耗控制。
[0079]基于上述异构混合内存,本发明实施例还提供了一种管理异构混合内存的装置,该异构混合内存包括NVM和DRAM,该装置的结构如图4所示,包括:
[0080]接收模块401,用于接收用户进程发送的内存分配请求;
[0081]第一判断模块402,用于对接收模块401接收到的用户进程进行判断;
[0082]分配模块403,用于在第一判断模块402判断出用户进程为系统级进程时,将DRAM中的内存空间分配给用户进程;在第一判断模块402判断出用户进程为批量处理进程时,将NVM中的内存空间分配给用户进程。
[0083]具体地,上述分配模块403,具体用于在第一判断模块402判断出用户进程为批量处理进程时,通过bam分配器将NVM中的内存空间分配给用户进程,并将分配的内存空间的首地址返回给用户进程;在第一判断模块402判断出用户进程为系统级进程时,判断用户进程申请分配的内存是否为小块内存,如果不是小块内存,则通过伙伴系统将DRAM中的内存空间分配给用户进程,并将分配的内存空间的首地址返回给用户进程;如果是小块内存,则通过slab分配器将slab列表中的内存空间分配给用户进程,并将分配的内存空间的首地址返回给用户进程。
[0084]进一步地,上述装置,还包括:
[0085]第二判断模块404,用于对用户进程释放的内存空间进行判断;
[0086]回收模块405,用于在第二判断模块404判断出用户进程释放的内存空间是DRAM中的内存空间时,通过伙伴系统对用户进程释放的内存空间进行回收;在第二判断模块404判断出用户进程释放的内存空间是NVM中的内存空间时,将用户进程释放的内存空间标记为可回收内存,更新可回收内存的时间戳,并在可回收内存的时间戳到期后,通过伙伴系统对可回收内存进行回收。
[0087]进一步地,上述装置,还包括:
[0088]第三判断模块406,用于通过内核级守护进程对可回收内存的时间戳进行定时轮询,判断可回收内存的时间戳是否到期;
[0089]相应地,上述回收模块405,具体用于在第二判断模块404判断出用户进程释放的内存空间是DRAM中的内存空间时,通过伙伴系统对用户进程释放的内存空间进行回收;在第二判断模块404判断出用户进程释放的内存空间是NVM中的内存空间时,将用户进程释放的内存空间标记为可回收内存,更新可回收内存的时间戳,并在第三判断模块406判断出可回收内存的时间戳到期后,通过伙伴系统对可回收内存进行回收。
[0090]进一步地,上述装置,还包括:
[0091]分类模块407,用于将异构混合内存中的数据分为热数据、候选热数据和冷数据,将热数据和候选热数据存放到DRAM中,将冷数据存放到NVM中,并生成热数据队列和候选热数据队列;
[0092]其中,热数据为异构混合内存中访问频率大于或等于预定的第一阈值的数据,候选热数据为异构混合内存中访问频率小于第一阈值且大于预定的第二阈值的数据,冷数据为异构混合内存中访问频率小于或等于第二阈值的数据,热数据队列用于存放热数据的LBA,候选热数据队列用于存放候选热数据的LBA。其中,第一阈值可以大于第二阈值。
[0093]第一管理模块408,用于将热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从热数据队列中删除并添加到候选热数据队列,并将上述最少使用的LBA对应的数据标记为候选热数据。
[0094]第二管理模块409,用于将候选热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从候选热数据队列中删除,将该最少使用的LBA对应的数据标记为冷数据,并将该最少使用的LBA对应的数据存放到NVM中。
[0095]设置模块410,用于将文件系统中的文件索引、操作日志和文件系统缓冲区设置在NVM中进行管理。
[0096]优化模块411,用于对虚拟内存进行优化,用NVM中的交换分区替代磁盘交换分区,用来保存从DRAM中替换出来的内存页。
[0097]构建模块412,用于在系统内核层构建内存镜像;
[0098]写入模块413,用于在系统运行时,将构建模块412构建的内存镜像写入NVM ;在系统关机或休眠后检测到用户的触发时,将NVM中的内存镜像写回至DRAM。
[0099]监控模块414,用于对NVM的写操作次数和擦除操作次数进行监控;
[0100]屏蔽模块415,用于在监控模块414监控到NVM的写操作次数达到NVM的最大写操作次数与第一预设百分比的乘积,或者,NVM的擦除操作次数达到NVM的最大擦除操作次数与第二预设百分比的乘积时,屏蔽对NVM的寻址操作和管理操作,并进行系统报警。
[0101]评估模块416,用于通过在内核层收集系统运行时信息来监控工作负载,并基于神经网络模型对系统能耗状态评估,当计算节点的负载低于特定阈值时,将计算节点设置为休眠状态;当系统负载提高时,对当前处于休眠状态的计算节点进行唤醒。
[0102]本发明实施例针对不同类型内存的速度差异性,使用不同的分配机制和回收机制,通过数据热度管理和异构混合内存分配机制缓冲对内存分配进行优化,使得数据能够根据计算需求合理地分配于异构混合内存体系中,提升了系统整体的处理性能。此外,通过介质可靠容错机制、系统容错机制和用户数据保密机制,能够确保数据安全,保证内存操作的可靠性。
[0103]结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0104]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种管理异构混合内存的方法,其特征在于,所述异构混合内存包括非易失性存储器NVM和动态随机存取存储器DRAM,所述方法包括以下步骤: 接收用户进程发送的内存分配请求,对所述用户进程进行判断; 如果所述用户进程为系统级进程,则将所述DRAM中的内存空间分配给所述用户进程; 如果所述用户进程为批量处理进程,则将所述NVM中的内存空间分配给所述用户进程。
2.如权利要求1所述的方法,其特征在于,还包括: 对用户进程释放的内存空间进行判断; 如果是所述DRAM中的内存空间,则通过伙伴系统对所述用户进程释放的内存空间进行回收; 如果是所述NVM中的内存空间,则将所述用户进程释放的内存空间标记为可回收内存,更新所述可回收内存的时间戳,并在所述可回收内存的时间戳到期后,通过所述伙伴系统对所述可回收内存进行回收。
3.如权利要求1所述的方法,其特征在于,还包括: 将所述异构混合内存中的数据分为热数据、候选热数据和冷数据,将所述热数据和所述候选热数据存放到所述DRAM中,将所述冷数据存放到NVM中,并生成热数据队列和候选热数据队列; 其中,所述热数据为所述异构混合内存中访问频率大于或等于预定的第一阈值的数据,所述候选热数据为所述异构混合内存中访问频率小于所述第一阈值且大于预定的第二阈值的数据,所述冷数据为异构混合内存中访问频率小于或等于所述第二阈值的数据,所述热数据队列用于存放所述热数据的逻辑区块地址LBA,所述候选热数据队列用于存放所述候选热数据的LBA。
4.如权利要求3所述的方法,其特征在于,还包括: 将所述热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从热数据队列中删除并添加到所述候选热数据队列,将所述最少使用的LBA对应的数据标记为候选热数据。
5.如权利要求3所述的方法,其特征在于,还包括: 将所述候选热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从所述候选热数据队列中删除,将所述最少使用的LBA对应的数据标记为冷数据,并将所述最少使用的LBA对应的数据存放到所述NVM中。
6.如权利要求1所述的方法,其特征在于,还包括: 在系统内核层构建内存镜像,在系统运行时,将所述内存镜像写入所述NVM; 在系统关机或休眠后检测到用户的触发,则将所述NVM中的内存镜像写回至所述DRAM。
7.—种管理异构混合内存的装置,其特征在于,所述异构混合内存包括非易失性存储器NVM和动态随机存取存储器DRAM,所述装置包括: 接收模块,用于接收用户进程发送的内存分配请求; 第一判断模块,用于对所述用户进程进行判断; 分配模块,用于在所述第一判断模块判断出所述用户进程为系统级进程时,将所述DRAM中的内存空间分配给所述用户进程;在所述第一判断模块判断出所述用户进程为批量处理进程时,将所述NVM中的内存空间分配给所述用户进程。
8.如权利要求7所述的装置,其特征在于,还包括: 第二判断模块,用于对用户进程释放的内存空间进行判断; 回收模块,用于在所述第二判断模块判断出所述用户进程释放的内存空间是所述DRAM中的内存空间时,通过伙伴系统对所述用户进程释放的内存空间进行回收;在所述第二判断模块判断出所述用户进程释放的内存空间是所述NVM中的内存空间时,将所述用户进程释放的内存空间标记为可回收内存,更新所述可回收内存的时间戳,并在所述可回收内存的时间戳到期后,通过所述伙伴系统对所述可回收内存进行回收。
9.如权利要求7所述的装置,其特征在于,还包括: 分类模块,用于将所述异构混合内存中的数据分为热数据、候选热数据和冷数据,将所述热数据和所述候选热数据存放到所述DRAM中,将所述冷数据存放到NVM中,并生成热数据队列和候选热数据队列; 其中,所述热数据为所述异构混合内存中访问频率大于或等于预定的第一阈值的数据,所述候选热数据为所述异构混合内存中访问频率小于所述第一阈值且大于预定的第二阈值的数据,所述冷数据为异构混合内存中访问频率小于或等于所述第二阈值的数据,所述热数据队列用于存放所述热数据的逻辑区块地址LBA,所述候选热数据队列用于存放所述候选热数据的LBA。
10.如权利要求9所述的装置,其特征在于,还包括: 第一管理模块,用于将所述热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从热数据队列中删除并添加到所述候选热数据队列,将所述最少使用的LBA对应的数据标记为候选热数据。
11.如权利要求9所述的装置,其特征在于,还包括: 第二管理模块,用于将所述候选热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从所述候选热数据队列中删除,将所述最少使用的LBA对应的数据标记为冷数据,并将所述最少使用的LBA对应的数据存放到所述NVM中。
12.如权利要求7所述的装置,其特征在于,还包括: 构建模块,用于在系统内核层构建内存镜像; 写入模块,用于在系统运行时,将所述内存镜像写入所述NVM ;在系统关机或休眠后检测到用户的触发时,将所述NVM中的内存镜像写回至所述DRAM。
【文档编号】G06F12/02GK104239225SQ201410450192
【公开日】2014年12月24日 申请日期:2014年9月4日 优先权日:2014年9月4日
【发明者】郭美思, 吴楠 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1