CN102508787A - 混合结构内存的内存分配系统及方法 - Google Patents
混合结构内存的内存分配系统及方法 Download PDFInfo
- Publication number
- CN102508787A CN102508787A CN201110387984XA CN201110387984A CN102508787A CN 102508787 A CN102508787 A CN 102508787A CN 201110387984X A CN201110387984X A CN 201110387984XA CN 201110387984 A CN201110387984 A CN 201110387984A CN 102508787 A CN102508787 A CN 102508787A
- Authority
- CN
- China
- Prior art keywords
- memory
- zone
- dynamic random
- phase change
- allocation
- 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.)
- Granted
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种混合结构内存的内存分配系统及方法,所述系统包括:具有PCM内存区域和DRAM内存区域的混合结构内存,内存区域容量查看模块,信息判断模块,以及内存分配模块。所述方法包括:查看所述混合结构内存各内存区域的剩余容量;若各内存区域都有剩余容量;则判断程序段信息的种类并将只读属性的程序段优先分配到PCM内存区域;将可读可写的程序段优先分配到DRAM内存区域;将程序运行中分配的堆和栈优先建立在DRAM内存区域;若两种内存区域中任一方容量没有剩余;则程序运行需要的内存全部占用另一方的内存区域资源。本发明将PRAM和DRAM按其自身特点进行管理使用,使得PRAM和DRAM的内存组合可以发挥更大的作用。
Description
技术领域
本发明涉及计算机科学技术领域,尤其涉及一种混合结构内存的内存分配系统及方法。
背景技术
一种基于相变存储(Phase-Change Memory,PCM)的相变随机存储器(PRAM)技术被认为是替代动态随机存储器(DRAM)的候选技术,其具有高密度,非易失,低功耗等特点。与DRAM相比,PRAM可以在更小的尺寸上存储更多的内容;速度方面,PRAM的读速度比DRAM稍慢,写速度比DRAM慢几十倍,但整体能耗比DRAM低的多。但是,PRAM有一个明显的缺点,就是其存储单元的写次数有限,目前的技术可以支持PRAM存储单元重复写108次。针对这一问题,研究人员也提出了很多技术方案来弥补不足,使得PRAM真正发挥自身的优点。这些技术方案主要是一些混合架构并结合减少冗余写,磨损均衡等技术组成,进而提高PRAM的使用寿命。
在操作系统中,加载器负责把应用程序从磁盘加载到内存中运行。加载器一般分为如下几个步骤来完成程序的加载。1)从文件中读取头部信息,计算需要多少内存;2)按照需要申请内存,将程序复制到相应的段中;3)将bss段填充为0;4)创建程序运行需要的堆栈段;5)设置环境变量和相关运行参数;6)跳转到代码段,运行程序。分析加载过程,可以看出步骤2)和步骤4)会向操作系统申请分配物理内存。
在Linux作为内核的操作系统中,通用的可执行文件格式是ELF(Executable and Linkable Format)文件格式,Windows操作系统上采用的是PE(Portable Executable)文件格式。下面以ELF文件格式举例来分析程序的加载。一个典型的ELF文件由程序头信息和各种段信息组成。不同的段具有不同的属性,如保存了程序运行代码的.text代码段为只读属性,而保存了程序数据的.data数据段为可读可写段。当内存是混合内存架构(DRAM和PRAM混合使用)时,操作系统原有的内存管理方法将不会对PRAM内存进行控制,使之使用寿命缩短,所以需要采用新的内存分配方法来保证PRAM的鲁棒性。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:提供一种混合结构内存的内存分配系统及方法,使得在计算机的操作系统中能够较好的支持混合内存架构,将PRAM和DRAM按其自身特点进行管理使用,使得PRAM和DRAM的内存组合可以发挥更大的作用。
(二)技术方案
为解决上述问题,一方面,本发明提供了一种混合结构内存的内存分配系统,包括:
混合结构内存,包括相变存储内存区域和动态随机存储内存区域,
内存区域容量查看模块,用于查看所述相变存储内存区域和动态随机存储内存区域的剩余容量;
信息判断模块,用于判断待处理文件程序段的读写属性;
内存分配模块,用于根据所述信息判断模块判断的待处理文件程序段的读写属性:
将只读属性的程序段优先分配到相变存储内存区域;
将可读可写的程序段优先分配到动态随机存储内存区域。
优选地,所述系统还包括加载器模块,用于将待处理文件程序从磁盘加载到内存中运行。
另一方面,本发明还提供了一种混合结构内存的内存分配方法,包括:
S1:查看所述混合结构内存中相变存储内存区域和动态随机存储内存区域的剩余容量;
若所述相变存储内存区域和动态随机存储内存区域都有剩余容量则转到步骤S2;
若所述相变存储内存区域和动态随机存储内存区域中任一方容量没有剩余则转到步骤S4;
S2:判断待处理文件程序段的读写属性;
S3:根据所述判断的待处理文件程序段的读写属性:
将只读属性的程序段优先分配到相变存储内存区域;
将可读可写的程序段优先分配到动态随机存储内存区域;
S4:程序运行需要的内存全部占用另一方有剩余容量的内存区域资源。
优选地,所述待处理文件为可执行文件,所述步骤S3具体为:
根据判断的可执行文件程序段的读写属性:
将可执行文件的只读属性的程序段优先分配到相变存储内存区域;
将可执行文件的可读可写的程序段优先分配到动态随机存储内存区域;
将程序运行中分配的堆和栈优先建立在动态随机存储内存区域。
优选地,所述可执行文件为Linux操作系统的ELF格式文件。
优选地,所述可执行文件为Windows操作系统的PE格式文件。
当然,除了上述几种文件形式以外,本发明的待处理文件还可以为其它具有只读和可写可读属性的程序段的文件。
(三)有益效果
本发明的内存分配系统及方法,使得在计算机的操作系统中能够较好的支持混合内存架构,将PRAM和DRAM按其自身特点进行管理使用,既使得在一定尺寸的内存上存储更多的内容,又延长了PRAM使用寿命、保证PRAM的鲁棒性。
附图说明
图1为根据本发明内存分配方法的流程示意图。
具体实施方式
下面结合附图及实施例对本发明进行详细说明如下。
实施例一:
本实施例记载了一种混合结构内存的内存分配系统,包括:
混合结构内存,包括相变存储内存区域和动态随机存储内存区域,
内存区域容量查看模块,用于查看所述相变存储内存区域和动态随机存储内存区域的剩余容量;
信息判断模块,用于判断程序段信息的种类;
内存分配模块,用于根据所述信息判断模块判断的程序段信息种类,
将可执行文件的只读属性的程序段优先分配到相变存储内存区域;
将可执行文件的可读可写的程序段优先分配到动态随机存储内存区域;
将程序运行中分配的堆和栈优先建立在动态随机存储内存区域。
实施例二:
如图1所示,本实施例记载了一种混合结构内存的内存分配方法,包括:
S1:查看所述混合结构内存中相变存储内存区域和动态随机存储内存区域的剩余容量;
若所述相变存储内存区域和动态随机存储内存区域都有剩余容量则转到步骤S2;
若所述相变存储内存区域和动态随机存储内存区域中任一方容量没有剩余则转到步骤S4;
S2:判断程序段信息的种类;
S3:根据所述判断的程序段信息种类:
将可执行文件的只读属性的程序段(例如ELF文件中的.text代码段)优先分配到相变存储内存区域;
将可执行文件的可读可写的程序段(例如ELF文件中的保存了程序数据的.data数据段)优先分配到动态随机存储内存区域;
将程序运行中分配的堆和栈优先建立在动态随机存储内存区域;
S4:程序运行需要的内存全部占用另一方有剩余容量的内存区域资源。
本发明记载的系统和方法使得在计算机的操作系统中能够较好的支持混合内存架构,将PRAM和DRAM按其自身特点进行管理使用,使得PRAM和DRAM的内存组合可以发挥更大的作用。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (6)
1.一种混合结构内存的内存分配系统,其特征在于,包括:
混合结构内存,包括相变存储内存区域和动态随机存储内存区域,
内存区域容量查看模块,用于查看所述相变存储内存区域和动态随机存储内存区域的剩余容量;
信息判断模块,用于判断待处理文件程序段的读写属性;
内存分配模块,用于根据所述信息判断模块判断的待处理文件程序段的读写属性:
将只读属性的程序段优先分配到相变存储内存区域;
将可读可写的程序段优先分配到动态随机存储内存区域。
2.如权利要求1所述的内存分配系统,其特征在于,所述系统还包括加载器模块,用于将待处理文件程序从磁盘加载到内存中运行。
3.一种混合结构内存的内存分配方法,其特征在于,包括:
S1:查看所述混合结构内存中相变存储内存区域和动态随机存储内存区域的剩余容量;
若所述相变存储内存区域和动态随机存储内存区域都有剩余容量则转到步骤S2;
若所述相变存储内存区域和动态随机存储内存区域中任一方容量没有剩余则转到步骤S4;
S2:判断待处理文件程序段的读写属性;
S3:根据所述判断的待处理文件程序段的读写属性:
将只读属性的程序段优先分配到相变存储内存区域;
将可读可写的程序段优先分配到动态随机存储内存区域;
S4:程序运行需要的内存全部占用另一方有剩余容量的内存区域资源。
4.如权利要求3所述内存分配方法,其特征在于,所述待处理文件为可执行文件,所述步骤S3具体为:
根据判断的可执行文件程序段的读写属性:
将可执行文件的只读属性的程序段优先分配到相变存储内存区域;
将可执行文件的可读可写的程序段优先分配到动态随机存储内存区域;
将程序运行中分配的堆和栈优先建立在动态随机存储内存区域。
5.如权利要求4所述的内存分配方法,其特征在于,所述可执行文件为Linux操作系统的ELF格式文件。
6.如权利要求4所述的内存分配方法,其特征在于,所述可执行文件为Windows操作系统的PE格式文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110387984.XA CN102508787B (zh) | 2011-11-29 | 2011-11-29 | 混合结构内存的内存分配系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110387984.XA CN102508787B (zh) | 2011-11-29 | 2011-11-29 | 混合结构内存的内存分配系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102508787A true CN102508787A (zh) | 2012-06-20 |
CN102508787B CN102508787B (zh) | 2014-09-03 |
Family
ID=46220878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110387984.XA Active CN102508787B (zh) | 2011-11-29 | 2011-11-29 | 混合结构内存的内存分配系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102508787B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831087A (zh) * | 2012-07-27 | 2012-12-19 | 国家超级计算深圳中心(深圳云计算中心) | 基于混合存储器的数据读写处理方法和装置 |
CN103020551A (zh) * | 2012-12-21 | 2013-04-03 | 清华大学 | 一种内存架构 |
CN103092534A (zh) * | 2013-02-04 | 2013-05-08 | 中国科学院微电子研究所 | 一种内存结构的调度方法和装置 |
CN103810112A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失性内存系统及其管理方法 |
CN104102590A (zh) * | 2014-07-22 | 2014-10-15 | 浪潮(北京)电子信息产业有限公司 | 一种异构内存管理方法及装置 |
CN104156316A (zh) * | 2014-08-06 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种Hadoop集群批处理作业的方法及系统 |
CN104156318A (zh) * | 2014-08-11 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种基于异构融合架构的内存管理方法及装置 |
CN104239225A (zh) * | 2014-09-04 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | 一种管理异构混合内存的方法及装置 |
CN104317739A (zh) * | 2014-10-28 | 2015-01-28 | 清华大学 | 一种混合内存页面调度方法及装置 |
WO2015010646A1 (zh) * | 2013-07-25 | 2015-01-29 | 华为技术有限公司 | 混合内存的数据访问方法、模块、处理器及终端设备 |
CN105103138A (zh) * | 2013-04-05 | 2015-11-25 | 大陆汽车系统公司 | 用于实时应用的嵌入式存储器管理方案 |
CN103885724B (zh) * | 2014-03-14 | 2016-08-24 | 山东大学 | 基于相变存储器的存储系统结构及其损耗均衡算法 |
CN103927130B (zh) * | 2014-03-14 | 2016-10-05 | 山东大学 | 基于内存管理单元mmu的统一内外存架构 |
CN103793332B (zh) * | 2014-02-28 | 2017-03-01 | 中国科学院微电子研究所 | 基于内存的数据存储方法、装置、处理器和电子设备 |
CN108139978A (zh) * | 2015-10-01 | 2018-06-08 | 拉姆伯斯公司 | 具有高速缓存的存储器模块操作的存储器系统 |
WO2023051000A1 (zh) * | 2021-09-30 | 2023-04-06 | 华为技术有限公司 | 内存管理方法、装置、处理器及计算设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236483A (zh) * | 2007-02-01 | 2008-08-06 | 三星电子株式会社 | 合作存储器管理 |
CN101329894A (zh) * | 2008-07-24 | 2008-12-24 | 中国科学院上海微系统与信息技术研究所 | 一种新型存储系统 |
US20090150641A1 (en) * | 2007-12-06 | 2009-06-11 | David Flynn | Apparatus, system, and method for efficient mapping of virtual and physical addresses |
CN101673188A (zh) * | 2008-09-09 | 2010-03-17 | 上海华虹Nec电子有限公司 | 一种固态硬盘的数据存取方法 |
CN101727976A (zh) * | 2008-10-15 | 2010-06-09 | 晶天电子(深圳)有限公司 | 一种多层闪存装置、固态硬盘和分割非易失性存储器系统 |
CN101930797A (zh) * | 2009-06-19 | 2010-12-29 | 海力士半导体有限公司 | 融合式存储器器件及系统 |
CN102043591A (zh) * | 2010-11-24 | 2011-05-04 | 清华大学 | Pram的写操作方法 |
US20110119432A1 (en) * | 2009-11-19 | 2011-05-19 | Sangyong Yoon | Nonvolatile memory devices having improved read performance resulting from data randomization during write operations |
US20110219178A1 (en) * | 2003-06-24 | 2011-09-08 | Micron Technology, Inc. | Erase block data splitting |
-
2011
- 2011-11-29 CN CN201110387984.XA patent/CN102508787B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110219178A1 (en) * | 2003-06-24 | 2011-09-08 | Micron Technology, Inc. | Erase block data splitting |
CN101236483A (zh) * | 2007-02-01 | 2008-08-06 | 三星电子株式会社 | 合作存储器管理 |
US20090150641A1 (en) * | 2007-12-06 | 2009-06-11 | David Flynn | Apparatus, system, and method for efficient mapping of virtual and physical addresses |
CN101329894A (zh) * | 2008-07-24 | 2008-12-24 | 中国科学院上海微系统与信息技术研究所 | 一种新型存储系统 |
CN101673188A (zh) * | 2008-09-09 | 2010-03-17 | 上海华虹Nec电子有限公司 | 一种固态硬盘的数据存取方法 |
CN101727976A (zh) * | 2008-10-15 | 2010-06-09 | 晶天电子(深圳)有限公司 | 一种多层闪存装置、固态硬盘和分割非易失性存储器系统 |
CN101930797A (zh) * | 2009-06-19 | 2010-12-29 | 海力士半导体有限公司 | 融合式存储器器件及系统 |
US20110119432A1 (en) * | 2009-11-19 | 2011-05-19 | Sangyong Yoon | Nonvolatile memory devices having improved read performance resulting from data randomization during write operations |
CN102043591A (zh) * | 2010-11-24 | 2011-05-04 | 清华大学 | Pram的写操作方法 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831087B (zh) * | 2012-07-27 | 2016-05-11 | 国家超级计算深圳中心(深圳云计算中心) | 基于混合存储器的数据读写处理方法和装置 |
CN102831087A (zh) * | 2012-07-27 | 2012-12-19 | 国家超级计算深圳中心(深圳云计算中心) | 基于混合存储器的数据读写处理方法和装置 |
CN103020551B (zh) * | 2012-12-21 | 2015-12-02 | 清华大学 | 一种内存架构 |
CN103020551A (zh) * | 2012-12-21 | 2013-04-03 | 清华大学 | 一种内存架构 |
CN103092534A (zh) * | 2013-02-04 | 2013-05-08 | 中国科学院微电子研究所 | 一种内存结构的调度方法和装置 |
CN103092534B (zh) * | 2013-02-04 | 2016-01-27 | 中国科学院微电子研究所 | 一种内存结构的调度方法和装置 |
CN105103138B (zh) * | 2013-04-05 | 2018-11-16 | 大陆汽车系统公司 | 用于实时应用的嵌入式存储器管理方案 |
US10901883B2 (en) | 2013-04-05 | 2021-01-26 | Continental Automotive Systems, Inc. | Embedded memory management scheme for real-time applications |
CN105103138A (zh) * | 2013-04-05 | 2015-11-25 | 大陆汽车系统公司 | 用于实时应用的嵌入式存储器管理方案 |
CN104346293B (zh) * | 2013-07-25 | 2017-10-24 | 华为技术有限公司 | 混合内存的数据访问方法、模块、处理器及终端设备 |
WO2015010646A1 (zh) * | 2013-07-25 | 2015-01-29 | 华为技术有限公司 | 混合内存的数据访问方法、模块、处理器及终端设备 |
CN104346293A (zh) * | 2013-07-25 | 2015-02-11 | 华为技术有限公司 | 混合内存的数据访问方法、模块、处理器及终端设备 |
CN103810112B (zh) * | 2014-01-28 | 2016-08-17 | 华中科技大学 | 一种非易失性内存系统及其管理方法 |
CN103810112A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失性内存系统及其管理方法 |
CN103793332B (zh) * | 2014-02-28 | 2017-03-01 | 中国科学院微电子研究所 | 基于内存的数据存储方法、装置、处理器和电子设备 |
CN103885724B (zh) * | 2014-03-14 | 2016-08-24 | 山东大学 | 基于相变存储器的存储系统结构及其损耗均衡算法 |
CN103927130B (zh) * | 2014-03-14 | 2016-10-05 | 山东大学 | 基于内存管理单元mmu的统一内外存架构 |
CN104102590A (zh) * | 2014-07-22 | 2014-10-15 | 浪潮(北京)电子信息产业有限公司 | 一种异构内存管理方法及装置 |
CN104156316A (zh) * | 2014-08-06 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种Hadoop集群批处理作业的方法及系统 |
CN104156316B (zh) * | 2014-08-06 | 2017-04-05 | 浪潮(北京)电子信息产业有限公司 | 一种Hadoop集群批处理作业的方法及系统 |
CN104156318A (zh) * | 2014-08-11 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种基于异构融合架构的内存管理方法及装置 |
CN104239225A (zh) * | 2014-09-04 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | 一种管理异构混合内存的方法及装置 |
CN104239225B (zh) * | 2014-09-04 | 2018-02-06 | 浪潮(北京)电子信息产业有限公司 | 一种管理异构混合内存的方法及装置 |
CN104317739A (zh) * | 2014-10-28 | 2015-01-28 | 清华大学 | 一种混合内存页面调度方法及装置 |
CN108139978A (zh) * | 2015-10-01 | 2018-06-08 | 拉姆伯斯公司 | 具有高速缓存的存储器模块操作的存储器系统 |
CN108139978B (zh) * | 2015-10-01 | 2023-03-03 | 拉姆伯斯公司 | 具有高速缓存的存储器模块操作的存储器系统 |
US11836099B2 (en) | 2015-10-01 | 2023-12-05 | Rambus Inc. | Memory system with cached memory module operations |
WO2023051000A1 (zh) * | 2021-09-30 | 2023-04-06 | 华为技术有限公司 | 内存管理方法、装置、处理器及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102508787B (zh) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508787B (zh) | 混合结构内存的内存分配系统及方法 | |
TWI382421B (zh) | 混合密度記憶體儲存裝置 | |
CN104866428B (zh) | 数据存取方法和数据存取装置 | |
CN105242871A (zh) | 一种数据写入方法及装置 | |
CN104091617A (zh) | 一种闪存存储设备检测的方法及装置 | |
CN101169760B (zh) | 电子硬盘的存储空间的管理方法 | |
CN103559138A (zh) | 固态硬盘及其空间管理方法 | |
CN101644995A (zh) | 多层控制多闪存装置、存储装置和数据分割固态硬盘 | |
US8819350B2 (en) | Memory system | |
CN103942159A (zh) | 一种基于混合存储设备的数据读写方法与装置 | |
US8634243B2 (en) | Data writing method and data storage device | |
US20210209017A1 (en) | Using a common pool of blocks for user data and a system data structure | |
CN108491290B (zh) | 一种数据写入方法及装置 | |
US20130179627A1 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
CN102999441A (zh) | 一种细粒度内存访问的方法 | |
CN102520885B (zh) | 一种混合硬盘的数据管理系统 | |
US20230244394A1 (en) | Gradually Reclaim Storage Space Occupied by a Proof of Space Plot in a Solid State Drive | |
US11775188B2 (en) | Communications to reclaim storage space occupied by proof of space plots in solid state drives | |
CN106371950B (zh) | 一种实现raid级别转换的方法及装置 | |
CN102789813B (zh) | 一种控制存储设备内非最低有效位页使用的方法及装置 | |
CN101788951A (zh) | 一种网络计算机的存储系统及其存储方法 | |
CN103019624A (zh) | 一种相变内存装置 | |
CN101354660B (zh) | 嵌入式软件程序的运行方法、装置及其系统 | |
KR100895429B1 (ko) | 플래시 메모리 파일 장치 및 그 마운트 방법 | |
US11687263B2 (en) | Full die recovery in ZNS SSD |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |