CN105786725A - 基于异构混合内存的内存管理方法和*** - Google Patents

基于异构混合内存的内存管理方法和*** Download PDF

Info

Publication number
CN105786725A
CN105786725A CN201410830292.1A CN201410830292A CN105786725A CN 105786725 A CN105786725 A CN 105786725A CN 201410830292 A CN201410830292 A CN 201410830292A CN 105786725 A CN105786725 A CN 105786725A
Authority
CN
China
Prior art keywords
internal memory
nvm
application
application request
address space
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
Application number
CN201410830292.1A
Other languages
English (en)
Other versions
CN105786725B (zh
Inventor
马先明
庞观士
徐成泽
王志远
沈航
梁艳妮
陈志列
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yanxiang Smart Technology Co ltd
Original Assignee
EVOC Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EVOC Intelligent Technology Co Ltd filed Critical EVOC Intelligent Technology Co Ltd
Priority to CN201410830292.1A priority Critical patent/CN105786725B/zh
Publication of CN105786725A publication Critical patent/CN105786725A/zh
Application granted granted Critical
Publication of CN105786725B publication Critical patent/CN105786725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System (AREA)
  • Dram (AREA)

Abstract

本发明提供了一种基于异构混合内存的内存管理方法,该方法包括:接收内存申请请求;检测内存申请请求中是否存在NVM标志;如果内存申请请求中存在NVM标志,则判断内存申请请求是否符合权限要求,如果符合,则根据内存申请请求分配NVM内存,如果不符合则结束;如果内存申请请求中不存在NVM标志,则根据内存申请请求分配DRAM内存。该方法通过检测内存申请请求中是否存在NVM标志并对内存申请请求是否符合权限要求进行判断,并根据检测和判断的结果选择分配DRAM内存或NVM内存,能同时管理NVM内存和DRAM内存。此外,还提供了一种基于异构混合内存的内存管理***。

Description

基于异构混合内存的内存管理方法和***
技术领域
本发明涉及计算机技术领域,特别是涉及一种基于异构混合内存的内存管理方法和***。
背景技术
随着电阻存储器、铁电存储器、相变存储器等为代表的新兴非易失性随机存储介质(Non-VolatileMemory,NVM)技术的发展,推进了存储技术的发展,为新型的内存与存储体系结构的产生打下了良好的基础。通过把新型的NVM和动态随机访问存储器(DynamicRandomAccessMemory,DRAM)相结合,搭建混合内存架构,形成异构混合内存。异构混合内存同时具有NVM和DRAM的特点,不仅仅具备常规内存的功能,存储在DRAM中的数据在断电后会立即消失,是易失性的;同时还能发挥NVM在断电后还能保存数据的优势,充分发挥NVM非易失性的特点,是一种混合使用的新型内存。
异构混合内存采用兼容DDR3(DoubleDataRate,双倍速率同步动态随机存储器,第三代)接口的内存模块设计,满足现有工业控制设备的常规内存接口,无需引进新的工业控制设备或添加新的辅助设备,成为了一个研究热点。
异构混合内存的应用领域主要是需要大数据和大内存计算的工业控制领域,Linux操作***由于其源代码开放,功能强大又易于移植优化从而在工业控制领域被广泛采用。因此在Linux操作***上实现异构混合内存的内存管理对异构混合内存的推广有重大意义。
异构混合内存作为一种新型内存,将NVM和DRAM集成于一体,常规的内存管理方法只是对DRAM内存的管理,无法满足对NVM内存的管理和操作,所以对异构混合内存而言将不再适用,因此有必要提供一种能适用于异构混合内存的内存管理方法,能同时管理NVM内存和DRAM内存。
发明内容
基于此,有必要针对上述技术问题,提供一种基于异构混合内存的内存管理方法和***,能同时管理NVM内存和DRAM内存。
一种基于异构混合内存的内存管理方法,所述方法包括:
接收内存申请请求;
检测内存申请请求中是否存在NVM标志;
如果所述内存申请请求中存在NVM标志,则判断所述内存申请请求是否符合权限要求,如果符合,则根据所述内存申请请求分配NVM内存,如果不符合则结束;
如果所述内存申请请求中不存在NVM标志,则根据所述内存申请请求分配DRAM内存。
在其中一个实施例中,所述内存申请请求中包含申请的内存长度;在所述判断所述内存申请请求是否符合权限要求的步骤之前,还包括:
判断所述申请的内存长度是否超过NVM内存的总长度,如果没有超过,则进入所述判断所述内存申请请求是否符合权限要求的步骤;如果超过,则结束。
在其中一个实施例中,所述内存申请请求中包含申请的内存长度;所述根据所述申请请求分配NVM内存的步骤包括:
根据所述申请的内存长度申请相同大小的虚拟地址空间并进行初始化,所述虚拟地址空间包含虚拟地址空间的首地址和尾地址;
将所述虚拟地址空间的首地址转换为物理地址,根据所述物理地址和申请的内存长度在NVM中申请相同大小的NVM内存。
在其中一个实施例中,所述虚拟地址空间位于Linux的内核空间中的间接映射地址空间中。
在其中一个实施例中,所述NVM内存的物理地址预先分配在Linux内核内存管理区中的ZONE_HIGHMEN区中,与Linux内核内存管理区中的ZONE_NORMAL区相连。
一种基于异构混合内存的内存管理***,所述***包括:
接收模块,用于接收内存申请请求;
检测模块,用于检测所述内存申请请求中是否存在NVM标志;
第一判断模块,用于如果所述内存申请请求中存在NVM标志,则判断所述内存申请请求是否符合权限要求,如果符合,则根据所述内存申请请求分配NVM内存,如果不符合则不作处理;
申请模块,用于如果所述内存申请请求符合权限要求,则根据所述内存申请请求分配NVM内存;
所述申请模块还用于如果所述内存申请请求中不存在NVM标志或不符合权限要求,则根据所述内存申请请求分配DRAM内存。
在其中一个实施例中,所述内存申请请求中包含申请的内存长度,所述***还包括:
第二判断模块,用于判断所述申请的内存长度是否超过NVM内存的总长度,如果没有超过,则通知所述第一判断模块判断所述内存申请请求是否符合权限要求,如果超过,则不作处理。
在其中一个实施例中,所述内存申请请求中包含申请的内存长度,所述申请模块包括:
虚拟地址空间申请单元,用于根据所述申请的内存长度申请相同大小的虚拟地址空间并进行初始化,所述虚拟地址空间包含虚拟地址空间的首地址和尾地址;
地址转换单元,用于将所述虚拟地址空间的首地址转换为物理地址;
内存申请单元,用于根据所述物理地址和申请的内存长度在NVM中申请相同大小的NVM内存。
在其中一个实施例中,所述虚拟地址空间位于Linux的内核空间中的间接映射地址空间中。
在其中一个实施例中,所述NVM内存的物理地址预先分配在Linux内核内存管理区中的ZONE_HIGHMEN区中,与Linux内核内存管理区中的ZONE_NORMAL区相连。
上述基于异构混合内存的内存管理方法和***,通过检测内存申请请求中是否存在NVM标志,并在内存申请请求中存在NVM标志时进一步对内存申请请求是否符合权限要求进行判断,并根据检测和判断的结果选择分配DRAM内存或NVM内存。这种内存管理方法和***能兼容常规DRAM内存的申请和分配,同时能够引入新型的NVM内存的申请和分配,从而能同时管理NVM内存和DRAM内存,满足异构混合内存的使用。
附图说明
图1为一个实施例中异构混合内存的接口图;
图2为一个实施例中基于异构混合内存的内存管理方法的流程图;
图3为另一个实施例中基于异构混合内存的内存管理方法的流程图;
图4为一个实施例中根据申请请求分配NVM内存的流程图;
图5为一个实施例中64位Linux***中虚拟地址空间的分布图;
图6为一个实施例中异构混合内存的物理地址空间分布图;
图7为一个实施例中基于异构混合内存的内存管理***的结构框图;
图8为另一个实施例中基于异构混合内存的内存管理***的结构框图;
图9为一个实施例中申请模块的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
异构混合内存采用与DDR3(DoubleDataRate,双倍速率同步动态随机存储器,第三代)接口电路一致的物理连接方式。如图1所示,为异构混合内存的接口图。该内存模块通过JEDEC(JointElectronDeviceEngineeringCouncil,联合电子设备工程委员会)标准接口连接器***到常用的DDR3接口电路上使用,操作***向异构混合内存传递的地址(Address,Addr)、命令(Command,Cmd)和数据(Data)等信息可以通过接口电路输入到控制器(Controller),Controller通过所接收到的数据及内部逻辑来控制DRAM内存和NVM内存。其中Controller可以采用MCU(MicroControlUnit,微控制单元)、FPGA(Field-ProgrammableGateArray,现场可编程门阵列)、CPLD(ComplexProgrammableLogicDevice,复杂可编程逻辑器件)或ARM(AdvancedRISCMachine,高级精简指令集机器)等处理器来实现,依据DRAM和NVM的各自特性提供相应的读写控制和时序操作。本发明就是在如上所述的接口环境下实现的基于异构混合内存的内存管理方法和***。
在一个实施例中,如图2所示,提供了一种基于异构混合内存的内存管理方法,该方法包括:
步骤S110,接收内存申请请求。
本实施例中,操作***驱动、库函数及应用程序都可能会需要申请内存,在申请内存时会向操作***内核发送内存申请请求,操作***内核会根据接收到的内存申请请求来分配内存。
步骤S120,检测内存申请请求中是否存在NVM标志,若存在则进入步骤S130,否则进入步骤S150。
本实施例中,在内存申请请求中可能有NVM标志位,比如保存在内存申请请求的最后一位。如果检测出内存申请请求中存在NVM标志位,则表明需要申请NVM内存。如果没有,则表明需要申请DRAM内存。
步骤S130,判断内存申请请求是否符合权限要求,若符合则进入步骤S140,否则结束。
用户权限是Linux安全性的一个方面,不同用户所具有的权限也不同。其中根用户可以操作***中的任何文件和命令,拥有最高权限。可以根据需要规定哪些用户有权限分配NVM内存。本实施例中,异构混合内存中的NVM内存的申请只允许根用户才能操作,其他用户没有申请NVM内存的权限。如果内存申请请求是根用户发送的,则判断为符合权限要求,否则不符合权限要求。
步骤S140,根据内存申请请求分配NVM内存。
本实施例中,可预先将NVM内存和DRAM内存进行统一编址,并以物理页面为单位进行分页,比如每个物理页面的大小默认为4KB。并将NVM内存和DRAM内存划分到不同的Linux内核内存管理区中,Linux内核内存管理区分为ZONE_DMA、ZONE_NORMAL和ZONE_HIGHMEM,NVM内存可以划分到任一个内存管理区中。申请请求中可包含一些信息,比如申请的内存长度、申请的内存管理区类型、申请的内存连续性要求等。其中,申请的内存长度用来确定需要分配的内存大小,申请的内存管理区类型用来确定在以上哪个内存管理区中分配NVM内存,申请的内存连续性要求用来确定是否分配连续的内存。Linux内核可根据这些信息实现内存分配。
步骤S150,根据内存申请请求分配DRAM内存。
如上所述,预先将NVM内存和DRAM内存进行统一编址,并以物理页面为单位进行分页,比如每个物理页面的大小默认为4KB。并将NVM内存和DRAM内存划分到不同的Linux内核内存管理区中,Linux内核内存管理区分为ZONE_DMA、ZONE_NORMAL和ZONE_HIGHMEM,DRAM内存可以划分到任一个内存管理区中。申请请求中可包含一些信息,比如申请的内存长度、申请的内存管理区类型、申请的内存连续性要求等。其中,申请的内存长度用来确定需要分配的内存大小,申请的内存管理区类型用来确定在以上哪个内存管理区中分配DRAM内存,申请的内存连续性要求用来确定是否分配连续的内存。Linux内核可根据这些信息实现内存分配。
本实施例中,通过检测内存申请请求中是否存在NVM标志,并在内存申请请求中存在NVM标志时进一步对内存申请请求是否符合权限要求进行判断,并根据检测和判断的结果选择分配DRAM内存或NVM内存。这种内存管理方法和***能兼容常规DRAM内存的申请和分配,同时能够引入新型的NVM内存的申请和分配,从而能同时管理NVM内存和DRAM内存,满足异构混合内存的使用。
另外,在分配NVM内存之前,判断内存申请请求是否符合权限要求,只有在内存申请请求符合权限要求的情况下,例如保证只有根用户才能请求分配NVM内存,确保了只有最高权限的用户才能存储在非易失性存储空间中,避免了不必要的存储空间的浪费,也能保证安全性。
在另一个实施例中,如图3所示,提供了一种基于异构混合内存的内存管理方法,该方法包括:
步骤S210,接收内存申请请求。
步骤S220,检测内存申请请求中是否存在NVM标志,若存在则进入步骤S230,否则进入步骤S260。
步骤S230,判断申请的内存长度是否超过NVM内存的总长度,如果没有超过,则进入步骤S240;如果超过,则结束。
本实施例中,内存申请请求中包含申请的内存长度,如果申请的内存长度超过NVM内存的总长度,则NVM内存无法满足内存申请请求,则可以直接结束此次申请,返回一个分配失败的标志。
步骤S240,判断内存申请请求是否符合权限要求,若符合则进入步骤S250,否则结束。
步骤S250,根据内存申请请求分配NVM内存。
步骤S260,根据内存申请请求分配DRAM内存。
本实施例中,在申请的内存长度超过NVM内存的总容量所允许的最大值时,表明NVM内存无法满足其存储要求,可直接结束。这样,可以提高NVM内存分配的效率。
在一个实施例中,内存申请请求中包含申请的内存长度。如图4所示,根据申请请求分配NVM内存的步骤包括:
步骤S251,根据申请的内存长度申请相同大小的虚拟地址空间并进行初始化,所述虚拟地址空间包含虚拟地址空间的首地址和尾地址。
步骤S252,将虚拟地址空间的首地址转换为物理地址。
步骤S253,根据物理地址和申请的内存长度在NVM中申请相同大小的NVM内存。
异构混合内存的应用领域主要针对工业控制领域大数据和大内存计算方面的应用,其寻址空间较大,为了提高大数据访问的可靠性,异构混合内存往往使用在64位处理器的***上。因此在64位的Linux***上实现异构混合内存的内存管理对异构混合内存的推广有重大意义。以下以64位的Linux***为例来详细说明本发明实施例所提供的异构混合内存的内存管理方法的原理。
如图5所示,为64位的Linux虚拟地址空间的分布图。64位Linux***中,虚拟地址空间包括128T用户空间和128T内核空间,在用户空间和内核空间之间是一个巨大的空洞。其中,从0x0000,0000,0000,0000到0x0000,7FFFF,FFFF,F000共128T的虚拟地址区间为用户空间,0xFFFF,8000,0000,0000以上的虚拟地址空间共128T为内核空间,而从地址0x0000,7FFF,FFFF,F000到0xFFFF,8000,0000,0000之间是一个巨大的空洞,是为以后的扩展预留的。
在内核空间中,从地址0xFFFF,8800,0000,0000到0xFFFF,C7FF,FFFF,FFFF共64T的虚拟地址空间可以直接和物理内存进行映射,也就是和异构混合内存中的DRAM内存进行直接映射,这与传统的Linux内核虚拟地址空间的分布一致。
进一步的,在内核空间中,从地址0xFFFF,C900,0000,0000到0xFFFF,C8FF,FFFF,FFFF之间的32T地址空间是Linux的内核空间中的间接映射地址空间。所谓间接映射地址空间,是指不直接与物理内存进行映射,这个部分的地址空间给预设函数使用,通过预设函数来申请虚拟地址空间。由于这部分虚拟地址空间不与物理内存直接映射,因此申请到的虚拟地址空间不能通过简单的线性关系得到物理地址,而需按照映射关系转换为物理地址,从而根据转换得到的物理地址来分配内存。
预设函数包括vmalloc函数、ioremap函数和nvmmalloc函数,其中vmalloc函数和ioremap是与DRAM内存相关的函数,可以调用vmalloc来分配DRAM内存,调用ioremap把I/O(input/output,输入输出端口)接口的DRAM内存映射到内核的虚拟地址空间。而nvmmalloc函数是新增加的用来分配NVM内存的。这三个函数分配的虚拟地址空间在上述32T的空间中动态随意,没有严格的划分,它们三个共同使用这块地址,直到这块地址用尽为止。
本实施例中,内存申请请求中包含申请的内存长度,例如size参数用来标识申请的内存长度,其作为nvmmalloc函数的输入参数,通过nvmmalloc函数来分配NVM内存。当nvmmalloc函数被调用时,则根据输入参数size在虚拟地址空间中申请相同大小的空间并进行初始化,初始化即对申请的空间中的值进行清0。nvmmalloc函数返回的是申请的虚拟地址空间的首地址。具体的,nvmmalloc函数申请的虚拟地址空间位于上述Linux***的内核空间中的间接映射地址空间中。
另外,还可以定义nvmmalloc函数的其他参数,如定义flags表示某块虚拟地址空间是否已被分配,当某块虚拟地址空间已被分配时对它进行标记,防止重复分配。还可定义nvmflags表示分配的虚拟地址空间是与NVM内存映射的。
同时,nvmmalloc函数被调用时会触发异构混合内存中的控制器,控制器将虚拟地址空间的首地址转换为物理地址。具体的,Linux内核通过接口电路将虚拟地址空间的首地址发送给控制器,控制器中存有虚拟地址和物理地址的映射关系,可以将虚拟地址转换为物理地址,并根据所述物理地址和申请的内存长度在NVM中申请相同大小的NVM内存。
在一个实施例中,NVM内存的物理地址预先分配在Linux内核内存管理区中的ZONE_HIGHMEN区中,与Linux内核内存管理区中的ZONE_NORMAL区相连。
具体的,如图6所示,预先将NVM内存和DRAM内存进行统一编址,并将所有物理内存按固定大小进行分页,并将所有的物理页面划分到3类内存管理区中。ZONE_DMA区的范围是0~16M,该区域的物理页面专门供I/O设备的DMA(DirectMemoryAccess,存储器直接访问)使用。之所以需要单独管理DMA的物理页面,是因为DMA直接使用物理地址访问内存,并且需要连续的缓冲区,所以为了能够提供物理上连续的缓冲区,必须从物理地址空间专门划分一段区域用于DMA。ZONE_NORMAL区的范围是16M到60T,该区域的物理页面是与虚拟地址空间直接映射的,是DRAM内存。60T以上的空间是ZONE_HIGHMEM区,该区域的物理页面与虚拟地址空间是间接映射的。由于现有水平下,能使用的NVM存储介质访问速度低,效率不高,本实施例中没有将NVM内存和虚拟地址空间直接映射,而是将NVM内存的物理地址预先分配在ZONE_HIGHMEN区中,并与ZONE_NORMAL区相连。另外,NVM内存的大小会影响ZONE_NORMAL区的大小,其中ZONE_DMA区、ZONE_NORMAL区和NVM内存的总长度的总和为64T,比如本实施例中NVM内存为4T,那么ZONE_NORMAL区的尾地址就是60T。从60T到64T的空间是与虚拟地址空间间接映射的NVM内存,从64T到256T的空间与传统的高端内存一致,可使用传统的方法分配与使用这段内存。
本实施例中,在64位的Linux***中将NVM内存与DRAM内存进行统一合理的分布,并通过控制器高效的由虚拟地址找到对应的物理地址,可快速的分配NVM内存和DRAM内存。
如图7所示,在一个实施例中,提供了一种基于异构混合内存的内存管理***,包括:
接收模块310,用于接收内存申请请求。
检测模块320,用于检测内存申请请求中是否存在NVM标志。
第一判断模块330,用于如果内存申请请求中存在NVM标志,则判断内存申请请求是否符合权限要求,如果符合,则根据内存申请请求分配NVM内存,如果不符合则不作处理。
申请模块340,用于如果内存申请请求符合权限要求,则根据内存申请请求分配NVM内存;还用于如果内存申请请求中不存在NVM标志或不符合权限要求,则根据内存申请请求分配DRAM内存。
内存申请请求可包含申请的内存长度、申请的内存管理区类型、申请的内存连续性要求等信息。
如图8所示,在另一个实施例中,提供了一种基于异构混合内存的内存管理***,在图7所示实施例的基础上还包括:
第二判断模块350,用于判断申请的内存长度是否超过NVM内存的总长度,如果没有超过,则通知第一判断模块330判断内存申请请求是否符合权限要求,如果超过,则不作处理。
在一个实施例中,内存申请请求中包含申请的内存长度,如图9所示,上述申请模块340包括:
虚拟地址空间申请单元341,用于根据申请的内存长度申请相同大小的虚拟地址空间并进行初始化,所述虚拟地址空间包含虚拟地址空间的首地址和尾地址;
地址转换单元342,用于将虚拟地址空间的首地址转换为物理地址;
内存申请单元343,用于根据物理地址和申请的内存长度在NVM中申请相同大小的NVM内存。
在一个实施例中,上述***的虚拟地址空间位于Linux的内核空间中的间接映射地址空间中。
在一个实施例中,上述***的NVM内存的物理地址预先分配在Linux内核内存管理区中的ZONE_HIGHMEN区中,与Linux内核内存管理区中的ZONE_NORMAL区相连。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于异构混合内存的内存管理方法,所述方法包括:
接收内存申请请求;
检测内存申请请求中是否存在NVM标志;
如果所述内存申请请求中存在NVM标志,则判断所述内存申请请求是否符合权限要求,如果符合,则根据所述内存申请请求分配NVM内存,如果不符合则结束;
如果所述内存申请请求中不存在NVM标志,则根据所述内存申请请求分配DRAM内存。
2.根据权利要求1所述的方法,其特征在于,所述内存申请请求中包含申请的内存长度;在所述判断所述内存申请请求是否符合权限要求的步骤之前,还包括:
判断所述申请的内存长度是否超过NVM内存的总长度,如果没有超过,则进入所述判断所述内存申请请求是否符合权限要求的步骤;如果超过,则结束。
3.根据权利要求1所述的方法,其特征在于,所述内存申请请求中包含申请的内存长度;所述根据所述申请请求分配NVM内存的步骤包括:
根据所述申请的内存长度申请相同大小的虚拟地址空间并进行初始化,所述虚拟地址空间包含虚拟地址空间的首地址和尾地址;
将所述虚拟地址空间的首地址转换为物理地址,根据所述物理地址和申请的内存长度在NVM中申请相同大小的NVM内存。
4.根据权利要求3所述的方法,其特征在于,所述虚拟地址空间位于Linux的内核空间中的间接映射地址空间中。
5.根据权利要求1所述的方法,其特征在于,所述NVM内存的物理地址预先分配在Linux内核内存管理区中的ZONE_HIGHMEN区中,与Linux内核内存管理区中的ZONE_NORMAL区相连。
6.一种基于异构混合内存的内存管理***,其特征在于,所述***包括:
接收模块,用于接收内存申请请求;
检测模块,用于检测所述内存申请请求中是否存在NVM标志;
第一判断模块,用于如果所述内存申请请求中存在NVM标志,则判断所述内存申请请求是否符合权限要求,如果符合,则根据所述内存申请请求分配NVM内存,如果不符合则不作处理;
申请模块,用于如果所述内存申请请求符合权限要求,则根据所述内存申请请求分配NVM内存;
所述申请模块还用于如果所述内存申请请求中不存在NVM标志,则根据所述内存申请请求分配DRAM内存。
7.根据权利要求6所述的***,其特征在于,所述内存申请请求中包含申请的内存长度,所述***还包括:
第二判断模块,用于判断所述申请的内存长度是否超过NVM内存的总长度,如果没有超过,则通知所述第一判断模块判断所述内存申请请求是否符合权限要求,如果超过,则不作处理。
8.根据权利要求6所述的***,其特征在于,所述内存申请请求中包含申请的内存长度,所述申请模块包括:
虚拟地址空间申请单元,用于根据所述申请的内存长度申请相同大小的虚拟地址空间并进行初始化,所述虚拟地址空间包含虚拟地址空间的首地址和尾地址;
地址转换单元,用于将所述虚拟地址空间的首地址转换为物理地址;
内存申请单元,用于根据所述物理地址和申请的内存长度在NVM中申请相同大小的NVM内存。
9.根据权利要求8所述的***,其特征在于,所述虚拟地址空间位于Linux的内核空间中的间接映射地址空间中。
10.根据权利要求6所述的***,其特征在于,所述NVM内存的物理地址预先分配在Linux内核内存管理区中的ZONE_HIGHMEN区中,与Linux内核内存管理区中的ZONE_NORMAL区相连。
CN201410830292.1A 2014-12-25 2014-12-25 基于异构混合内存的内存管理方法和*** Active CN105786725B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410830292.1A CN105786725B (zh) 2014-12-25 2014-12-25 基于异构混合内存的内存管理方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410830292.1A CN105786725B (zh) 2014-12-25 2014-12-25 基于异构混合内存的内存管理方法和***

Publications (2)

Publication Number Publication Date
CN105786725A true CN105786725A (zh) 2016-07-20
CN105786725B CN105786725B (zh) 2020-10-27

Family

ID=56389627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410830292.1A Active CN105786725B (zh) 2014-12-25 2014-12-25 基于异构混合内存的内存管理方法和***

Country Status (1)

Country Link
CN (1) CN105786725B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569960A (zh) * 2016-11-08 2017-04-19 郑州云海信息技术有限公司 一种混合主存的末级缓存管理方法
CN106648938A (zh) * 2016-12-30 2017-05-10 郑州云海信息技术有限公司 一种Linux***应用程序内存管理方法及***
WO2017107163A1 (zh) * 2015-12-25 2017-06-29 研祥智能科技股份有限公司 基于异构混合内存的内存管理方法和***
CN106909515A (zh) * 2017-02-11 2017-06-30 郑州云海信息技术有限公司 面向混合主存的多核共享末级缓存管理方法及装置
CN107193497A (zh) * 2017-05-22 2017-09-22 电子科技大学 一种基于ram和nvm混合内存的汽车ecu数据动态管理方法
CN109977037A (zh) * 2017-12-28 2019-07-05 龙芯中科技术有限公司 一种dma数据传输方法及***
CN117234432A (zh) * 2023-11-14 2023-12-15 苏州元脑智能科技有限公司 一种混合内存***的管理方法、管理装置、设备及介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022139990A1 (en) * 2020-12-21 2022-06-30 Arris Enterprises Llc Method and system for memory management on the basis of zone allocations and optimization using improved lmk

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060167895A1 (en) * 2005-01-25 2006-07-27 Shim Sang Y Database system and method for adapting a main database components in a main memory thereof
CN103092534A (zh) * 2013-02-04 2013-05-08 中国科学院微电子研究所 一种内存结构的调度方法和装置
CN103793332A (zh) * 2014-02-28 2014-05-14 中国科学院微电子研究所 基于内存的数据存储方法、装置、处理器和电子设备
CN104102590A (zh) * 2014-07-22 2014-10-15 浪潮(北京)电子信息产业有限公司 一种异构内存管理方法及装置
CN104239225A (zh) * 2014-09-04 2014-12-24 浪潮(北京)电子信息产业有限公司 一种管理异构混合内存的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060167895A1 (en) * 2005-01-25 2006-07-27 Shim Sang Y Database system and method for adapting a main database components in a main memory thereof
CN103092534A (zh) * 2013-02-04 2013-05-08 中国科学院微电子研究所 一种内存结构的调度方法和装置
CN103793332A (zh) * 2014-02-28 2014-05-14 中国科学院微电子研究所 基于内存的数据存储方法、装置、处理器和电子设备
CN104102590A (zh) * 2014-07-22 2014-10-15 浪潮(北京)电子信息产业有限公司 一种异构内存管理方法及装置
CN104239225A (zh) * 2014-09-04 2014-12-24 浪潮(北京)电子信息产业有限公司 一种管理异构混合内存的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李功: "基于PDRAM混合内存架构的Linux内存管理算法", 《微电子学与计算机》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017107163A1 (zh) * 2015-12-25 2017-06-29 研祥智能科技股份有限公司 基于异构混合内存的内存管理方法和***
CN106569960A (zh) * 2016-11-08 2017-04-19 郑州云海信息技术有限公司 一种混合主存的末级缓存管理方法
CN106569960B (zh) * 2016-11-08 2019-05-28 郑州云海信息技术有限公司 一种混合主存的末级缓存管理方法
CN106648938A (zh) * 2016-12-30 2017-05-10 郑州云海信息技术有限公司 一种Linux***应用程序内存管理方法及***
CN106648938B (zh) * 2016-12-30 2021-01-12 苏州浪潮智能科技有限公司 一种Linux***应用程序内存管理方法及***
CN106909515A (zh) * 2017-02-11 2017-06-30 郑州云海信息技术有限公司 面向混合主存的多核共享末级缓存管理方法及装置
CN107193497A (zh) * 2017-05-22 2017-09-22 电子科技大学 一种基于ram和nvm混合内存的汽车ecu数据动态管理方法
CN109977037A (zh) * 2017-12-28 2019-07-05 龙芯中科技术有限公司 一种dma数据传输方法及***
CN109977037B (zh) * 2017-12-28 2021-01-22 龙芯中科技术股份有限公司 一种dma数据传输方法及***
CN117234432A (zh) * 2023-11-14 2023-12-15 苏州元脑智能科技有限公司 一种混合内存***的管理方法、管理装置、设备及介质
CN117234432B (zh) * 2023-11-14 2024-02-23 苏州元脑智能科技有限公司 一种混合内存***的管理方法、管理装置、设备及介质

Also Published As

Publication number Publication date
CN105786725B (zh) 2020-10-27

Similar Documents

Publication Publication Date Title
CN105786725A (zh) 基于异构混合内存的内存管理方法和***
CN102375788B (zh) 为具有非易失性存储器的***动态地分配功率预算的方法及装置
TWI645334B (zh) 用於管理操作狀態資料之方法、記憶體模組及主機裝置
US20180267706A1 (en) Storage system, computer program product, and method for managing a hybrid memory device system
WO2017084565A1 (zh) 存储数据访问方法及相关的控制器、设备、主机和***
US11644994B2 (en) Data migration method, host, and solid state disk
CN105830059A (zh) 文件访问方法、装置及存储设备
US11010079B2 (en) Concept for storing file system metadata within solid-stage storage devices
US8285920B2 (en) Memory device with dynamic controllable physical logical mapping table loading
CN110737608B (zh) 一种数据操作方法、装置及***
US11775188B2 (en) Communications to reclaim storage space occupied by proof of space plots in solid state drives
CN103927130B (zh) 基于内存管理单元mmu的统一内外存架构
US11960756B2 (en) Management of storage space in solid state drives to support proof of space activities
CN105335308A (zh) 对存储设备的访问信息处理方法和装置、***
KR20200139433A (ko) 컨트롤러의 동작 방법 및 메모리 시스템
US20230185738A1 (en) Automated Participation of Solid State Drives in Activities Involving Proof of Space
CN116342365A (zh) 用于经由使用可用设备存储器扩展***存储器的技术
US20220100406A1 (en) Hard disk control method and related device
WO2017107163A1 (zh) 基于异构混合内存的内存管理方法和***
CN113296886A (zh) 虚拟机内存管理方法、装置及***、物理机
CN204129729U (zh) 一种基于DMA传输的Flash存储控制***
CN103164344B (zh) 一种闪存存储设备中数据管理的方法及装置
CN104750425A (zh) 一种存储***及其非易失性存储器的控制方法
CN103116640A (zh) Fat文件***格式化方法及装置
CN115756327A (zh) 一种固态硬盘及其数据写方法、装置、主机和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230713

Address after: 518057 1701, Yanxiang science and technology building, 31 Gaoxin middle Fourth Road, Maling community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen Yanxiang Smart Technology Co.,Ltd.

Address before: 518057 Guangdong city of Shenzhen province Nanshan District high in the four EVOC Technology Building No. 31

Patentee before: EVOC INTELLIGENT TECHNOLOGY Co.,Ltd.