基于内存的数据存储方法、装置、处理器和电子设备的制作方法

文档序号:6539099阅读:171来源:国知局
基于内存的数据存储方法、装置、处理器和电子设备的制作方法
【专利摘要】本申请公开一种基于内存的数据存储方法及相应设备,该方法应用于电子设备,且电子设备中设置有DRAM和PRAM。该方法中分别为DRAM和PRAM分配内存域;获取待存入内存的数据的虚拟空间的地址,确定所属虚拟内存区;然后将数据存储至与虚拟内存区相对应的内存域中的空闲内存块中。当虚拟地址属于虚拟内存堆栈段时,分配属于DRAM内存域中的空闲内存块;当虚拟地址属于虚拟内存代码段、数据段或共享段时,分配属于PRAM内存域的空闲内存块。本申请根据DRAM和PRAM的优缺点进行数据存储,将具有不同读写特性的数据存储至相应存储空间,发挥PRAM和DRAM在读、写方面的性能优势,可降低内存系统的功耗,增大内存容量。
【专利说明】基于内存的数据存储方法、装置、处理器和电子设备
【技术领域】
[0001]本发明涉及计算机系统领域,特别是涉及一种基于内存的数据存储方法、装置、处理器和电子设备。
【背景技术】
[0002]DRAM (Dynamic Random Access Memory,动态随机存取存储器)是一种较为常见的系统内存,长期以来,计算机系统主内存的任务一直由DRAM来担当。
[0003]但是,发明人在本申请的研究过程中发现,DRAM具有易失性,需要不断充电刷新来保持其中所存储的数据,具备功耗高的缺点,因此在当前的体系架构中,基于DRAM的内存系统功耗在系统总功耗中占有很闻的比例。

【发明内容】

