CN104239225B - 一种管理异构混合内存的方法及装置 - Google Patents
一种管理异构混合内存的方法及装置 Download PDFInfo
- Publication number
- CN104239225B CN104239225B CN201410450192.6A CN201410450192A CN104239225B CN 104239225 B CN104239225 B CN 104239225B CN 201410450192 A CN201410450192 A CN 201410450192A CN 104239225 B CN104239225 B CN 104239225B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- dsc data
- nvm
- consumer process
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 247
- 238000000034 method Methods 0.000 title claims abstract description 145
- 230000008569 process Effects 0.000 claims abstract description 119
- 238000012545 processing Methods 0.000 claims abstract description 21
- 230000005059 dormancy Effects 0.000 claims description 7
- 238000004064 recycling Methods 0.000 claims description 5
- 238000011084 recovery Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 11
- 238000009826 distribution Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 11
- 238000000151 deposition Methods 0.000 description 5
- 238000005265 energy consumption Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 230000000284 resting effect Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Landscapes
- Dram (AREA)
Abstract
本发明公开了一种管理异构混合内存的方法及装置,所述异构混合内存包括NVM和DRAM,所述方法包括以下步骤:接收用户进程发送的内存分配请求,对所述用户进程进行判断;如果所述用户进程为系统级进程,则将所述DRAM中的内存空间分配给所述用户进程;如果所述用户进程为批量处理进程,则将所述NVM中的内存空间分配给所述用户进程。本发明通过上述内存管理机制,能够保证系统级进程在访存速度较快的DRAM中进行数据处理,并使得批量处理进程在NVM中进行数据处理,降低了由于DRAM和NVM之间的访存速度差异而对数据处理速度带来的影响,提升了用户进程的数据处理速度和系统整体的处理性能。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种管理异构混合内存的方法及装置。
背景技术
随着云时代的来临,大数据(Big data)也吸引了越来越多的关注,大数据所催生的内存计算对计算机内存的速度、容量、能耗和可靠性提出了极高的需求。而传统的计算机内存由DRAM(Dynamic Random Access Memory,动态随机存取存储器)构成,由于DRAM的介质尺寸已到达CMOS(Complementary Metal-Oxide-Semiconductor,互补式金属氧化物半导体)工艺的极限,因此,DRAM在系统稳定性、数据可靠性和寿命等问题上面临极大挑战。
NVM(Non-Volatile Memory,非易失性存储器)的出现,为扩展计算机内存提供了新的途径,同时促进了计算机在系统结构上从机械硬盘的传统架构到新型NVM的内存架构的演变。
目前,业界中通过I/O通道构建由DRAM和NVM组成的混合内存,通过I/O通道将数据迁移到内存中,数据访问延迟较大,无法达到内存计算的ns(纳秒)级别的性能需求。
发明内容
本发明提供了一种管理异构混合内存的方法及装置,以解决现有技术中数据访问延迟较大的缺陷。
本发明提供了一种管理异构混合内存的方法,所述异构混合内存包括非易失性存储器NVM和动态随机存取存储器DRAM,所述方法包括以下步骤:
接收用户进程发送的内存分配请求,对所述用户进程进行判断;
如果所述用户进程为系统级进程,则将所述DRAM中的内存空间分配给所述用户进程;
如果所述用户进程为批量处理进程,则将所述NVM中的内存空间分配给所述用户进程。
可选地,所述的方法,还包括:
对用户进程释放的内存空间进行判断;
如果是所述DRAM中的内存空间,则通过伙伴系统对所述用户进程释放的内存空间进行回收;
如果是所述NVM中的内存空间,则将所述用户进程释放的内存空间标记为可回收内存,更新所述可回收内存的时间戳,并在所述可回收内存的时间戳到期后,通过所述伙伴系统对所述可回收内存进行回收。
可选地,所述的方法,还包括:
将所述异构混合内存中的数据分为热数据、候选热数据和冷数据,将所述热数据和所述候选热数据存放到所述DRAM中,将所述冷数据存放到NVM中,并生成热数据队列和候选热数据队列;
其中,所述热数据为所述异构混合内存中访问频率大于或等于预定的第一阈值的数据,所述候选热数据为所述异构混合内存中访问频率小于所述第一阈值且大于预定的第二阈值的数据,所述冷数据为异构混合内存中访问频率小于或等于所述第二阈值的数据,所述热数据队列用于存放所述热数据的逻辑区块地址LBA,所述候选热数据队列用于存放所述候选热数据的LBA。
可选地,所述的方法,还包括:
将所述热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从热数据队列中删除并添加到所述候选热数据队列,将所述最少使用的LBA对应的数据标记为候选热数据。
可选地,所述的方法,还包括:
将所述候选热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从所述候选热数据队列中删除,将所述最少使用的LBA对应的数据标记为冷数据,并将所述最少使用的LBA对应的数据存放到所述NVM中。
可选地,所述的方法,还包括:
在系统内核层构建内存镜像,在系统运行时,将所述内存镜像写入所述NVM;
在系统关机或休眠后检测到用户的触发,则将所述NVM中的内存镜像写回至所述DRAM。
本发明还提供了一种管理异构混合内存的装置,所述异构混合内存包括非易失性存储器NVM和动态随机存取存储器DRAM,所述装置包括:
接收模块,用于接收用户进程发送的内存分配请求;
第一判断模块,用于对所述用户进程进行判断;
分配模块,用于在所述第一判断模块判断出所述用户进程为系统级进程时,将所述DRAM中的内存空间分配给所述用户进程;在所述第一判断模块判断出所述用户进程为批量处理进程时,将所述NVM中的内存空间分配给所述用户进程。
可选地,所述的装置,还包括:
第二判断模块,用于对用户进程释放的内存空间进行判断;
回收模块,用于在所述第二判断模块判断出所述用户进程释放的内存空间是所述DRAM中的内存空间时,通过伙伴系统对所述用户进程释放的内存空间进行回收;在所述第二判断模块判断出所述用户进程释放的内存空间是所述NVM中的内存空间时,将所述用户进程释放的内存空间标记为可回收内存,更新所述可回收内存的时间戳,并在所述可回收内存的时间戳到期后,通过所述伙伴系统对所述可回收内存进行回收。
可选地,所述的装置,还包括:
分类模块,用于将所述异构混合内存中的数据分为热数据、候选热数据和冷数据,将所述热数据和所述候选热数据存放到所述DRAM中,将所述冷数据存放到NVM中,并生成热数据队列和候选热数据队列;
其中,所述热数据为所述异构混合内存中访问频率大于或等于预定的第一阈值的数据,所述候选热数据为所述异构混合内存中访问频率小于所述第一阈值且大于预定的第二阈值的数据,所述冷数据为异构混合内存中访问频率小于或等于所述第二阈值的数据,所述热数据队列用于存放所述热数据的逻辑区块地址LBA,所述候选热数据队列用于存放所述候选热数据的LBA。
可选地,所述的装置,还包括:
第一管理模块,用于将所述热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从热数据队列中删除并添加到所述候选热数据队列,将所述最少使用的LBA对应的数据标记为候选热数据。
可选地,所述的装置,还包括:
第二管理模块,用于将所述候选热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从所述候选热数据队列中删除,将所述最少使用的LBA对应的数据标记为冷数据,并将所述最少使用的LBA对应的数据存放到所述NVM中。
可选地,所述的装置,还包括:
构建模块,用于在系统内核层构建内存镜像;
写入模块,用于在系统运行时,将所述内存镜像写入所述NVM;在系统关机或休眠后检测到用户的触发时,将所述NVM中的内存镜像写回至所述DRAM。
本发明通过上述内存管理机制,能够保证系统级进程在访存速度较快的DRAM中进行数据处理,并使得批量处理进程在NVM中进行数据处理,降低了由于DRAM和NVM之间的访存速度差异而对数据处理速度带来的影响,提升了用户进程的数据处理速度和系统整体的处理性能。
附图说明
图1为本发明实施例中的一种基于异构混合内存的系统硬件架构图;
图2为本发明实施例中的一种分配异构混合内存的方法流程图;
图3为本发明实施例中的一种回收异构混合内存的方法流程图;
图4为本发明实施例中的一种管理异构混合内存的装置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例中的异构混合内存包括NVM和DRAM,NVM可以是Flash存储器,也可以是PCM(Phase-Change Memory,相变化内存),还可以是Flash存储器和PCM的组合,如图1所示。
其中,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缓存。
本发明实施例通过统一编址的方式对异构混合内存进行统一管理,异构混合内存由多个固定长度的页框组成,每个页框包含一个页,每个页是由一系列连续的线性地址组成的。本发明实施例通过页表对异构混合内存中的页进行管理,并将NVM中的页框标记为LARGEMEM_FLAG。其中,页表是内存块的目录文件,用于实现从页号到物理块号的地址映射。
进一步地,本发明实施例中的页框的大小比系统中默认的页框的大小扩大2-3倍,能够显著地减少内存中页框的数量,将TLB(Translation Lookaside Buffer,翻译后备缓冲器)缺失的开销降低到2%以内,降低对查询效率的影响。
基于上述异构混合内存,本发明实施例提供了一种管理异构混合内存的方法,包括对异构混合内存的分配和回收,其中,分配异构混合内存的方法流程,如图2所示,包括以下步骤:
步骤201,接收用户进程发送的内存分配请求。
步骤202,对用户进程进行判断,如果用户进程为系统级进程,则执行步骤203;如果用户进程为批量处理进程,则执行步骤204。
步骤203,将DRAM中的内存空间分配给用户进程。
具体地,当判断出用户进程为系统级进程后,可以判断用户进程申请分配的内存是否为小块内存,如果不是小块内存,则通过伙伴系统将DRAM中的内存空间分配给该用户进程,并将分配的内存空间的首地址返回给该用户进程;如果是小块内存,则通过slab分配器将slab列表中的内存空间分配给用户进程,并将分配的内存空间的首地址返回给该用户进程。其中,小块内存是指系统级进程运行时申请的内存块,小块内存的大小不会超过整个DRAM的大小。
步骤204,将NVM中的内存空间分配给用户进程。
具体地,当判断出用户进程为批量处理进程后,可以通过bam分配器将NVM中的内存空间分配给该用户进程,并将分配的内存空间的首地址返回给该用户进程。
其中,bam分配器是由用户自定义的分配器,其工作机制与slab分配器相似。bam分配器与slab分配器的区别在于,bam分配器将分配的内存地址指向NVM中的区域,将将NVM中的内存空间分配给用户进程。
通过上述内存分配流程,能够保证系统级进程在访存速度较快的DRAM中进行数据处理,并使得批量处理进程在NVM中进行数据处理,降低了由于DRAM和NVM之间的访存速度差异而对数据处理速度带来的影响,提升了用户进程的数据处理速度和系统整体的处理性能。
相应地,当用户进程运行结束后,回收异构混合内存的方法流程,如图3所示,包括以下步骤:
步骤301,对用户进程释放的内存空间进行判断,如果是DRAM中的内存空间,则执行步骤302;如果是NVM中的内存空间,则执行步骤303。
具体地,可以判断用户进程释放的内存空间是否被标记为LARGEMEM_FLAG,如果是,则确定用户进程释放的内存空间是NVM中的内存空间;否则,确定用户进程释放的内存空间是DRAM中的内存空间。
步骤302,通过伙伴系统对用户进程释放的内存空间进行回收。
步骤303,将用户进程释放的内存空间标记为可回收内存,并更新可回收内存的时间戳。
其中,时间戳是由系统内部设定的。
步骤304,当可回收内存的时间戳到期后,通过伙伴系统对可回收内存进行回收。
具体地,可通过内核级守护进程对可回收内存的时间戳进行定时轮询,判断可回收内存的时间戳是否到期,如果未到期,则继续通过内核级守护进行对可回收内存的时间戳进行定时轮询,如果到期,则通过伙伴系统对可回收内存进行回收。
上述内存回收流程中,通过对NVM中的内存空间采用延后回收机制,能够避免对内存空间频繁地回收和分配,提升了系统的处理性能。
由于异构混合内存中的不同数据的访问频率也各不相同,本发明实施例中基于多维关联规则的决策树模型,根据数据应用层面、数据读写特性、数据更新频率和数据实时性等因素,对异构混合内存中的数据进行多维度评价,根据评价结果将异构混合内存中的数据分为热数据、候选热数据和冷数据,将热数据和候选热数据存放到DRAM中,将冷数据存放到NVM中,并生成热数据队列和候选热数据队列。其中,热数据为异构混合内存中访问频率大于或等于预定的第一阈值的数据,候选热数据为异构混合内存中访问频率小于第一阈值且大于预定的第二阈值的数据,冷数据为异构混合内存中访问频率小于或等于第二阈值的数据,热数据队列用于存放热数据的LBA(Logical Block Address,逻辑区块地址),候选热数据队列用于存放候选热数据的LBA。其中,第一阈值可以大于第二阈值。
相应地,在系统运行过程中,还可以根据系统运行时的数据使用状况,采用LRU(Least Recently Used,近期最少使用)优化算法对热数据队列和候选热数据队列中的LBA进行维护。对于热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA,可以将该LBA从热数据队列中删除,并将该LBA添加到候选热数据队列,将该LBA对应的数据标记为候选热数据。对于候选热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA,可以将该LBA从候选热数据队列中删除,将该LBA对应的数据标记为冷数据,并将该LBA对应的数据存放到NVM中。
通过上述基于数据热度的分配管理机制,对异构混合内存中的数据进行分级管理,将不同热度的数据存放到内存中的不同区域,从加快了对内存数据的访问速度,提升了系统的处理性能。
基于上述异构混合内存,本发明实施例还在操作系统内核层面对文件系统、虚拟内存和系统快速启动进行优化,充分地利用NVM的非易失性特性,以提高系统性能。
具体地,可以将文件系统中的文件索引、操作日志和文件系统缓冲区设置在NVM中进行管理,并对虚拟内存进行优化,用NVM中的交换分区替代磁盘交换分区,用来保存从DRAM中替换出来的内存页。
此外,还可以在系统内核层构建内存镜像,在系统运行时,将该内存镜像写入NVM。相应地,在系统关机或休眠后检测到用户的触发,则将NVM中的内存镜像写回至DRAM,从而在几乎不影响系统性能情况下,通过更细粒度的时间周期,精确地实现内存镜像的同步更新,实现系统的瞬时开机或者唤醒。
然而,NVM虽然具有非易失性,但也存在寿命上的限制。因此,针对NVM的寿命受到写操作和擦除操作的影响的特性,可以统计NVM在抽样时段内的写操作次数和擦除操作次数,根据统计结果预测NVM的最大写操作操作次数和最大擦除操作次数。相应地,在系统运行过程中,可以对NVM的写操作次数和擦除操作次数进行监控,当NVM的写操作次数达到NVM的最大写操作次数与第一预设百分比的乘积,或者,NVM的擦除操作次数达到NVM的最大擦除操作次数与第二预设百分比的乘积时,可以屏蔽对上述NVM的寻址操作和管理操作,并进行系统报警。优选地,第一预设百分比和第二预设百分比可以均为90%。通过上述NVM寿命的管理机制,能够防止因NVM寿命终结而造成的数据块不可用的问题。
此外,本发明实施例还采用加密和校验机制,对于需要写入到NVM中的数据,可以通过加密模块对该数据进行加密,并将加密后的数据写入到NVM中,从而防止存储数据被窃取。对于需要从NVM写入到DRAM的数据,可以通过解密模块对该数据进行解密,并将解密后的数据写入到DRAM中,从而实现数据的完整可用。另外,本发明实施例对NVM中的系统关键数据使用校验机制,即,使用加解密技术对系统关键数据进行保护,防止恶意的入侵修改所引起的系统安全问题,保障异构混合内存体系结构下的系统及数据安全。
另外,本发明实施例还通过在内核层收集系统运行时信息来监控工作负载,并基于神经网络模型对系统能耗状态评估,当计算节点的负载低于特定阈值时,则将该计算节点设置为休眠状态,以减少系统能耗;当系统负载提高时,则对当前处于休眠状态的计算节点进行唤醒。与传统的节能方式相比,本发明实施例将休眠的粒度从器件级提升至节点级,能够更有效地进行能耗控制。
基于上述异构混合内存,本发明实施例还提供了一种管理异构混合内存的装置,该异构混合内存包括NVM和DRAM,该装置的结构如图4所示,包括:
接收模块401,用于接收用户进程发送的内存分配请求;
第一判断模块402,用于对接收模块401接收到的用户进程进行判断;
分配模块403,用于在第一判断模块402判断出用户进程为系统级进程时,将DRAM中的内存空间分配给用户进程;在第一判断模块402判断出用户进程为批量处理进程时,将NVM中的内存空间分配给用户进程。
具体地,上述分配模块403,具体用于在第一判断模块402判断出用户进程为批量处理进程时,通过bam分配器将NVM中的内存空间分配给用户进程,并将分配的内存空间的首地址返回给用户进程;在第一判断模块402判断出用户进程为系统级进程时,判断用户进程申请分配的内存是否为小块内存,如果不是小块内存,则通过伙伴系统将DRAM中的内存空间分配给用户进程,并将分配的内存空间的首地址返回给用户进程;如果是小块内存,则通过slab分配器将slab列表中的内存空间分配给用户进程,并将分配的内存空间的首地址返回给用户进程。
进一步地,上述装置,还包括:
第二判断模块404,用于对用户进程释放的内存空间进行判断;
回收模块405,用于在第二判断模块404判断出用户进程释放的内存空间是DRAM中的内存空间时,通过伙伴系统对用户进程释放的内存空间进行回收;在第二判断模块404判断出用户进程释放的内存空间是NVM中的内存空间时,将用户进程释放的内存空间标记为可回收内存,更新可回收内存的时间戳,并在可回收内存的时间戳到期后,通过伙伴系统对可回收内存进行回收。
进一步地,上述装置,还包括:
第三判断模块406,用于通过内核级守护进程对可回收内存的时间戳进行定时轮询,判断可回收内存的时间戳是否到期;
相应地,上述回收模块405,具体用于在第二判断模块404判断出用户进程释放的内存空间是DRAM中的内存空间时,通过伙伴系统对用户进程释放的内存空间进行回收;在第二判断模块404判断出用户进程释放的内存空间是NVM中的内存空间时,将用户进程释放的内存空间标记为可回收内存,更新可回收内存的时间戳,并在第三判断模块406判断出可回收内存的时间戳到期后,通过伙伴系统对可回收内存进行回收。
进一步地,上述装置,还包括:
分类模块407,用于将异构混合内存中的数据分为热数据、候选热数据和冷数据,将热数据和候选热数据存放到DRAM中,将冷数据存放到NVM中,并生成热数据队列和候选热数据队列;
其中,热数据为异构混合内存中访问频率大于或等于预定的第一阈值的数据,候选热数据为异构混合内存中访问频率小于第一阈值且大于预定的第二阈值的数据,冷数据为异构混合内存中访问频率小于或等于第二阈值的数据,热数据队列用于存放热数据的LBA,候选热数据队列用于存放候选热数据的LBA。其中,第一阈值可以大于第二阈值。
第一管理模块408,用于将热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从热数据队列中删除并添加到候选热数据队列,并将上述最少使用的LBA对应的数据标记为候选热数据。
第二管理模块409,用于将候选热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从候选热数据队列中删除,将该最少使用的LBA对应的数据标记为冷数据,并将该最少使用的LBA对应的数据存放到NVM中。
设置模块410,用于将文件系统中的文件索引、操作日志和文件系统缓冲区设置在NVM中进行管理。
优化模块411,用于对虚拟内存进行优化,用NVM中的交换分区替代磁盘交换分区,用来保存从DRAM中替换出来的内存页。
构建模块412,用于在系统内核层构建内存镜像;
写入模块413,用于在系统运行时,将构建模块412构建的内存镜像写入NVM;在系统关机或休眠后检测到用户的触发时,将NVM中的内存镜像写回至DRAM。
监控模块414,用于对NVM的写操作次数和擦除操作次数进行监控;
屏蔽模块415,用于在监控模块414监控到NVM的写操作次数达到NVM的最大写操作次数与第一预设百分比的乘积,或者,NVM的擦除操作次数达到NVM的最大擦除操作次数与第二预设百分比的乘积时,屏蔽对NVM的寻址操作和管理操作,并进行系统报警。
评估模块416,用于通过在内核层收集系统运行时信息来监控工作负载,并基于神经网络模型对系统能耗状态评估,当计算节点的负载低于特定阈值时,将计算节点设置为休眠状态;当系统负载提高时,对当前处于休眠状态的计算节点进行唤醒。
本发明实施例针对不同类型内存的速度差异性,使用不同的分配机制和回收机制,通过数据热度管理和异构混合内存分配机制缓冲对内存分配进行优化,使得数据能够根据计算需求合理地分配于异构混合内存体系中,提升了系统整体的处理性能。此外,通过介质可靠容错机制、系统容错机制和用户数据保密机制,能够确保数据安全,保证内存操作的可靠性。
结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种管理异构混合内存的方法,其特征在于,所述异构混合内存包括非易失性存储器NVM和动态随机存取存储器DRAM,所述方法包括以下步骤:
接收用户进程发送的内存分配请求,对所述用户进程进行判断;
如果所述用户进程为系统级进程,则将所述DRAM中的内存空间分配给所述用户进程;
如果所述用户进程为批量处理进程,则将所述NVM中的内存空间分配给所述用户进程;
其中,还包括:
对用户进程释放的内存空间进行判断;
如果是所述DRAM中的内存空间,则通过伙伴系统对所述用户进程释放的内存空间进行回收;
如果是所述NVM中的内存空间,则将所述用户进程释放的内存空间标记为可回收内存,更新所述可回收内存的时间戳,并在所述可回收内存的时间戳到期后,通过所述伙伴系统对所述可回收内存进行回收。
2.如权利要求1所述的方法,其特征在于,还包括:
将所述异构混合内存中的数据分为热数据、候选热数据和冷数据,将所述热数据和所述候选热数据存放到所述DRAM中,将所述冷数据存放到NVM中,并生成热数据队列和候选热数据队列;
其中,所述热数据为所述异构混合内存中访问频率大于或等于预定的第一阈值的数据,所述候选热数据为所述异构混合内存中访问频率小于所述第一阈值且大于预定的第二阈值的数据,所述冷数据为异构混合内存中访问频率小于或等于所述第二阈值的数据,所述热数据队列用于存放所述热数据的逻辑区块地址LBA,所述候选热数据队列用于存放所述候选热数据的LBA。
3.如权利要求2所述的方法,其特征在于,还包括:
将所述热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从热数据队列中删除并添加到所述候选热数据队列,将所述最少使用的LBA对应的数据标记为候选热数据。
4.如权利要求2所述的方法,其特征在于,还包括:
将所述候选热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从所述候选热数据队列中删除,将所述最少使用的LBA对应的数据标记为冷数据,并将所述最少使用的LBA对应的数据存放到所述NVM中。
5.如权利要求1所述的方法,其特征在于,还包括:
在系统内核层构建内存镜像,在系统运行时,将所述内存镜像写入所述NVM;
在系统关机或休眠后检测到用户的触发,则将所述NVM中的内存镜像写回至所述DRAM。
6.一种管理异构混合内存的装置,其特征在于,所述异构混合内存包括非易失性存储器NVM和动态随机存取存储器DRAM,所述装置包括:
接收模块,用于接收用户进程发送的内存分配请求;
第一判断模块,用于对所述用户进程进行判断;
分配模块,用于在所述第一判断模块判断出所述用户进程为系统级进程时,将所述DRAM中的内存空间分配给所述用户进程;在所述第一判断模块判断出所述用户进程为批量处理进程时,将所述NVM中的内存空间分配给所述用户进程;
其中,还包括:
第二判断模块,用于对用户进程释放的内存空间进行判断;
回收模块,用于在所述第二判断模块判断出所述用户进程释放的内存空间是所述DRAM中的内存空间时,通过伙伴系统对所述用户进程释放的内存空间进行回收;在所述第二判断模块判断出所述用户进程释放的内存空间是所述NVM中的内存空间时,将所述用户进程释放的内存空间标记为可回收内存,更新所述可回收内存的时间戳,并在所述可回收内存的时间戳到期后,通过所述伙伴系统对所述可回收内存进行回收。
7.如权利要求6所述的装置,其特征在于,还包括:
分类模块,用于将所述异构混合内存中的数据分为热数据、候选热数据和冷数据,将所述热数据和所述候选热数据存放到所述DRAM中,将所述冷数据存放到NVM中,并生成热数据队列和候选热数据队列;
其中,所述热数据为所述异构混合内存中访问频率大于或等于预定的第一阈值的数据,所述候选热数据为所述异构混合内存中访问频率小于所述第一阈值且大于预定的第二阈值的数据,所述冷数据为异构混合内存中访问频率小于或等于所述第二阈值的数据,所述热数据队列用于存放所述热数据的逻辑区块地址LBA,所述候选热数据队列用于存放所述候选热数据的LBA。
8.如权利要求7所述的装置,其特征在于,还包括:
第一管理模块,用于将所述热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从热数据队列中删除并添加到所述候选热数据队列,将所述最少使用的LBA对应的数据标记为候选热数据。
9.如权利要求7所述的装置,其特征在于,还包括:
第二管理模块,用于将所述候选热数据队列中的、当前时间之前的预定长度的时间段内最少使用的LBA从所述候选热数据队列中删除,将所述最少使用的LBA对应的数据标记为冷数据,并将所述最少使用的LBA对应的数据存放到所述NVM中。
10.如权利要求6所述的装置,其特征在于,还包括:
构建模块,用于在系统内核层构建内存镜像;
写入模块,用于在系统运行时,将所述内存镜像写入所述NVM;在系统关机或休眠后检测到用户的触发时,将所述NVM中的内存镜像写回至所述DRAM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410450192.6A CN104239225B (zh) | 2014-09-04 | 2014-09-04 | 一种管理异构混合内存的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410450192.6A CN104239225B (zh) | 2014-09-04 | 2014-09-04 | 一种管理异构混合内存的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104239225A CN104239225A (zh) | 2014-12-24 |
CN104239225B true CN104239225B (zh) | 2018-02-06 |
Family
ID=52227340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410450192.6A Active CN104239225B (zh) | 2014-09-04 | 2014-09-04 | 一种管理异构混合内存的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104239225B (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786725B (zh) * | 2014-12-25 | 2020-10-27 | 研祥智能科技股份有限公司 | 基于异构混合内存的内存管理方法和系统 |
CN113806243A (zh) | 2015-03-11 | 2021-12-17 | 拉姆伯斯公司 | 高性能非易失性存储器模块 |
CN104778126B (zh) * | 2015-04-20 | 2017-10-24 | 清华大学 | 非易失性主存中事务数据存储优化方法及系统 |
US10185501B2 (en) * | 2015-09-25 | 2019-01-22 | Intel Corporation | Method and apparatus for pinning memory pages in a multi-level system memory |
WO2017107163A1 (zh) * | 2015-12-25 | 2017-06-29 | 研祥智能科技股份有限公司 | 基于异构混合内存的内存管理方法和系统 |
CN105786717B (zh) * | 2016-03-22 | 2018-11-16 | 华中科技大学 | 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统 |
CN107291549B (zh) | 2016-03-31 | 2020-11-24 | 阿里巴巴集团控股有限公司 | 一种管理应用程序的方法及装置 |
CN105938458B (zh) * | 2016-04-13 | 2019-02-22 | 上海交通大学 | 软件定义的异构混合内存管理方法 |
US10379745B2 (en) * | 2016-04-22 | 2019-08-13 | Samsung Electronics Co., Ltd. | Simultaneous kernel mode and user mode access to a device using the NVMe interface |
CN106528454B (zh) * | 2016-11-04 | 2019-03-29 | 中国人民解放军国防科学技术大学 | 一种基于闪存的内存系统缓存方法 |
CN106598483B (zh) * | 2016-11-10 | 2019-07-23 | 华中科技大学 | 一种面向异构内存的可重构内存管理系统 |
CN106843772A (zh) * | 2017-02-14 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种基于一致性总线扩展非易失内存的系统及方法 |
CN107422989B (zh) * | 2017-07-27 | 2020-04-07 | 深圳市云舒网络技术有限公司 | 一种Server SAN系统多副本读取方法及存储系统 |
CN107589969A (zh) * | 2017-09-06 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种基于NVDIMM的Linux操作系统休眠快速启动方法 |
CN109508301B (zh) * | 2017-09-14 | 2021-10-29 | 中国移动通信集团重庆有限公司 | 终端、应用数据的处理方法、数据处理设备及存储介质 |
CN108334422B (zh) * | 2018-01-30 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种控制异构混合内存系统冷重启的方法及bmc |
CN108763508B (zh) * | 2018-05-30 | 2019-07-30 | 中兴通讯股份有限公司 | 数据页访问方法、存储引擎以及计算机可读存储介质 |
CN109521949A (zh) * | 2018-08-30 | 2019-03-26 | 电子科技大学 | 一种基于混合便签式存储器的感知写频率数据分配方法 |
CN109189700A (zh) * | 2018-10-19 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种扩展内存装置、扩展内存系统、扩展内存的访存方法 |
CN109491837B (zh) * | 2018-11-01 | 2020-09-25 | 苏州浪潮智能科技有限公司 | 一种非易失性内存储器的日志容错处理方法与装置 |
US10909012B2 (en) * | 2018-11-12 | 2021-02-02 | H3 Platform, Inc. | System having persistent memory |
CN110134514B (zh) * | 2019-04-18 | 2021-04-13 | 华中科技大学 | 基于异构内存的可扩展内存对象存储系统 |
CN111984557A (zh) * | 2019-05-21 | 2020-11-24 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和系统 |
CN110347338B (zh) * | 2019-06-18 | 2021-04-02 | 重庆大学 | 混合内存数据交换处理方法、系统及可读存储介质 |
CN110618872B (zh) * | 2019-09-25 | 2022-04-15 | 山东师范大学 | 混合内存动态调度方法及系统 |
CN111177025B (zh) * | 2019-12-30 | 2022-05-17 | 深圳云天励飞技术股份有限公司 | 数据存储方法、装置及终端设备 |
CN112612573B (zh) * | 2020-12-17 | 2024-08-27 | 龙存科技(北京)股份有限公司 | 一种基于资源监控的内存分配方法及装置 |
CN112862067B (zh) * | 2021-01-14 | 2022-04-12 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护利用业务模型进行业务处理的方法和装置 |
CN113254198B (zh) * | 2021-04-30 | 2022-08-05 | 南开大学 | 融合Linux虚拟内存系统和文件系统的持久性内存统一管理方法 |
CN114265812B (zh) * | 2021-11-29 | 2024-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 降低risc-v向量处理器访存延迟的方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508787A (zh) * | 2011-11-29 | 2012-06-20 | 清华大学 | 混合结构内存的内存分配系统及方法 |
CN103853665A (zh) * | 2012-12-03 | 2014-06-11 | 华为技术有限公司 | 存储空间分配方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8359423B2 (en) * | 2008-03-14 | 2013-01-22 | Spansion Llc | Using LPDDR1 bus as transport layer to communicate to flash |
-
2014
- 2014-09-04 CN CN201410450192.6A patent/CN104239225B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508787A (zh) * | 2011-11-29 | 2012-06-20 | 清华大学 | 混合结构内存的内存分配系统及方法 |
CN103853665A (zh) * | 2012-12-03 | 2014-06-11 | 华为技术有限公司 | 存储空间分配方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104239225A (zh) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104239225B (zh) | 一种管理异构混合内存的方法及装置 | |
CN108804350B (zh) | 一种内存访问方法及计算机系统 | |
CN102768645B (zh) | 混合缓存的固态硬盘预取方法和固态硬盘ssd | |
CN103946819B (zh) | 用于非易失性系统存储器的统计耗损均衡 | |
CN105556485B (zh) | 基于相邻体和基于动态热阈值的热数据识别 | |
Lim et al. | FASTer FTL for enterprise-class flash memory SSDs | |
Wang et al. | A novel cache architecture with enhanced performance and security | |
CN106951187B (zh) | 一种固态存储静态磨损均衡的实现方法 | |
Zhou et al. | An efficient page-level FTL to optimize address translation in flash memory | |
Agrawal et al. | Refrint: Intelligent refresh to minimize power in on-chip multiprocessor cache hierarchies | |
CN107430554B (zh) | 通过使用数据的可压缩性作为高速缓存插入的标准来提高存储高速缓存性能 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
Sun et al. | A high performance and energy-efficient cold data eviction algorithm for 3D-TSV hybrid ReRAM/MLC NAND SSD | |
CN108228449B (zh) | 终端设备控制方法及装置、终端设备及计算机可读存储介质 | |
Aghaei Khouzani et al. | Prolonging PCM lifetime through energy-efficient, segment-aware, and wear-resistant page allocation | |
CN112579252A (zh) | 虚拟机复制和迁移 | |
Chen et al. | Heating dispersal for self-healing NAND flash memory | |
US20190073154A1 (en) | Ssd temperature control technique | |
KR20170129709A (ko) | 고체 상태 드라이브에서 가비지 수집 리소스 할당을 적응시키는 메커니즘 | |
US8667221B2 (en) | Detection of streaming data in cache | |
CN104346286A (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN113778662A (zh) | 内存回收方法及装置 | |
CN102681792B (zh) | 一种固态盘内存分区方法 | |
Kim et al. | HAD-TWL: Hot address detection-based wear leveling for phase-change memory systems with low latency | |
US9218294B1 (en) | Multi-level logical block address (LBA) mapping table for solid state |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |