CN105930280B - 一种面向非易失性内存的高效的页面组织和管理方法 - Google Patents
一种面向非易失性内存的高效的页面组织和管理方法 Download PDFInfo
- Publication number
- CN105930280B CN105930280B CN201610364236.2A CN201610364236A CN105930280B CN 105930280 B CN105930280 B CN 105930280B CN 201610364236 A CN201610364236 A CN 201610364236A CN 105930280 B CN105930280 B CN 105930280B
- Authority
- CN
- China
- Prior art keywords
- page
- nvm
- section
- dram
- chained list
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向非易失性内存的高效的页面组织和管理方法,首先用树形结构建立并组织NVM中的空闲页面的索引结构,生成磨损度索引树;然后将NVM中的空闲页面按照磨损计数值大小分成若干区间,各区间内部的空闲页面以链表的形式连接起来,形成区间链表;磨损度索引树除叶子节点以外的所有内部节点存放于DRAM中,用于快速索引;DRAM中的最后一层节点指向NVM内存页面的区间链表。本发明提供的面向非易失性内存的高效的页面组织和管理方法,解决了NVM内存页面的组织和管理方法,使得写磨损比较少的页面会被优先选择,从而达到将写操作尽可能地均匀分布到每个页面中的目的;同时在保证写磨损均衡的同时实现高性能的NVM页面的分配和回收管理;且充分利用多核架构,达到并行分配和回收。
Description
技术领域
本发明涉及计算机内存页面管理领域,特别是一种面向非易失性内存的高效的页面组织和管理方法。
背景技术
非易失性存储器(Non-Volatile Memory,NVM)有着数据掉电不丢失、高存储密度、低功耗和高速读写等特性。和传统动态随机内存(Dynamic Random Access Memory,DRAM)一样,NVM能够直接连接到***的内存总线,共享地址空间,直接通过CPU的load/store指令进行访问。然而,不同于DRAM的是,NVM存储单元的耐久度有限,其存储介质在擦写过程中会被磨损,当磨损到一定程度时,相应的存储单元就会失效。因此,如果频繁擦写地同一块NVM区域,会导致NVM在短时间内被写坏,极大地降低NVM的使用寿命。可见,如何均匀地分布对存储介质的写操作,使得各个页面的磨损次数相近,对延长NVM在计算机内存中的使用寿命具有重大意义。NVM在内存中的使用寿命决定了非易失性内存的实际使用价值。
由于NVM内存的容量大,在NVM页面管理的同时考虑NVM写磨损均衡将造成一定的性能损失。因此NVM内存的页面组织架构和管理方法的设计必须考虑到性能因素。
在已被广泛应用的多核并行的计算机***架构下,NVN内存页面的组织和管理方法需要能够适用于多核并行的体系结构,并充分利用这样并行结构提升内存管理本身的性能。内存页面管理的并行化能力将对在多核并行***的性能提升产生重要影响。
目前,以其高速的读写性能和非易失性,NVM内存被用来存放内存文件***和内存数据库的数据。其中,NVM空闲空间的管理和分配是***的重要组成部分。现有的管理方案普遍使用位图(Bit Map)、链表(Link List)和树(Tree)组织并管理空闲页。这些NVM的页面管理方案在对NVM空间的回收和分配时都没有考虑到NVM的磨损均衡,这可能导致对某些NVM的页面擦写次数过多,降低NVM内存的实际使用寿命。此外,现有的全局、中心化的内存管理数据结构,在多个进程同时需要分配/回收内存页面的情况下需要加锁,以保证数据的一致,因此会造成性能瓶颈,导致多核***不能完全发挥并发执行的优势,影响***性能。
发明内容
本发明的目的是提出一种面向非易失性内存的高效的页面组织和管理方法;该方法是一种面向动态随机存取内存(DRAM)和非易失性存储器(Non-Volatile Memory,NVM)混合内存架构中的非易失性内存的页面管理及磨损均衡的方法。
本发明的目的是通过以下技术方案来实现的:
本发明提供的一种面向非易失性内存的高效的页面组织和管理方法,包括以下步骤:
S1:用树形结构建立并组织NVM中的空闲页面的索引结构,生成磨损度索引树,所述磨损度索引树的最低一层为NVM的空闲页面;
S2:将NVM中的空闲页面按照磨损计数值大小分成若干区间,各区间内部的空闲页面以链表的形式连接起来,形成区间链表;
S3:将磨损度索引树除叶子节点外的所有内部节点存放于DRAM中,所述DRAM中最后一层节点设置有指向NVM内存页面的区间链表;
S4:对NVM页面分配采用写磨损均衡;
S5:对NVM页面回收采用写磨损均衡。
进一步,所述步骤S1中的树形结构按照NVM空闲页面的磨损计数值建立索引数据;同时,将所述树形结构根据NVM的空间大小和NVM页面的数量分为不同的层次结构的树;
在多核并行结构下,每个核使用相互独立的磨损度索引树分配和回收页面,使得NVM内存页面的管理并行执行。
进一步,所述写磨损均衡过程,具体步骤如下:
S41:搜索存放在DRAM中的磨损度索引树,找到索引树最左边的节点,找到最小主键;
S42:通过最小主键的头指针找到NVM中区间链表的起始地址,并返回该页面的地址;
S43:修改DRAM中该最小主键的头指针,使头指针指向NVM中区间链表的下一个页面。
进一步,所述写磨损均衡过程,具体步骤如下:
S51:获取回收页面的磨损计数值;
S52:搜索存放在DRAM中的磨损度索引树,在磨损度索引树的最后一层节点中找到相应的磨损计数值区间;
S53:将回收的页面***步骤S8中找到的NVM区间的尾部。
进一步,所述索引数据包括索引初始化,所述索引初始化具体步骤如下:
步骤801,开始;
步骤802,判断NVM中是否有空闲页,如果没有,则该过程结束于步骤811;
步骤803,如果有,扫描NVM页面的空闲链表;
步骤804,将扫描的每个页面的地址和磨损计数信息读入DRAM;
步骤805,判断DRAM中是否已经存在磨损度索引树,如果没有,执行步骤806;否则执行步骤807;
步骤806,创建一个新的磨损度索引树根节点,并把该节点的指针保存到NVM;
步骤807,从磨损度索引树中找到该页面的正确位置,并***数据,即需要保证DRAM中节点的主键有序排列;
步骤808,判断是否需要调整树的节点,如果需要,则执行步骤809;
步骤809,按需对节点执行***操作;
步骤810,调整NVM空闲页的区间链表指针;
步骤811,继续处理NVM空闲链表的下一个页面。
进一步,所述NVM页面分配按照以下步骤进行:
步骤901,开始;
步骤902,初始化需要分配的页面总数M;
步骤903,初始化已经分配的页面总数N;
步骤904,判断是否已经分配完所需数目的页面,如果是,则执行步骤910;否则执行步骤905;
步骤905,从DRAM的磨损度索引树中,读取最左边节点的主键,对应的指针指向的NVM页面都是磨损计数值相对较小的页面;
步骤906,从DRAM中最后一层节点中找到NVM区间的头指针;
步骤907,返回NVM链表头页面的地址,表示新分配的一个NVM页面;
步骤908,修改DRAM中链表头的指针为该区间下一个NVM的页面;
步骤909,对已经分配的页面总数加1;
步骤910,所有页面已经分配完毕,分配过程结束。
进一步,所述NVM页面回收过程按照以下步骤进行:
步骤1001,开始;
步骤1002,获取回收页面的磨损计数值,所述数值存储在全局数组中,可以根据该页面的地址定位到其磨损计数值;
步骤1003,在磨损度索引树中找到该页面对应的主键以及其对应的区间,即需要找到这个更新之后的页面属于哪个NVM区间;
步骤1004,读取该区间的尾指针;
步骤1005,将回收的页面***NVM区间的尾部,不对NVM这个区间的页面磨损计数排序,该操作需要同时修改空闲链表的指针和区间链表的指针;
步骤1006,修改磨损度索引树相应区间的尾指针为新回收的页面,表示NVM区间链表增加了一个元素;
步骤1007,回收过程结束。
由于采用了上述技术方案,本发明具有如下的优点:
本发明提供的面向非易失性内存的高效的页面组织和管理方法,解决了NVM内存页面的组织和管理方法,使得写磨损比较少的页面会被优先选择,分配给相应的任务或进程使用,从而达到将写操作尽可能地均匀分布到每个页面中的目的;同时在保证写磨损均衡的同时实现高性能的NVM页面的分配和回收管理;且充分利用多核架构,达到并行分配和回收。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
本发明的附图说明如下。
图1为索引初始化或重建流程图。
图2为NVM页面分配过程。
图3为NVM页面回收流程图。
图4为索引结构图。
图5为NVM页面分配过程。
图6为NVM页面回收过程。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
实施例1
如图所示,本实施例提供的一种基于磨损计数机制的树型数据结构来管理NVM的空闲空间,包括以下步骤:
将NVM空间划分成固定大小的页面(例如为4KB,2MB,或者不同大小页面的集合),在NVM内存中用一块连续区域存放每个页面的“磨损计数值”,“磨损计数值”记录了每一个页面的累积写次数;
每个NVM页面有两套指针管理,其中一个指针用来将所有的页面链接成一个“空闲链表”,另外一个指针用来将所有的NVM页面按照磨损计数值组合成不同的区间;
在***运行时,以树形结构组织NVM中的空闲页面,称为“磨损度索引树”。磨损度索引树的底层是NVM中的空闲页面,空闲页面按照磨损计数值分成多个区间,各区间内部的空闲页面以链表的形式连接起来,称为“区间链表”。磨损度索引树除叶子节点外的所有内部节点用于存放划分及标识NVM页面各区间的索引。在***运行时,其根节点和内部节点存放于DRAM中;
磨损度索引树除叶子节点外的所有每个内部节点都包含多个“索引单元”。一个索引单元由一对主键和一对指针组成。其中,两个主键定义了一个NVM空闲页面组中页面的磨损计数值的范围,两个指针则指向了该组指针链表的头尾两个元素。每个主键和指针对表示磨损计数值小于或等于该主键值的所有NVM页面,都可以通过对应的指针找到;每个节点包含一个整数,用来记录当前节点有效键值的个数;DRAM中最后一层节点的每个主键对应有两个指针,分别指向NVM空闲页面区间链表的头部和尾部,另外一个指针指向该节点的父节点,在合并和删除过程中用来调整树的结构;
在索引树结构初始化过程中,扫描NVM的空闲链表,顺序读取NVM的页面地址和页面的磨损计数值,在DRAM中建立NVM页面的磨损度索引树;如果***是多核架构,则为每个核单独建立一个磨损度索引树,所有的磨损度索引树有相同的结构,并将空闲页面均匀分配到每个索引树中;
在分配空闲NVM页面的时候,查询DRAM中的索引,从磨损度索引树最左边的叶子节点开始,取出空闲的NVM页面。这种方式可以保证分配的页面都是磨损计数值比较小的页面。此外,由于分配操作只需要修改链表指针,能够在常数时间完成,时间复杂度为O(1);
在回收页面时,根据该页面更新之后的磨损计数值,将其***到NVM对应的区间中;
NVM中存储叶子节点的区间没有限定大小,可以动态增长或缩小;在一定情况下,还可以统一调整各个区间的范围及大小;
当区间需要细化或者区间页面过于密集时,可触发“***操作”,该操作将待调整的区间中的页面信息读入DRAM,根据磨损计数值重新组织,修改DRAM中的索引结构,然后更新NVM的区间链表指针;
NVM中区间的***会导致DRAM中树形结构的节点调整主键范围,***之后的节点所包含的主键范围更加精细,即可以做到更好的磨损均衡;
当区间范围需要扩大或区间页面过于稀疏时,可触发“合并操作”,合并的好处是使之后的分配操作更快。
在***每次分配空闲页面时,使用的都是此时磨损程度相对较小的页面。在回收页面时,通过新的磨损计数值可以将该页面***适当的区间,用来保证磨损程度比该页面小的空闲页面在下次分配过程中被先使用。因此,这种管理方案能够将写操作均匀分布到***所有的页面中。并且该方案在DRAM中只需要建立指向NVM页面的指针结构,不需要把NVM所有的页面信息存储到DRAM中,能极大减小DRAM中的空间开销。此外,由于页面用用链表管理,故该方案能在常数时间完成分配和回收,效率很高。针对多核架构,每个核分配和回收的过程使用自己的磨损度索引树,不需要对数据结构加锁,能够实现NVM内存页面管理和磨损均衡的高度并行化。
实施例2
本实施例提供的索引的初始化或重建流程,如图1所示:
该流程开始于步骤801,然后如下:
在步骤802,判断NVM中是否有空闲页,如果没有,则该过程结束于步骤811;如果有,在步骤803,扫描NVM页面的空闲链表;
在步骤804,将扫描的每个页面的地址和磨损计数信息读入DRAM;
在步骤805,判断DRAM中是否已经存在磨损度索引树。如果没有,执行步骤806;否则执行步骤807。
在步骤806,创建一个新的磨损度索引树根节点,并把该节点的指针保存到NVM;
在步骤807,从磨损度索引树中找到该页面的正确位置,并***数据,即需要保证DRAM中节点的主键有序排列;
在步骤808,判断是否需要调整树的节点,如果需要,则执行步骤809;
在步骤809,按需对节点执行***等操作,DRAM中的节点可以按照B+树的条件维护,即当某个节点所存储的键值和指针对达到最大度数是,需要***该节点,具体过程和B+树的***操作一样;
在步骤810,调整NVM空闲页的区间链表指针;
在步骤811,继续处理NVM空闲链表的下一个页面。
其中,NVM页面分配过程如图2所示。该流程起始于步骤901,然后:
在步骤902,初始化需要分配的页面总数M;
在步骤903,初始化已经分配的页面总数N;
在步骤904,判断是否已经分配完所需数目的页面,如果是,则执行步骤910;否则执行步骤905;
在步骤905,从DRAM的磨损度索引树中,读取最左边节点的主键,对应的指针指向的NVM页面都是磨损计数值相对较小的页面;
在步骤906,从DRAM中最后一层节点中找到NVM区间的头指针;
在步骤907,返回NVM链表头页面的地址,表示新分配的一个NVM页面;
在步骤908,修改DRAM中链表头的指针为该区间下一个NVM的页面;
在步骤909,对已经分配的页面总数加1;
在步骤910,所有页面已经分配完毕,分配过程结束。
其中,NVM页面回收过程如图3所示。该过程起始于步骤1001,然后,
在步骤1002,获取回收页面的磨损计数值,该数值存储在全局数组中,可以根据该页面的地址定位到其磨损计数值;
在步骤1003,在磨损度索引树中找到该页面对应的主键以及其对应的区间,即需要找到这个更新之后的页面属于哪个NVM区间;
在步骤1004,读取该区间的尾指针;
在步骤1005,将回收的页面***NVM区间的尾部,不对NVM这个区间的页面磨损计数排序,该操作需要同时修改空闲链表的指针和区间链表的指针;
在步骤1006,修改磨损度索引树相应区间的尾指针为新回收的页面,表示NVM区间链表增加了一个元素;
在步骤1007,回收过程结束。
其中,索引树的结构图如图4所示,DRAM中存储树形结构除叶子节点外的所有中间节点,中间节点包含多个主键和指针对,以及记录该节点有效记录个数的数值Num。DRAM中最后一层节点的每个主键对应两个指针,所有NVM中磨损计数值小于主键的页面构成一个区间(Bucket),HeadPtr存放NVM中区间的首地址,TailPtr存放区间的尾地址。
NVM数据页包括两个字段,Free_List_Pointer:64字节指针,用来将所有页面链接成空闲链表;Range_Pointer:64字节指针,用来将所有页面按照磨损计数值的大小顺序组成不同区间。
如图表示DRAM中最后一层最左边的节点有两个主键指针对,其中主键Key1为50,主键Key2为80。HeadPtr1指向磨损计数值等于11的NVM页面,TailPtr1指向磨损计数值等于47的页面,其中,前三个NVM页面(磨损计数值为11,47,45)构成一个区间,所有页面的磨损计数值都小于50,并且每个页面都由FreeList_Pointer链接起来,同时Range_Pointer将其按照磨损计数值区间组织起来。HeadPtr2,TailPtr2所指向的NVM区间就只有两个页面,其磨损计数值分别为68,72。
其中,NVM页面分配过程如图5所示,图5表示分配一个NVM页面之后索引的结构,其中磨损计数值为11的NVM页面被分配,需要修改DRAM最后一层节点的HeadPtr为磨损计数值为45的页面。
NVM页面回收过程如图6所示,图6表示回收一个NVM页面之后索引的结构,其中磨损计数值为65的NVM页面为新回收的页面,该页面对应的区间为主键80,直接将该页面***TailPtr2之后,并修改TailPtr2指向该页面,注意此时不需要对NVM区间按照磨损计数值排序,当***空闲或者每个NVM区间存放的节点个数十分不平衡时,再读取NVM区间的所有页面信息到DRAM,调整DRAM中的树形结构,使其重新平衡。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (5)
1.一种面向非易失性内存的高效的页面组织和管理方法,其特征在于:包括以下步骤:
S1:用树形结构建立并组织NVM中的空闲页面的索引结构,生成磨损度索引树,所述磨损度索引树的最低一层为NVM的空闲页面;
S2:将NVM中的空闲页面按照磨损计数值大小分成若干区间,各区间内部的空闲页面以链表的形式连接起来,形成区间链表;
S3:将磨损度索引树除叶子节点外的所有内部节点存放于DRAM中,所述DRAM中最后一层节点设置有指向NVM的空闲页面的区间链表;
S4:对NVM的空闲页面分配采用写磨损均衡;
S5:对NVM的非空闲页面回收采用写磨损均衡;
步骤S4所述写磨损均衡过程,具体步骤如下:
S41:搜索存放在DRAM中的磨损度索引树,找到磨损度索引树最左边的节点,找到最小主键;
S42:通过最小主键的头指针找到NVM中区间链表的起始地址,并返回NVM中区间链表起始地址页面的地址;
S43:修改DRAM中该最小主键的头指针,使头指针指向NVM中区间链表的下一个页面;
步骤S5所述写磨损均衡过程,具体步骤如下:
S51:获取回收页面的磨损计数值;
S52:搜索存放在DRAM中的磨损度索引树,在磨损度索引树的最后一层节点中找到相应的磨损计数值区间;
S53:将回收的页面***到NVM中区间链表的尾部;
其中,NVM表示非易失性存储器。
2.如权利要求1所述的面向非易失性内存的高效的页面组织和管理方法,其特征在于:所述步骤S1中的树形结构按照NVM空闲页面的磨损计数值建立索引数据;同时,将所述树形结构根据NVM的空闲页面的空间大小和NVM的空闲页面的数量分为不同的层次结构的树;
在多核并行结构下,每个核使用相互独立的磨损度索引树分配和回收页面,使得NVM内存页面的管理并行执行。
3.如权利要求2所述的面向非易失性内存的高效的页面组织和管理方法,其特征在于:所述索引数据包括索引初始化,所述索引初始化具体步骤如下:
步骤801,开始;
步骤802,判断NVM中是否有空闲页,如果没有,则结束于步骤811;
步骤803,如果有,扫描NVM页面的空闲链表;
步骤804,将扫描的每个页面的地址和磨损计数值读入DRAM;
步骤805,判断DRAM中是否已经存在磨损度索引树,如果没有,执行步骤806;否则执行步骤807;
步骤806,创建一个新的磨损度索引树根节点,并把磨损度索引树根节点的指针保存到NVM;
步骤807,从磨损度索引树中找到该页面的正确位置,并***数据,即需要保证DRAM中节点的主键有序排列;
步骤808,判断是否需要调整树的节点,如果需要,则执行步骤809;
步骤809,按需对节点执行***操作;
步骤810,调整NVM空闲页的区间链表指针;
步骤811,继续处理NVM空闲链表的下一个页面。
4.如权利要求1所述的面向非易失性内存的高效的页面组织和管理方法,其特征在于:
所述NVM页面分配按照以下步骤进行:
步骤901,开始;
步骤902,初始化需要分配的页面总数M;
步骤903,初始化已经分配的页面总数N;
步骤904,判断是否已经分配完所需数目的页面,如果是,则执行步骤910;否则执行步骤905;
步骤905,从DRAM的磨损度索引树中,读取最左边节点的主键,对应的指针指向的NVM页面都是磨损计数值相对较小的页面;
步骤906,从DRAM中最后一层节点中找到NVM区间的头指针;
步骤907,返回NVM链表头页面的地址,表示新分配的一个NVM页面;
步骤908,修改DRAM中链表头的指针为该区间下一个NVM的页面;
步骤909,对已经分配的页面总数加1;
步骤910,所有页面已经分配完毕,分配过程结束。
5.如权利要求1所述的面向非易失性内存的高效的页面组织和管理方法,其特征在于:所述NVM页面回收过程按照以下步骤进行:
步骤1001,开始;
步骤1002,获取回收页面的磨损计数值,所述磨损计数值存储在全局数组中,根据回收页面的地址定位到磨损计数值;
步骤1003,在磨损度索引树中找到该页面对应的主键以及其对应的区间,即需要找到这个更新之后的页面属于哪个NVM区间;
步骤1004,读取该区间的尾指针;
步骤1005,将回收的页面***NVM区间的尾部,不对NVM这个区间的页面磨损计数排序,同时修改空闲链表的指针和区间链表的指针;
步骤1006,修改磨损度索引树相应区间的尾指针为新回收的页面,表示NVM区间链表增加了一个元素;
步骤1007,回收过程结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610364236.2A CN105930280B (zh) | 2016-05-27 | 2016-05-27 | 一种面向非易失性内存的高效的页面组织和管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610364236.2A CN105930280B (zh) | 2016-05-27 | 2016-05-27 | 一种面向非易失性内存的高效的页面组织和管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105930280A CN105930280A (zh) | 2016-09-07 |
CN105930280B true CN105930280B (zh) | 2019-07-05 |
Family
ID=56842176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610364236.2A Active CN105930280B (zh) | 2016-05-27 | 2016-05-27 | 一种面向非易失性内存的高效的页面组织和管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105930280B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10289330B2 (en) * | 2017-03-30 | 2019-05-14 | Western Digital Technologies, Inc. | Allocating shared memory among multiple tasks in a multiprocessor environment |
KR102233400B1 (ko) * | 2017-05-29 | 2021-03-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN110209489B (zh) * | 2018-02-28 | 2020-07-31 | 贵州白山云科技股份有限公司 | 一种适用于内存页结构的内存管理方法及装置 |
CN108376121B (zh) * | 2018-03-01 | 2021-10-22 | 曲阜师范大学 | 一种Flash存储器的数据存储方法 |
CN108595270B (zh) * | 2018-04-27 | 2021-07-23 | 新华三信息安全技术有限公司 | 一种内存资源的回收方法及装置 |
CN108920708B (zh) * | 2018-07-20 | 2021-04-27 | 新华三技术有限公司 | 一种数据处理方法及装置 |
CN109407979B (zh) * | 2018-09-27 | 2020-07-28 | 清华大学 | 多线程持久性b+树数据结构设计与实现方法 |
CN109407978B (zh) * | 2018-09-27 | 2020-07-28 | 清华大学 | 高并发索引b+链表数据结构的设计与实现方法 |
CN109284295B (zh) * | 2018-10-17 | 2021-09-17 | 郑州云海信息技术有限公司 | 一种数据优化的方法及装置 |
CN109918317A (zh) * | 2019-03-01 | 2019-06-21 | 重庆大学 | 一种基于磨损感知的nvm条间磨损均衡方法 |
US11119946B2 (en) * | 2019-05-16 | 2021-09-14 | Micron Technology, Inc. | Codeword rotation for zone grouping of media codewords |
CN110347336B (zh) * | 2019-06-10 | 2020-07-10 | 华中科技大学 | 一种基于nvm与ssd混合存储结构的键值存储*** |
CN110737547B (zh) * | 2019-10-22 | 2022-08-19 | 第四范式(北京)技术有限公司 | 使用非易失性存储器nvm恢复内存数据库的方法和设备 |
CN111159056A (zh) * | 2019-12-11 | 2020-05-15 | 上海交通大学 | 一种针对非易失性内存的可伸缩内存分配方法及*** |
CN111274456B (zh) * | 2020-01-20 | 2023-09-12 | 中国科学院计算技术研究所 | 基于nvm主存的数据索引方法及数据处理*** |
CN111309258B (zh) | 2020-02-14 | 2021-10-15 | 苏州浪潮智能科技有限公司 | 一种b+树的存取方法、装置和计算机可读存储介质 |
CN111352863B (zh) * | 2020-03-10 | 2023-09-01 | 腾讯科技(深圳)有限公司 | 内存管理方法、装置、设备及存储介质 |
CN111597125B (zh) * | 2020-05-09 | 2023-04-25 | 重庆大学 | 一种非易失内存文件***索引节点的磨损均衡方法及*** |
CN111857582B (zh) * | 2020-07-08 | 2024-04-05 | 平凯星辰(北京)科技有限公司 | 一种键值存储*** |
CN112486996B (zh) * | 2020-12-14 | 2022-08-05 | 上海交通大学 | 面向对象的内存数据存储*** |
CN114356213B (zh) * | 2021-11-29 | 2023-07-21 | 重庆邮电大学 | 一种numa架构下nvm磨损均衡的并行空间管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6742078B1 (en) * | 1999-10-05 | 2004-05-25 | Feiya Technology Corp. | Management, data link structure and calculating method for flash memory |
US7035988B1 (en) * | 2003-03-17 | 2006-04-25 | Network Equipment Technologies, Inc. | Hardware implementation of an N-way dynamic linked list |
CN101339808A (zh) * | 2008-07-28 | 2009-01-07 | 华中科技大学 | 存储块的擦除方法及装置 |
CN101676906A (zh) * | 2008-09-18 | 2010-03-24 | 中兴通讯股份有限公司 | 一种利用位图对内存数据库空间进行管理的方法 |
-
2016
- 2016-05-27 CN CN201610364236.2A patent/CN105930280B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6742078B1 (en) * | 1999-10-05 | 2004-05-25 | Feiya Technology Corp. | Management, data link structure and calculating method for flash memory |
US7035988B1 (en) * | 2003-03-17 | 2006-04-25 | Network Equipment Technologies, Inc. | Hardware implementation of an N-way dynamic linked list |
CN101339808A (zh) * | 2008-07-28 | 2009-01-07 | 华中科技大学 | 存储块的擦除方法及装置 |
CN101676906A (zh) * | 2008-09-18 | 2010-03-24 | 中兴通讯股份有限公司 | 一种利用位图对内存数据库空间进行管理的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105930280A (zh) | 2016-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105930280B (zh) | 一种面向非易失性内存的高效的页面组织和管理方法 | |
CN104298610B (zh) | 资料储存***及其管理方法 | |
CN108628753B (zh) | 内存空间管理方法和装置 | |
US8060718B2 (en) | Updating a memory to maintain even wear | |
CN101673245B (zh) | 包括存储器管理装置的信息处理装置和存储器管理方法 | |
CN106502587B (zh) | 硬盘数据管理方法和硬盘控制装置 | |
CN107544756B (zh) | 基于SCM的Key-Value日志型本地存储方法 | |
CN103678160A (zh) | 一种存储数据的方法和装置 | |
CN109284299A (zh) | 重构具有存储感知的混合索引的方法 | |
CN109407978A (zh) | 高并发索引b+链表数据结构的设计与实现方法 | |
CN104598386B (zh) | 通过追踪和利用二级映射索引重复利用固态驱动器块 | |
CN108021702A (zh) | 基于LSM-tree的分级存储方法、装置、OLAP数据库***及介质 | |
CN110968269A (zh) | 基于scm与ssd的键值存储***及读写请求处理方法 | |
CN109656481A (zh) | 一种提高智能卡文件***flash写入寿命的方法 | |
CN104156432A (zh) | 一种文件访问方法 | |
CN114816258A (zh) | Nvm的外部排序方法、装置和nvm存储器 | |
KR100907477B1 (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
CN102763070A (zh) | 磁盘缓存的管理方法及装置 | |
CA2415018C (en) | Adaptive parallel data clustering when loading a data structure containing data clustered along one or more dimensions | |
Yin et al. | A sequential indexing scheme for flash-based embedded systems | |
Li et al. | DigestJoin: Exploiting fast random reads for flash-based joins | |
CN108376121B (zh) | 一种Flash存储器的数据存储方法 | |
CN105353979B (zh) | Ssd内部数据文件管理***及管理方法 | |
CN110262755A (zh) | 一种嵌入式***的文件存储方法 | |
CN109918317A (zh) | 一种基于磨损感知的nvm条间磨损均衡方法 |
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 |