[0004]有鉴于此,本发明的目的在于提供一种基于内存的数据存储方法、装置、处理器和电子设备,以解决现有技术中,基于DRAM的内存系统具有功耗闻的问题,具体实施方案如下:
[0005]一种基于内存的数据存储方法,应用于电子设备,所述电子设备中设置有动态存储器DRAM和相变存储器PRAM,其中,所述基于内存的数据存储方法包括:
[0006]分别为所述DRAM和PRAM建立相应的管理数据结构,获取分属于所述DRAM和PRAM的内存域;
[0007]当需要存储数据时,获取待存入内存的数据的虚拟空间的地址,并根据所述虚拟空间的地址,确定所述待存入内存的数据所属的虚拟内存区;
[0008]根据所述待存入内存的数据所属的虚拟内存区,将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域的空闲内存块中。
[0009]优选的,
[0010]当所述待存入内存的数据所属的虚拟内存区为堆栈段时,与所述虚拟内存区相对应的内存域为设置在DRAM中的内存域;
[0011]当所述待存入内存的数据所属的虚拟内存区为代码段、数据段或共享段时,与所述虚拟内存区相对应的内存域为设置在PRAM中的内存域。
[0012]优选的,将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域的空闲内存块中,包括:
[0013]根据所述待存入内存的数据所属的虚拟内存区,为所述待存入内存的数据配置相应的内存修饰符;
[0014]获取与所述内存修饰符相对应的内存域,并在所述内存域具有足够存储空间的空闲内存块时,将所述待存入内存的数据存储至所述内存修饰符对应的内存域的空闲内存块中。
[0015]优选的,当所述PRAM划分的内存域为三个,且所述DRAM划分的内存域为一个时,所述获取与所述内存修饰符相对应的内存域的计算公式为:
[0016]zone= (GFP_Z0NE_TABLE>> (bit*2)) & ((1?2) -1);
[0017]其中,GFP_Z0NE_TABLE为设定的常量值,bit为所述待存储数据的内存修饰符,zone为所述待存入内存的数据对应的内存域的内存域索引值。
[0018]优选的,当所述PRAM中划分的内存域为两个以上,且所述内存修饰符对应的内存域为所述PRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,获取所述内存修饰符对应的内存域后,还包括:
[0019]51)根据内存域索引值,获取优先级最高的内存域,作为当前内存域;
[0020]52)查找所述当前内存域中的空闲内存块,并判断所述空闲内存块的存储空间是否能够存储所述待存入内存的数据,若是,则将所述待存入内存的数据存储至所述当前内存域的空闲内存块中,若否,则执行下一步骤;
[0021]53)若确定所述空闲内存块的存储空间不能够存储所述待存入内存的数据,则判断所述PRAM中是否存在优先级次于所述当前内存域的其他内存域,若存在,确定其他内存域中优先级最高的内存域为当前内存域,并返回执行步骤52)的操作,若不存在,则结束本次存储操作。
[0022]优选的,当所述DRAM中划分的内存域为一个,且所述内存修饰符对应的内存域为所述DRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,获取所述内存修饰符对应的内存域后 ,还包括:
[0023]查找获取所述DRAM的内存域中的冷内存;
[0024]获取所述PRAM中的内存域中的空闲内存块,并将所述冷内存迁移到所述PRAM中的空闲内存块;
[0025]将所述待存入内存的数据存储至冷内存迁移后的所述DRAM中。
[0026]相应的,本发明还公开了一种基于内存的数据存储装置,应用于电子设备,所述电子设备中设置有动态存储器DRAM和相变存储器PRAM,其中,所述基于内存的数据存储装置包括:
[0027]内存域初始化模块,用于分别为所述DRAM和PRAM建立相应的管理数据结构,获取分属于所述DRAM和PRAM的内存域;
[0028]虚拟内存区确定模块,用于当需要存储数据时,获取待存入内存的数据的虚拟空间的地址,并根据所述虚拟空间的地址,确定所述待存入内存的数据所属的虚拟内存区;
[0029]数据存储模块,用于根据所述待存入内存的数据所属的虚拟内存区,将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域的空闲内存块中。
[0030]优选的,
[0031]当所述待存入内存的数据所属的虚拟内存区为堆栈段时,与所述虚拟内存区相对应的内存域为设置在DRAM中的内存域;
[0032]当所述待存入内存的数据所属的虚拟内存区为代码段、数据段或共享段时,与所述虚拟内存区相对应的内存域为设置在PRAM中的内存域。
[0033]优选的,所述数据存储模块包括:
[0034]内存修饰符配置单元,用于根据所述待存入内存的数据所属的虚拟内存区,为所述待存入内存的数据配置相应的内存修饰符;[0035]第一存储单元,用于获取与所述内存修饰符相对应的内存域,并在所述内存域具有足够存储空间的空闲内存块时,将所述待存入内存的数据存储至所述内存修饰符对应的内存域的空闲内存块中。
[0036]优选的,当所述PRAM划分的内存域为三个,且所述DRAM划分的内存域为一个时,所述第一存储单元中,获取与所述内存修饰符相对应的内存域的计算公式为:
[0037]zone=(GFP_Z0NE_TABLE?(bit*2))&((l〈〈2)-l);
[0038]其中,GFP_Z0NE_TABLE为设定的常量值,bit为所述待存储数据的内存修饰符,zone为所述待存入内存的数据对应的内存域的内存域索引值。
[0039]优选的,当所述PRAM中划分的内存域为两个以上,且所述内存修饰符对应的内存域为所述PRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,所述数据存储模块还包括:
[0040]第一获取单元,用于根据内存域索引值,获取优先级最高的内存域,作为当前内存域;
[0041]第一判断单元,用于查找所述当前内存域中的空闲内存块,并判断所述空闲内存块的存储空间是否能够存储所述待存入内存的数据,若是,则将所述待存入内存的数据存储至所述当前内存域 的空闲内存块中,若否,则执行第二获取单元的操作;
[0042]第二获取单元,用于若确定所述空闲内存块的存储空间不能够存储所述待存入内存的数据时,判断所述PRAM中是否存在优先级次于所述当前内存域的其他内存域,若存在,确定其他内存域中优先级最高的内存域为当前内存域,并返回执行第一判断单元的操作,若不存在,则结束本次存储操作。
[0043]优选的,当所述DRAM中划分的内存域为一个,且所述内存修饰符对应的内存域为所述DRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,所述数据存储模块还包括:
[0044]查找单元,用于查找获取所述DRAM的内存域中的冷内存;
[0045]迁移单元,用于获取所述PRAM中的内存域中的空闲内存块,并将所述冷内存迁移到所述PRAM中的空闲内存块;
[0046]第二存储单元,用于将所述待存入内存的数据存储至冷内存迁移后的所述DRAM中。
[0047]相应的,本发明还公开了一种处理器,应用于电子设备,
[0048]所述电子设备中设置有动态存储器DRAM和相变存储器PRAM ;
[0049]所述处理器中集成有如上所述的基于内存的数据存储装置。
[0050]相应的,本发明还公开了一种电子设备,
[0051]所述电子设备中设置有动态存储器DRAM和相变存储器PRAM ;
[0052]所述电子设备中设置有如上所述的处理器。
[0053]本申请应用的基于内存的数据存储方法,应用于电子设备,且电子设备中同时设置有DRAM和PRAM,与DRAM相比,PRAM具有静态功耗低、存储密度大、读功耗低的优点,但是PRAM的写延时和写功耗要比DRAM大,且PRAM的写寿命有限。本申请公开的方法,根据所述DRAM和PRAM的优缺点进行数据的存储,通过待存入内存的数据所属的虚拟内存区,能够获取所述待存入内存的数据的性质,将具有不同读写特性的数据存储至相应的存储空间内,从而能够发挥PRAM和DRAM在读、写方面的性能优势,既可以降低内存系统的静态功耗、增大内存容量,又可以降低内存系统的动态功耗。
[0054]进一步的,现有技术中,随着集成电路关键尺寸的减小,DRAM存储器件在尺寸收缩和存储密度方面的发展遇到了极大的困难,从而给内存系统的发展带来一定的限制。本申请公开的基于内存的数据存储方法,在电子设备中同时设置有DRAM和PRAM,扩充了电子设备的存储量,在存储器件尺寸收缩的同时,仍能保持一定的存储密度,解除了对内存系统的发展的限制。
【专利附图】

