• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 19
    • 下载费用:30 金币  

    重庆时时彩看后三独胆: 基于内存的数据存储方法、装置、处理器和电子设备.pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN201410071983.8

    申请日:

    2014.02.28

    公开号:

    CN103793332A

    公开日:

    2014.05.14

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 12/08申请日:20140228|||公开
    IPC分类号: G06F12/08 主分类号: G06F12/08
    申请人: 中国科学院微电子研究所
    发明人: 李功; 陈岚; 郝晓冉
    地址: 100029 北京市朝阳区北土城西路3号
    优先权:
    专利代理机构: 北京集佳知识产权代理有限公司 11227 代理人: 王宝筠
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201410071983.8

    授权公告号:

    ||||||

    法律状态公告日:

    2017.03.01|||2014.06.11|||2014.05.14

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本申请公开一种基于内存的数据存储方法及相应设备,该方法应用于电子设备,且电子设备中设置有DRAM和PRAM。该方法中分别为DRAM和PRAM分配内存域;获取待存入内存的数据的虚拟空间的地址,确定所属虚拟内存区;然后将数据存储至与虚拟内存区相对应的内存域中的空闲内存块中。当虚拟地址属于虚拟内存堆栈段时,分配属于DRAM内存域中的空闲内存块;当虚拟地址属于虚拟内存代码段、数据段或共享段时,分配属于PRAM内存域的空闲内存块。本申请根据DRAM和PRAM的优缺点进行数据存储,将具有不同读写特性的数据存储至相应存储空间,发挥PRAM和DRAM在读、写方面的性能优势,可降低内存系统的功耗,增大内存容量。

    权利要求书

    权利要求书
    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所述的装置,其特征在于,所述数据存储??榘ǎ?BR>内存修饰符配置单元,用于根据所述待存入内存的数据所属的虚拟内存区,为所述待存入内存的数据配置相应的内存修饰符;
    第一存储单元,用于获取与所述内存修饰符相对应的内存域,并在所述内存域具有足够存储空间的空闲内存块时,将所述待存入内存的数据存储至所述内存修饰符对应的内存域的空闲内存块中。

    10.  根据权利要求9所述的装置,其特征在于,当所述PRAM划分的内存域为三个,且所述DRAM划分的内存域为一个时,所述第一存储单元中,获取与所述内存修饰符相对应的内存域的计算公式为:
    zone=(GFP_ZONE_TABLE>>(bit*2))&((1<<2)-1);
    其中,GFP_ZONE_TABLE为设定的常量值,bit为所述待存储数据的内存修饰符,zone为所述待存入内存的数据对应的内存域的内存域索引值。

    11.  根据权利要求9所述的装置,其特征在于,当所述PRAM中划分的内存域为两个以上,且所述内存修饰符对应的内存域为所述PRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,所述数据存储??榛拱ǎ?BR>第一获取单元,用于根据内存域索引值,获取优先级最高的内存域,作为当前内存域;
    第一判断单元,用于查找所述当前内存域中的空闲内存块,并判断所述空闲内存块的存储空间是否能够存储所述待存入内存的数据,若是,则将所述待存入内存的数据存储至所述当前内存域的空闲内存块中,若否,则执行第二获取单元的操作;
    第二获取单元,用于若确定所述空闲内存块的存储空间不能够存储所述待存入内存的数据时,判断所述PRAM中是否存在优先级次于所述当前内存域的其他内存域,若存在,确定其他内存域中优先级最高的内存域为当前内存域,并返回执行第一判断单元的操作,若不存在,则结束本次存储操作。

    12.  根据权利要求9所述的装置,其特征在于,当所述DRAM中划分的内存域为一个,且所述内存修饰符对应的内存域为所述DRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,所述数据存储??榛拱ǎ?BR>查找单元,用于查找获取所述DRAM的内存域中的冷内存;
    迁移单元,用于获取所述PRAM中的内存域中的空闲内存块,并将所述冷内存迁移到所述PRAM中的空闲内存块;
    第二存储单元,用于将所述待存入内存的数据存储至冷内存迁移后的所述DRAM中。

    13.  一种处理器,应用于电子设备,其特征在于,
    所述电子设备中设置有动态存储器DRAM和相变存储器PRAM;
    所述处理器中集成有如权利要求7至权利要求12任一项所述的基于内存的数据存储装置。

    14.  一种电子设备,其特征在于,
    所述电子设备中设置有动态存储器DRAM和相变存储器PRAM;
    所述电子设备中设置有如权利要求13所述的处理器。

    说明书

    说明书基于内存的数据存储方法、装置、处理器和电子设备
    技术领域
    本发明涉及计算机系统领域,特别是涉及一种基于内存的数据存储方法、装置、处理器和电子设备。
    背景技术
    DRAM(Dynamic Random Access Memory,动态随机存取存储器)是一种较为常见的系统内存,长期以来,计算机系统主内存的任务一直由DRAM来担当。
    但是,发明人在本申请的研究过程中发现,DRAM具有易失性,需要不断充电刷新来保持其中所存储的数据,具备功耗高的缺点,因此在当前的体系架构中,基于DRAM的内存系统功耗在系统总功耗中占有很高的比例。
    发明内容
    有鉴于此,本发明的目的在于提供一种基于内存的数据存储方法、装置、处理器和电子设备,以解决现有技术中,基于DRAM的内存系统具有功耗高的问题,具体实施方案如下:
    一种基于内存的数据存储方法,应用于电子设备,所述电子设备中设置有动态存储器DRAM和相变存储器PRAM,其中,所述基于内存的数据存储方法包括:
    分别为所述DRAM和PRAM建立相应的管理数据结构,获取分属于所述DRAM和PRAM的内存域;
    当需要存储数据时,获取待存入内存的数据的虚拟空间的地址,并根据所述虚拟空间的地址,确定所述待存入内存的数据所属的虚拟内存区;
    根据所述待存入内存的数据所属的虚拟内存区,将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域的空闲内存块中。
    优选的,
    当所述待存入内存的数据所属的虚拟内存区为堆栈段时,与所述虚拟内存区相对应的内存域为设置在DRAM中的内存域;
    当所述待存入内存的数据所属的虚拟内存区为代码段、数据段或共享段时,与所述虚拟内存区相对应的内存域为设置在PRAM中的内存域。
    优选的,将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域的空闲内存块中,包括:
    根据所述待存入内存的数据所属的虚拟内存区,为所述待存入内存的数据配置相应的内存修饰符;
    获取与所述内存修饰符相对应的内存域,并在所述内存域具有足够存储空间的空闲内存块时,将所述待存入内存的数据存储至所述内存修饰符对应的内存域的空闲内存块中。
    优选的,当所述PRAM划分的内存域为三个,且所述DRAM划分的内存域为一个时,所述获取与所述内存修饰符相对应的内存域的计算公式为:
    zone=(GFP_ZONE_TABLE>>(bit*2))&((1<<2)-1);
    其中,GFP_ZONE_TABLE为设定的常量值,bit为所述待存储数据的内存修饰符,zone为所述待存入内存的数据对应的内存域的内存域索引值。
    优选的,当所述PRAM中划分的内存域为两个以上,且所述内存修饰符对应的内存域为所述PRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,获取所述内存修饰符对应的内存域后,还包括:
    51)根据内存域索引值,获取优先级最高的内存域,作为当前内存域;
    52)查找所述当前内存域中的空闲内存块,并判断所述空闲内存块的存储空间是否能够存储所述待存入内存的数据,若是,则将所述待存入内存的数据存储至所述当前内存域的空闲内存块中,若否,则执行下一步骤;
    53)若确定所述空闲内存块的存储空间不能够存储所述待存入内存的数据,则判断所述PRAM中是否存在优先级次于所述当前内存域的其他内存域,若存在,确定其他内存域中优先级最高的内存域为当前内存域,并返回执行步骤52)的操作,若不存在,则结束本次存储操作。
    优选的,当所述DRAM中划分的内存域为一个,且所述内存修饰符对应的内存域为所述DRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,获取所述内存修饰符对应的内存域后,还包括:
    查找获取所述DRAM的内存域中的冷内存;
    获取所述PRAM中的内存域中的空闲内存块,并将所述冷内存迁移到所述PRAM中的空闲内存块;
    将所述待存入内存的数据存储至冷内存迁移后的所述DRAM中。
    相应的,本发明还公开了一种基于内存的数据存储装置,应用于电子设备,所述电子设备中设置有动态存储器DRAM和相变存储器PRAM,其中,所述基于内存的数据存储装置包括:
    内存域初始化???,用于分别为所述DRAM和PRAM建立相应的管理数据结构,获取分属于所述DRAM和PRAM的内存域;
    虚拟内存区确定???,用于当需要存储数据时,获取待存入内存的数据的虚拟空间的地址,并根据所述虚拟空间的地址,确定所述待存入内存的数据所属的虚拟内存区;
    数据存储???,用于根据所述待存入内存的数据所属的虚拟内存区,将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域的空闲内存块中。
    优选的,
    当所述待存入内存的数据所属的虚拟内存区为堆栈段时,与所述虚拟内存区相对应的内存域为设置在DRAM中的内存域;
    当所述待存入内存的数据所属的虚拟内存区为代码段、数据段或共享段时,与所述虚拟内存区相对应的内存域为设置在PRAM中的内存域。
    优选的,所述数据存储??榘ǎ?
    内存修饰符配置单元,用于根据所述待存入内存的数据所属的虚拟内存区,为所述待存入内存的数据配置相应的内存修饰符;
    第一存储单元,用于获取与所述内存修饰符相对应的内存域,并在所述内存域具有足够存储空间的空闲内存块时,将所述待存入内存的数据存储至所述内存修饰符对应的内存域的空闲内存块中。
    优选的,当所述PRAM划分的内存域为三个,且所述DRAM划分的内存域为一个时,所述第一存储单元中,获取与所述内存修饰符相对应的内存域的计算公式为:
    zone=(GFP_ZONE_TABLE>>(bit*2))&((1<<2)-1);
    其中,GFP_ZONE_TABLE为设定的常量值,bit为所述待存储数据的内存修饰符,zone为所述待存入内存的数据对应的内存域的内存域索引值。
    优选的,当所述PRAM中划分的内存域为两个以上,且所述内存修饰符对应的内存域为所述PRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,所述数据存储??榛拱ǎ?
    第一获取单元,用于根据内存域索引值,获取优先级最高的内存域,作为当前内存域;
    第一判断单元,用于查找所述当前内存域中的空闲内存块,并判断所述空闲内存块的存储空间是否能够存储所述待存入内存的数据,若是,则将所述待存入内存的数据存储至所述当前内存域的空闲内存块中,若否,则执行第二获取单元的操作;
    第二获取单元,用于若确定所述空闲内存块的存储空间不能够存储所述待存入内存的数据时,判断所述PRAM中是否存在优先级次于所述当前内存域的其他内存域,若存在,确定其他内存域中优先级最高的内存域为当前内存域,并返回执行第一判断单元的操作,若不存在,则结束本次存储操作。
    优选的,当所述DRAM中划分的内存域为一个,且所述内存修饰符对应的内存域为所述DRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,所述数据存储??榛拱ǎ?
    查找单元,用于查找获取所述DRAM的内存域中的冷内存;
    迁移单元,用于获取所述PRAM中的内存域中的空闲内存块,并将所述冷内存迁移到所述PRAM中的空闲内存块;
    第二存储单元,用于将所述待存入内存的数据存储至冷内存迁移后的所述DRAM中。
    相应的,本发明还公开了一种处理器,应用于电子设备,
    所述电子设备中设置有动态存储器DRAM和相变存储器PRAM;
    所述处理器中集成有如上所述的基于内存的数据存储装置。
    相应的,本发明还公开了一种电子设备,
    所述电子设备中设置有动态存储器DRAM和相变存储器PRAM;
    所述电子设备中设置有如上所述的处理器。
    本申请应用的基于内存的数据存储方法,应用于电子设备,且电子设备中同时设置有DRAM和PRAM,与DRAM相比,PRAM具有静态功耗低、存储密度大、读功耗低的优点,但是PRAM的写延时和写功耗要比DRAM大,且PRAM的写寿命有限。本申请公开的方法,根据所述DRAM和PRAM的优缺点进行数据的存储,通过待存入内存的数据所属的虚拟内存区,能够获取所述待存入内存的数据的性质,将具有不同读写特性的数据存储至相应的存储空间内,从而能够发挥PRAM和DRAM在读、写方面的性能优势,既可以降低内存系统的静态功耗、增大内存容量,又可以降低内存系统的动态功耗。
    进一步的,现有技术中,随着集成电路关键尺寸的减小,DRAM存储器件在尺寸收缩和存储密度方面的发展遇到了极大的困难,从而给内存系统的发展带来一定的限制。本申请公开的基于内存的数据存储方法,在电子设备中同时设置有DRAM和PRAM,扩充了电子设备的存储量,在存储器件尺寸收缩的同时,仍能保持一定的存储密度,解除了对内存系统的发展的限制。
    附图说明
    为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
    图1为本发明实施例公开的一种基于内存的数据存储方法的工作流程示意图;
    图2为本发明实施例公开的一种基于内存的数据存储方法中,虚拟空间地址和物理空间地址的算法设计示意图;
    图3为本发明实施例公开的又一种基于内存的数据存储方法的工作流程示意图;
    图4为本发明实施例公开的又一种基于内存的数据存储方法的工作流程示意图;
    图5本发明实施例公开的一种基于内存的数据存储装置的结构示意图。
    具体实施方式
    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例?;诒痉⒚髦械氖凳├?,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明?;さ姆段?。
    为了解决现有技术中,基于DRAM的内存系统具有功耗高的问题,本申请公开了一种基于内存的数据存储方法、装置和电子设备,其实施过程参见以下实施例。
    实施例一
    本申请公开了一种基于内存的数据存储方法,用于解决现有技术中,基于DRAM的内存系统具有功耗高的问题,该方法应用于电子设备,所述电子设备中设置有动态存储器DRAM和相变存储器PRAM。
    参见图1所示的工作流程示意图,所述基于内存的数据存储方法包括:
    步骤S11、分别为所述DRAM和PRAM建立相应的管理数据结构,获取分属于所述DRAM和PRAM的内存域。
    步骤S12、当需要存储数据时,获取待存入内存的数据的虚拟空间的地址,并根据所述虚拟空间的地址,确定所述待存入内存的数据所属的虚拟内存区。
    虚拟内存是为了防止物理内存不足而设计的。当需要存储数据时,待存入内存的数据与虚拟空间的地址相映射,而虚拟空间的地址映射到实际的物理页帧,最后再将这个物理地址中的数据传输给硬件存储器进行实际的存储操作。
    例如,在Linux进程中,虚拟空间被划分为五个线性的虚拟内存区,所述虚拟内存区包括:代码段、数据段、堆段、栈段和共享段,其访问模式如表1所示。
    表1虚拟内存区的访问模式
    内存区储存内容读操作写操作代码段当前运行的二进制代码频繁无操作数据段存储全局变量和静态变量频繁不频繁堆段动态产生的数据频繁频繁栈段局部变量和实现函数调用频繁频繁共享段参数列表、命令行参数、环境变量较频繁不频繁
    由于PRAM写操作的延时和功耗要高于读操作的延时和功耗,如果PRAM页帧频繁进行写操作,那么将增加主内存的动态功耗和延时。此外,由于PRAM写操作次数有限,过多的写操作势必将会减少主内存的使用寿命,因此,本申请在存储数据时,遵循的原则为:频繁写为主的页帧分配到DRAM空间,这样可以发挥DRAM写功耗低、写延时小和无寿命限制的优点;频繁读为主的页帧分配到PRAM空间,这样可以发挥PRAM读功耗低的优点。因此,堆栈段对应的数据采用读写对称的访问模式,适合储存于DRAM空间内,代码段、数据段、共享段数据采用读多写少的访问模式,适合储存于PRAM空间内。
    当有数据需要存储至内存时,程序会访问虚拟空间的相应页面,若还未被映射到物理空间的页帧时,处理器就会产生一个缺页异常。参见图2所示的虚拟空间地址和物理空间地址的算法设计示意图,当产生缺页异常时,内存描述符参数mm_struct描述了产生缺页异常的进程对应的虚拟内存的信息。例如,代码段开始和结束的虚拟内存地址分别通过start_code和end_code标记,其中,所述start_code和end_code标记即为内存描述符参数。另外,程 序会产生相应的参数address,用于描述当前进程产生缺页异常的虚拟空间地址。当处理器产生按需分配、页面交换或者写时复制的缺页异常时,通过比较产生缺页异常的虚拟空间地址和内存描述符中各个内存区的起止地址,就可以判断出这个虚拟空间地址是属于堆栈段还是其它段,并且为其标志相应内存修饰符。
    步骤S13、根据所述待存入内存的数据所属的虚拟内存区,将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域的空闲内存块中。
    其中,当所述待存入内存的数据所属的虚拟内存区为堆栈段时,与所述虚拟内存区相对应的内存域为设置在DRAM中的内存域;
    当所述待存入内存的数据所属的虚拟内存区为代码段、数据段或共享段时,与所述虚拟内存区相对应的内存域为设置在PRAM中的内存域。
    本申请公开的基于内存的数据存储方法,应用于电子设备,所述电子设备中设置有动态存储器DRAM和相变存储器PRAM。该方法中,首先分别为所述DRAM和PRAM建立相应的管理数据结构,以便获取分属与DRAM和PRAM的内存域;当需要存储数据时,获取待存入内存的数据的虚拟空间的地址,并根据所述虚拟空间的地址,确定所述待存入内存的数据所属的虚拟内存区;最后将所述待存入的数据,存储至与所述虚拟内存区相对应的内存域中的空闲内存块中。
    本申请应用的基于内存的数据存储方法,应用于电子设备,且电子设备中同时设置有DRAM和PRAM,与DRAM相比,PRAM具有静态功耗低、存储密度大、读功耗低的优点,但是PRAM的写延时和写功耗要比DRAM大,且PRAM的写寿命有限。本申请公开的方法,根据所述DRAM和PRAM的优缺点进行数据的存储,通过待存入内存的数据所属的虚拟内存区,能够获取所述待存入内存的数据的性质,将具有不同读写特性的数据存储至相应的存储空间内,从而能够发挥PRAM和DRAM在读、写方面的性能优势,既可以降低内存系统的静态功耗、增大内存容量,又可以降低内存系统的动态功耗。
    进一步的,步骤S13中所述的将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域的空闲内存块中,通常包括:
    首先,根据所述待存入内存的数据所属的虚拟内存区,为所述待存入内存的数据配置相应的内存修饰符;
    然后,获取与所述内存修饰符相对应的内存域,并在所述内存域具有足够存储空间的空闲内存块时,将所述待存入内存的数据存储至所述内存修饰符对应的内存域的空闲内存块中。
    当需要存储数据时,通常根据所属的虚拟内存区,为所述待存入内存的数据配置相应的内存修饰符,以便根据所述内存修饰符确定相应的内存域。
    在实际应用时,通常将所述PRAM划分的内存域为三个,且所述DRAM划分的内存域为一个。其中,可将所述PRAM中的内存域称为DMA、NORMAL、HIGHMEM,将所述DRAM中的内存域称为DRAM,并且,由枚举结构为各个内存域分配相应的内存域索引值,例如,内存域DMA的内存域索引值为0,可表征为ZONE_DMA的值为0;相应的,内存域NORMAL,即ZONE_NORMAL的内存域索引值为1;内存域HIGHMEM,即ZONE_HIGHMEM的内存域索引值为2;内存域DRAM,即ZONE_DRAM的内存域索引值为3。MAX_NR_ZONES表示内存域的总数,其值为4,表示分配的内存域的数量为4。
    由于在内存域DRAM和HIGHMEM用尽的情况下并不会对处理器内核造成任何影响,因此都属于高端内存且分配代价最低;内存域NORMAL用于储存内核必须的数据结构,其分配代价适中;分配代价最高的内存域DMA专门用于与ISA设备进行数据传输。因此,不同类型的数据首选分配时所对应的内存域不同,而且,不同类型的数据分属于不同的虚拟内存区。通常按照上述公开的方法,通过所述待存入内存的数据所属的虚拟内存区,为所述待存入内存的数据配置相应的内存修饰符,然后获取与所述内存修饰符相对应的内存域,并在该内存域存在充足的存储空间时,将所述待存入内存的数据存储至所述内存修饰符对应的内存域的空闲内存块中。
    当为PRAM分配三个内存域,为DRAM分配一个内存域时,通常内存域DMA包含0-16MB的PRAM页帧,内存域NORMAL包含16-896MB的PRAM页帧,内存域HIGHMEM包含了所有剩余PRAM的页帧,一般为896MB-1.6GB,内存域DRAM包含了所有DRAM页帧,一般为1.6GB-2GB。当然,也可以采用其他的页帧分配方式,为各个内存域分配相应的页帧,本申请对此不做限定。
    当所述PRAM划分的内存域为三个,且所述DRAM划分的内存域为一个时,根据所述内存域修饰符,获取与所述内存修饰符相对应的内存域的计算公式为:
    zone=(GFP_ZONE_TABLE>>(bit*2))&((1<<2)-1);
    其中,GFP_ZONE_TABLE为设定的常量值,bit为所述待存储数据的内存修饰符,zone为所述待存入内存的数据对应的内存域的内存域索引值。所述GFP_ZONE_TABLE以比特串(二进制的值为1100100001)表示。
    表2公开了内存修饰符和内存域的对应关系。
    表2内存修饰符和内存域的对应关系


    当确定对应的内存域时,首先会通过计算公式来确定将要扫描的最高内存域。参照表2,能够通过内存修饰符与比特位的对应关系,获取相应的bit值,并将其代入公式中,确定相应的内存域。
    例如,堆栈段的数据优选存储至DRAM中,则堆栈段对应的内存修饰符为GFP_DRAM,其对应的比特位为0x04u(0100),分配掩码的第3位标志为1,则bit=0100,将其代入上述公式,zone=(1100100001>>(0100*2))&((1<<2)-1)=3,由于内存域DRAM的内存域索引值为3,则确定其对应的内存域为DRAM。当所述内存域DRAM中具有充足空间的空闲内存块时,将待存入内存的数据存储至所述内存域DRAM中即可。
    另外,上述表格中“BAD”表明该内存修饰符不与任何内存域相对应,属于一种异常情况后续不会为其分配相应的空闲内存块。
    所述PRAM中的三个内存域DMA、NORMAL、HIGHMEM,具有不同的优先级,其中内存域索引值最高的内存域的优先级最高,
    在步骤S13中,根据所述内存修饰符,获取其对应的内存域后,会将待存入内存的数据存储至对应的内存域中。当根据内存修饰符,确定所述待存入内存的数据首先分配对应的内存域后,会判断该内存域是否具有足够的存储空间,如果具有,则将所述数据存储至内存修饰符对应的内存域中,如果不具有,则对PRAM和DRAM采用不同的措施,实现对数据的存储。
    当所述PRAM中划分的内存域为两个以上,且所述内存修饰符对应的内存域为所述PRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,获取所述内存修饰符对应的内存域后,参见图3所示的工作流程示意图,还包括:
    步骤S21、根据内存域索引值,获取优先级最高的内存域,作为当前内存域。
    通??山玃RAM划分为三个内存域,并将所述三个内存域称为DMA、NORMAL、HIGHMEM,并由枚举结构为各个内存域分配相应的内存域索引值,其中内存域DMA的内存域索引值为0,内存域NORMAL的内存域索引值为1,内存域HIGHMEM的内存域索引值为2。并且,在PRAM中,内存域索引值越大,内存域的优先级越高。
    步骤S22、查找所述当前内存域中的空闲内存块,并判断所述空闲内存块的存储空间是否能够存储所述待存入内存的数据,若是,执行步骤S25的操作,若否,则执行步骤S23的操作;
    步骤S23、若根据判断结果,确定所述空闲内存块的存储空间不能够存储所述待存入内存的数据,则判断所述PRAM中是否存在优先级次于所述当前内存域的其他内存域,若存在,则执行步骤S24的操作,若不存在,则执行步骤S26的操作;
    步骤S24、当根据判断结果,确定所述PRAM中存在优先级次于所述当前内存域的其他内存域,则确定所述其他内存域中,优先级最高的内存域为当前内存域,并返回执行步骤S22的操作;
    步骤S25、若根据步骤S22的判断结果,确定所述空闲内存块的存储空间能够存储所述待存入内存的数据时,将所述待存入内存的数据存储至所述当前内存域的空闲内存块中;
    步骤S26、若根据步骤S23的判断结果,确定所述PRAM中不存在优先级次于所述当前内存域的其他内存域时,则结束本次存储操作。
    当与内存修饰符相对应的内存域为PRAM中的内存域,且该内存域中不具有充足的存储空间时,按照步骤S21至步骤S26公开的方案,按照内存域索引值确定PRAM中各个内存域的优先级,并根据优先级顺次判断各个内存域中是否具有充足的存储空间,并在根据判断结果,确定某一内存域中具有充足的存储空间时,将待存入内存的数据存储至该内存域中,若PRAM中各个内存域都没有足够的存储空间,则结束本次存储操作,从而在首选分配的 内存域为PRAM中的内存域,且首选分配的内存域中没有充足的存储空间时,按照内存域的优先次序进行数据的存储。
    另外,当所述DRAM中划分的内存域为一个,且所述内存修饰符对应的内存域为所述DRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,获取所述内存修饰符对应的内存域后,参见图4所示的工作流程示意图,还包括:
    步骤S31、查找获取所述DRAM的内存域中的冷内存;
    步骤S32、获取所述PRAM中的内存域中的空闲内存块,并将所述冷内存迁移到所述PRAM中的空闲内存块;
    在进行冷内存的迁移时,通常按照所述PRAM中各个内存域的优先级,依次判断各个内存域是否具有充足的存储空间,例如,按照内存域索引值,首先判断内存域HIGHMEM中是否具有充足的存储空间,如果具有,则将冷内存迁移至所述内存域HIGHMEM中,如果不具有,则判断内存域NORMAL中是否具有充足的存储空间,如果内存域NORMAL中具有充足的存储空间,则将冷内存迁移至所述内存域NORMAL中,如果不具有,则继续判断内存域DMA中是否具有充足的存储空间。
    步骤S33、将所述待存入内存的数据存储至冷内存迁移后的所述DRAM中。
    其中,冷内存指的是最近较少被访问的内存页帧。当根据内存修饰符,确定首选分配的内存域为DRAM中的内存域时,且所述DRAM不具备充足的存储空间时,需要进行冷内存迁移至PRAM中,以便所述DRAM获取足够的存储空间。
    通过步骤S31至步骤S33的操作,当内存修饰符对应的内存域为所述DRAM中的内存域,且所述内存修饰符对应的内存域不具有充足的存储空间时,会将DRAM中的冷内存迁移至PRAM中,以使DRAM获取充足的存储空间,存储数据。
    另外,当根据步骤S31的查找结果,确定PRAM中的各个内存域不具有充足的存储空间时,则结束本次的存储操作。
    本申请的实施例一公开了一种基于内存的数据存储方法,该方法应用于电子设备,且所述电子设备中设置有动态存储器DRAM和相变存储器PRAM。该方法中,分别为所述DRAM和PRAM建立相应的管理数据结构,获取分属于所述DRAM和PRAM的内存域;当需要存储数据时,获取待存入内存的数据的虚拟空间的地址,根据所述虚拟空间的地址确定所述待存入内存的数据所属的虚拟内存区;然后将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域中的空闲内存块中。其中,当所述待存入内存的数据所属的虚拟内存区为堆栈段时,与所述虚拟内存区相对应的内存域为设置在DRAM中的内存域;当所述待存入内存的数据所属的虚拟内存区为代码段、数据段或共享段时,与所述虚拟内存区相对应的的内存域为设置在PRAM中的内存域。
    在将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域中的空闲内存块时,首先根据所述待存入内存的数据所属的虚拟内存区,确定相应的内存修饰符,然后根据所述内存修饰符,确定所述内存修饰符对应的内存域,将所述内存修饰符对应的内存域作为首选内存域,当所述首选内存域具有足够存储空间的空闲内存块时,将数据存储至所述空闲内存块中。
    当所述内存修饰符对应的内存域,即首选内存域中不具有足够存储空间的空闲内存块时,若所述内存修饰符对应的内存域为PRAM中的内存域,且所述PRAM划分的内存域为两个以上时,则根据内存域索引值,确定各个内存域的优先级,通过优先级依次判断所述PRAM中的各个内存域中是否具有充足存储空间,具有时,将所述待存入内存的数据存储至该内存域的空闲内存块中,若所述PRAM中的各个内存域均不具有充足存储空间时,则结束本次存储操作。
    当所述内存修饰符对应的内存域,即首选内存域中不具有足够存储空间的空闲内存块时,若所述内存修饰符对应的内存域为DRAM中的内存域,则将所述DRAM中的冷内存迁移至PRAM中,然后将待存入内存的数据存储至冷内存迁移后的所述DRAM中。如果PRAM中不具有容纳所述冷内存的存储空间,则结束本次存储操作。
    本申请公开的方法,根据所述DRAM和PRAM的优缺点进行数据的存储,将具有不同读写特性的数据存储至相应的存储空间内,从而能够发挥PRAM和DRAM在读、写方面的性能优势,既可以降低内存系统的静态功耗、增大内存容量,又可以降低内存系统的动态功耗。
    进一步的,现有技术中,随着集成电路关键尺寸的减小,DRAM存储器件在尺寸收缩和存储密度方面的发展遇到了极大的困难,从而给内存系统的发展带来一定的限制。本申请公开的基于内存的数据存储方法,在电子设备中同时设置有DRAM和PRAM,扩充了电子设备的存储量,在存储器件尺寸收缩的同时,仍能保持一定的存储密度,解除了对内存系统的发展的限制。
    实施例二
    本申请的实施例二公开了基于内存的数据存储装置,用于解决现有技术中,基于DRAM的内存系统具有功耗高的问题。所述基于内存的数据存储装置应用于电子设备,所述电子设备中设置有动态存储器DRAM和相变存储器PRAM。
    参见图5所示的结构示意图,所述基于内存的数据存储装置包括:内存域初始化???00、虚拟内存区确定???00和数据存储???00,其中,
    所述内存域初始化???00,用于分别为所述DRAM和PRAM建立相应的管理数据结构,获取分属于所述DRAM和PRAM的内存域;
    所述虚拟内存区确定???00,用于当需要存储数据时,获取待存入内存的数据的虚拟空间的地址,并根据所述虚拟空间的地址,确定所述待存入内存的数据所属的虚拟内存区;
    所述数据存储???00,用于根据所述待存入内存的数据所属的虚拟内存区,将所述待存入内存的数据存储至与所述虚拟内存区相对应的内存域中的空闲内存块中。
    其中,当所述待存入内存的数据所属的虚拟内存区为堆栈段时,与所述虚拟内存区相对应的内存域为设置在DRAM中的内存域;
    当所述待存入内存的数据所属的虚拟内存区为代码段、数据段或共享段时,与所述虚拟内存区相对应的内存域为设置在PRAM中的内存域。
    进一步的,所述数据存储??榘ǎ?
    内存修饰符配置单元,用于根据所述待存入内存的数据所属的虚拟内存区,为所述待存入内存的数据配置相应的内存修饰符;
    第一存储单元,用于获取与所述内存修饰符相对应的内存域,并在所述内存域具有足够存储空间的空闲内存块时,将所述待存入内存的数据存储至所述内存修饰符对应的内存域的空闲内存块中。
    其中,当所述PRAM划分的内存域为三个,且所述DRAM划分的内存域为一个时,所述第一存储单元中,获取与所述内存修饰符相对应的内存域的计算公式为:
    zone=(GFP_ZONE_TABLE>>(bit*2))&((1<<2)-1);
    其中,GFP_ZONE_TABLE为设定的常量值,bit为所述待存储数据的内存修饰符,zone为所述待存入内存的数据对应的内存域的内存域索引值。
    进一步的,
    当所述PRAM中划分的内存域为两个以上,且所述内存修饰符对应的内存域为所述PRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,所述数据存储??榛拱ǎ?
    第一获取单元,用于根据内存域索引值,获取优先级最高的内存域,作为当前内存域;
    第一判断单元,用于查找所述当前内存域中的空闲内存块,并判断所述空闲内存块的存储空间是否能够存储所述待存入内存的数据,若是,则将所述待存入内存的数据存储至所述当前内存域的空闲内存块中,若否,则执行第二获取单元的操作;
    第二获取单元,用于若确定所述空闲内存块的存储空间不能够存储所述待存入内存的数据时,判断所述PRAM中是否存在优先级次于所述当前内存域的其他内存域,若存在,确定其他内存域中优先级最高的内存域为当前内存域,并返回执行第一判断单元的操作,若不存在,则结束本次存储操作。
    进一步的,当所述DRAM中划分的内存域为一个,且所述内存修饰符对应的内存域为所述DRAM中的内存域,所述内存域中的空闲内存块不具有充足的存储空间时,所述数据存储??榛拱ǎ?
    查找单元,用于查找获取所述DRAM的内存域中的冷内存;
    迁移单元,用于获取所述PRAM中的内存域中的空闲内存块,并将所述冷内存迁移到所述PRAM中的空闲内存块;
    第二存储单元,用于将所述待存入内存的数据存储至冷内存迁移后的所述DRAM中。
    本申请的实施例二公开了一种基于内存的数据存储装置,该装置应用于电子设备,且所述电子设备中设置有动态存储器DRAM和相变存储器PRAM。该装置中,内存域初始化??榉直鹞鯠RAM和PRAM建立相应的管理数据结构,获取分属于所述DRAM和PRAM的内存域;当需要存储数据时,虚拟内存区确定??榛袢〈嫒肽诖娴氖莸男槟饪占涞牡刂?,根据所述虚拟空间的地址确定所述待存入内存的数据所属的虚拟内存区;然后数据存储??榻龃嫒肽诖娴氖荽娲⒅劣胨鲂槟饽诖媲喽杂Φ哪诖嬗蛑械目障心诖婵橹?。其中,当所述待存入内存的数据所属的虚拟内存区为堆栈段时,与所述虚拟内存区相对应的内存域为设置在DRAM中的内存域;当所述待存入内存的数据所属的虚拟内存区为代码段、数据段或共享段时,与所述虚拟内存区相对应的内存域为设置在PRAM中的内存域。
    本申请公开的装置,根据所述DRAM和PRAM的优缺点进行数据的存储,将具有不同读写特性的数据存储至相应的存储空间内,从而能够发挥PRAM和DRAM在读、写方面的性能优势,既可以降低内存系统的静态功耗、增大内存容量,又可以降低内存系统的动态功耗。
    进一步的,现有技术中,随着集成电路关键尺寸的减小,DRAM存储器件在尺寸收缩和存储密度方面的发展遇到了极大的困难,从而给内存系统的发展带来一定的限制。本申请公开的基于内存的数据存储方法,在电子设备中同时设置有DRAM和PRAM,扩充了电子设备的存储量,在存储器件尺寸收缩的同时,仍能保持一定的存储密度,解除了对内存系统的发展的限制。
    相应的,本申请还公开了一种处理器,所述处理器应用于电子设备,所述电子设备中设置有动态存储器DRAM和相变存储器PRAM;且所述处理器中集成有如上所述的基于内存的数据存储装置。
    相应的,本申请还公开了一种电子设备,所述电子设备中设置有动态存储器DRAM和相变存储器PRAM;并且,所述电子设备中设置有如上所述的处理器。
    本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
    所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
    在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
    所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上??梢愿菔导实男枰≡衿渲械牟糠只蛘呷康ピ词迪直臼凳├桨傅哪康?。
    另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
    所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中?;谡庋睦斫?,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
    对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

    关 键 词:
    基于 内存 数据 存储 方法 装置 处理器 电子设备
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:基于内存的数据存储方法、装置、处理器和电子设备.pdf
    链接地址://www.4mum.com.cn/p-6156770.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03