【附图说明】
[0055]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0056]图1为本发明实施例公开的一种基于内存的数据存储方法的工作流程示意图;
[0057]图2为本发明实施例公开的一种基于内存的数据存储方法中,虚拟空间地址和物理空间地址的算法设计示意图;
[0058]图3为本发明实施例公开的又一种基于内存的数据存储方法的工作流程示意图;
[0059]图4为本发明实施例公开的又一种基于内存的数据存储方法的工作流程示意图;
[0060]图5本发明实施例公开的一种基于内存的数据存储装置的结构示意图。
【具体实施方式】
[0061]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0062]为了解决现有技术中,基于DRAM的内存系统具有功耗高的问题,本申请公开了一种基于内存的数据存储方法、装置和电子设备,其实施过程参见以下实施例。
[0063]实施例一
[0064]本申请公开了一种基于内存的数据存储方法,用于解决现有技术中,基于DRAM的内存系统具有功耗高的问题,该方法应用于电子设备,所述电子设备中设置有动态存储器DRAM和相变存储器PRAM。
[0065]参见图1所示的工作流程示意图,所述基于内存的数据存储方法包括:
[0066]步骤S11、分别为所述DRAM和PRAM建立相应的管理数据结构,获取分属于所述DRAM和PRAM的内存域。
[0067]步骤S12、当需要存储数据时,获取待存入内存的数据的虚拟空间的地址,并根据所述虚拟空间的地址,确定所述待存入内存的数据所属的虚拟内存区。
[0068]虚拟内存是为了防止物理内存不足而设计的。当需要存储数据时,待存入内存的数据与虚拟空间的地址相映射,而虚拟空间的地址映射到实际的物理页帧,最后再将这个物理地址中的数据传输给硬件存储器进行实际的存储操作。[0069]例如,在Linux进程中,虚拟空间被划分为五个线性的虚拟内存区,所述虚拟内存区包括:代码段、数据段、堆段、栈段和共享段,其访问模式如表1所示。
[0070]表1虚拟内存区的访问模式
[0071]
【权利要求】
1.一种基于内存的数据存储方法,应用于电子设备,其特征在于,所述电子设备中设置有动态存储器DRAM和相变存储器PRAM,其中,所述基于内存的数据存储方法包括: 分别为所述DRAM和PRAM建立相应的管理数据结构,获取分属于所述DRAM和PRAM的内存域; 当需要存储数据时,获取待存入内存的数据的虚拟空间的地址,并根据所述虚拟空间的地址,确定所述待存入内存的数据所属的虚拟内存区; 根据所述待存入内存的数据所属的虚拟内存区,将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域的空闲内存块中。
2.根据权利要求1所述的方法,其特征在于, 当所述待存入内存的数据所属的虚拟内存区为堆栈段时,与所述虚拟内存区相对应的内存域为设置在DRAM中的内存域; 当所述待存入内存的数据所属的虚拟内存区为代码段、数据段或共享段时,与所述虚拟内存区相对应的内存域为设置在PRAM中的内存域。
3.根据权利要求1和2所述的方法,其特征在于,将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域的空闲内存块中,包括: 根据所述待 存入内存的数据所属的虚拟内存区,为所述待存入内存的数据配置相应的内存修饰符; 获取与所述内存修饰符相对应的内存域,并在所述内存域具有足够存储空间的空闲内存块时,将所述待存入内存的数据存储至所述内存修饰符对应的内存域的空闲内存块中。
4.根据权利要求3所述的方法,其特征在于,当所述PRAM划分的内存域为三个,且所述DRAM划分的内存域为一个时,所述获取与所述内存修饰符相对应的内存域的计算公式为:
zone= (GFP_ZONE_TABLE>> (bit*2)) & ((1?2)-1); 其中,GFP_ZONE_TABLE为设定的常量值,bit为所述待存储数据的内存修饰符,zone为所述待存入内存的数据对应的内存域的内存域索引值。
5.根据权利要求3所述的方法,其特征在于,当所述PRAM中划分的内存域为两个以上,且所述内存修饰符对应的内存域为所述PRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,获取所述内存修饰符对应的内存域后,还包括: 51)根据内存域索引值,获取优先级最高的内存域,作为当前内存域; 52)查找所述当前内存域中的空闲内存块,并判断所述空闲内存块的存储空间是否能够存储所述待存入内存的数据,若是,则将所述待存入内存的数据存储至所述当前内存域的空闲内存块中,若否,则执行下一步骤; 53 )若确定所述空闲内存块的存储空间不能够存储所述待存入内存的数据,则判断所述PRAM中是否存在优先级次于所述当前内存域的其他内存域,若存在,确定其他内存域中优先级最高的内存域为当前内存域,并返回执行步骤52)的操作,若不存在,则结束本次存储操作。
6.根据权利要求3所述的方法,其特征在于,当所述DRAM中划分的内存域为一个,且所述内存修饰符对应的内存域为所述DRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,获取所述内存修饰符对应的内存域后,还包括: 查找获取所述DRAM的内存域中的冷内存;获取所述PRAM中的内存域中的空闲内存块,并将所述冷内存迁移到所述PRAM中的空闲内存块; 将所述待存入内存的数据存储至冷内存迁移后的所述DRAM中。
7.一种基于内存的数据存储装置,应用于电子设备,其特征在于,所述电子设备中设置有动态存储器DRAM和相变存储器PRAM,其中,所述基于内存的数据存储装置包括: 内存域初始化模块,用于分别为所述DRAM和PRAM建立相应的管理数据结构,获取分属于所述DRAM和PRAM的内存域; 虚拟内存区确定模块,用于当需要存储数据时,获取待存入内存的数据的虚拟空间的地址,并根据所述虚拟空间的地址,确定所述待存入内存的数据所属的虚拟内存区; 数据存储模块,用于根据所述待存入内存的数据所属的虚拟内存区,将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域的空闲内存块中。
8.根据权利要求7所述的装置,其特征在于, 当所述待存入内存的数据所属的虚拟内存区为堆栈段时,与所述虚拟内存区相对应的内存域为设置在DRAM中的内存域; 当所述待存入内存的数据所属的虚拟内存区为代码段、数据段或共享段时,与所述虚拟内存区相对应的内存域为设置在PRAM中的内存域。
9.根据权利要求7和8所述的装置,其特征在于,所述数据存储模块包括: 内存修饰符配置单元,用于根据所述待存入内存的数据所属的虚拟内存区,为所述待存入内存的数据配置相应的内存修饰符; 第一存储单元,用于获取与所述内存修饰符相对应的内存域,并在所述内存域具有足够存储空间的空闲内存块时,将所述待存入内存的数据存储至所述内存修饰符对应的内存域的空闲内存块中。
10.根据权利要求9所述的装置,其特征在于,当所述PRAM划分的内存域为三个,且所述DRAM划分的内存域为一个时,所述第一存储单元中,获取与所述内存修饰符相对应的内存域的计算公式为:
11.根据权利要求9所述的装置,其特征在于,当所述PRAM中划分的内存域为两个以上,且所述内存修饰符对应的内存域为所述PRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,所述数据存储模块还包括: 第一获取单元,用于根据内存域索引值,获取优先级最高的内存域,作为当前内存域; 第一判断单元,用于查找所述当前内存域中的空闲内存块,并判断所述空闲内存块的存储空间是否能够存储所述待存入内存的数据,若是,则将所述待存入内存的数据存储至所述当前内存域的空闲内存块中,若否,则执行第二获取单元的操作; 第二获取单元,用于若确定所述空闲内存块的存储空间不能够存储所述待存入内存的数据时,判断所述PRAM中是否存在优先级次于所述当前内存域的其他内存域,若存在,确定其他内存域中优先级最高的内存域为当前内存域,并返回执行第一判断单元的操作,若不存在,则结束本次存储操作。
12.根据权利要求9所述的装置,其特征在于,当所述DRAM中划分的内存域为一个,且所述内存修饰符对应的内存域为所述DRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,所述数据存储模块还包括: 查找单元,用于查找获取所述DRAM的内存域中的冷内存; 迁移单元,用于获取所述PRAM中的内存域中的空闲内存块,并将所述冷内存迁移到所述PRAM中的空闲内存块; 第二存储单元,用于将所述待存入内存的数据存储至冷内存迁移后的所述DRAM中。
13.—种处理器,应用于电子设备,其特征在于, 所述电子设备中设置有动态存储器DRAM和相变存储器PRAM ; 所述处理器中集成有如权利要求7至权利要求12任一项所述的基于内存的数据存储装置。
14.一种电子设备,其特征在于, 所述电子设备中设置有动态存储器DRAM和相变存储器PRAM ; 所述电子设备中设置有如权利要求13所述的处理器。
【文档编号】G06F12/08GK103793332SQ201410071983
【公开日】2014年5月14日 申请日期:2014年2月28日 优先权日:2014年2月28日
【发明者】李功, 陈岚, 郝晓冉 申请人:中国科学院微电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1