CN105843748A - 一种对内存中内存页的处理方法及装置 - Google Patents
一种对内存中内存页的处理方法及装置 Download PDFInfo
- Publication number
- CN105843748A CN105843748A CN201510021433.XA CN201510021433A CN105843748A CN 105843748 A CN105843748 A CN 105843748A CN 201510021433 A CN201510021433 A CN 201510021433A CN 105843748 A CN105843748 A CN 105843748A
- Authority
- CN
- China
- Prior art keywords
- page
- slc
- slc page
- memory
- sluggish
- 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
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
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
-
- 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
-
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/251—Local memory within processor subsystem
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本发明涉及存储技术领域,尤其涉及一种对内存中内存页的处理方法及装置,用以获得较高的访问性能和较大的存储容量。本发明提供的对内存中内存页的处理方法中,内存中的内存页包括空闲的单层单元SLC内存页、活跃的SLC内存页、不活跃的SLC内存页和多层单元MLC内存页;该处理方法包括:当确定任一虚拟机VM的空闲单层单元SLC内存页数目小于设定阈值时,将1个空闲的SLC内存页转换为2个MLC内存页;将2个不活跃的SLC内存页中的数据复制到转换后的所述2个MLC内存页中;释放所述2个不活跃的SLC内存页中的存储空间,得到2个空闲的SLC内存页。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种对内存中内存页的处理方法及装置。
背景技术
随着虚拟化技术的发展,对内存资源等硬件资源的需求越来越高。由于传统的动态随机存储器(Dynamic Random Access Memory,DRAM)能耗大、容量扩展难度高,新型的能耗低、容量大、具有非易性的存储器,如相变存储器(Phase Change Memory,PCM),将有望替代传统的DRAM存储器。
PCM是一种新一代非挥发性存储器,它利用材料的可逆转的相变来存储信息,可以实现单层单元(Single-Level Cell,SLC)存储和多层单元(Multi-LevelCell,MLC)存储;SLC的特点是成本高、容量小、速度快,而MLC的特点是容量大、成本低,但是速度慢。
基于SLC和MLC的不同特点,若采用SLC存储,可以得到较高的访问性能,但是会限制存储容量,若采用MLC存储,可以得到较大的存储容量,但是访问性能较低;采用在内存中同时设置SLC和MLC的方式时,也只能简单地根据访问性能或存储容量的需求,按照预设的比例设置SLC和MLC,无法得到较优的访问性能和较大的存储容量,也即尚没有有效的方案能够兼顾SLC和MLC的优势。
发明内容
本发明实施例提供一种对内存中内存页的处理方法及装置,用以兼顾访问性能和存储容量,得到较优的访问性能和较大的存储容量。
第一方面,提供一种对内存中内存页的处理方法,所述内存中的内存页包括空闲的单层单元SLC内存页、活跃的SLC内存页、不活跃的SLC内存页和多层单元MLC内存页,所述空闲的SLC内存页中的数据为空,所述活跃的SLC内存页中所存储的数据是在设定时间长度内被访问过的数据,所述不活跃的SLC内存页和MLC内存页中所存储的数据是在设定时间长度内未被访问的数据;该处理方法包括:
当确定任一虚拟机VM的空闲单层单元SLC内存页数目小于设定阈值时,将1个空闲的SLC内存页转换为2个MLC内存页;
将2个不活跃的SLC内存页中的数据复制到转换后的所述2个MLC内存页中;
释放所述2个不活跃的SLC内存页中的存储空间,得到2个空闲的SLC内存页。
结合第一方面,在第一种可能的实现方式中,当内存访问频率越高或内存占用率越高时,所述设定时间长度越短;或者,当内存访问频率越高、且内存占用率越高时,所述设定时间长度越短。
结合第一方面,或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,当所述设定阈值越小时,内存访问性能越高、产生缺页的概率越大。
结合第一方面,或第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述确定任一VM的空闲SLC内存页数目小于设定阈值之后,还包括:
若当前不活跃的SLC内存页数目小于2,则将2个MLC内存页中的数据写回外存,并将所述2个MLC内存页转换为1个空闲的SLC内存页。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述确定任一VM的空闲SLC内存页数目小于设定阈值之后,还包括:
若当前不活跃的SLC内存页数目小于2、且当前MLC内存页数目小于2,则为所述任一VM获取其它VM的空闲的内存页。
结合第一方面,或第一方面的第一~四种可能的实现方式中的任意一种,在第五种可能的实现方式中,所述方法还包括:
在接收到内存分配请求后,为该内存分配请求分配空闲的SLC内存页,并将该空闲的SLC内存页重新标识为活跃的SLC内存页。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,将空闲的SLC内存页重新标识为活跃的SLC内存页,包括:将该空闲的SLC内存页的地址从建立的空闲SLC内存页链表中转移到建立的活跃SLC内存页链表中;
结合第一方面,或第一方面的第一~六种可能的实现方式中的任意一种,在第七种可能的实现方式中,所述方法还包括:
在接收到针对不活跃的SLC内存页的访问请求后,将该不活跃的SLC内存页重新标识为活跃的SLC内存页。
结合第一方面的第七种可能的实现方式,在第八种可能的实现方式中,将不活跃的SLC内存页重新标识为活跃的SLC内存页,包括:该不活跃的SLC内存页的地址从建立的不活跃SLC内存页链表中转移到建立的活跃SLC内存页链表中;
结合第一方面,或第一方面的第一~八种可能的实现方式中的任意一种,在第九种可能的实现方式中,所述方法还包括:
针对活跃的SLC内存页,若在设定时间长度内没有接收到针对该内存页的访问请求,则将该活跃的SLC内存页重新标识为不活跃的SLC内存页。
结合第一方面的第九种可能的实现方式,在第十种可能的实现方式中,将活跃的SLC内存页重新标识为不活跃的SLC内存页,包括:
将该活跃的SLC内存页的地址从建立的活跃SLC内存页链表中转移到建立的不活跃SLC内存页链表中。
第二方面,提供一种对内存中内存页的处理装置,所述内存中的内存页包括空闲的单层单元SLC内存页、活跃的SLC内存页、不活跃的SLC内存页和多层单元MLC内存页,所述空闲的SLC内存页中的数据为空,所述活跃的SLC内存页中所存储的数据是在设定时间长度内被访问过的数据,所述不活跃的SLC内存页和MLC内存页中所存储的数据是在设定时间长度内未被访问的数据;该装置包括:
转换模块,用于当确定任一虚拟机VM的空闲单层单元SLC内存页数目小于基于缺页概率和访问性能确定的设定阈值时,将1个空闲的SLC内存页转换为2个MLC内存页;
复制模块,用于将2个不活跃的SLC内存页中的数据复制到转换后的所述2个MLC内存页中;
释放模块,用于释放所述2个不活跃的SLC内存页中的存储空间,得到2个空闲的SLC内存页。
结合第二方面,在第一种可能的实现方式中,当内存访问频率越高或内存占用率越高时,所述设定时间长度越短;或者,当内存访问频率越高、且内存占用率越高时,所述设定时间长度越短。
结合第二方面,或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,当所述设定阈值越小时,内存访问性能越高、产生缺页的概率越大。
结合第二方面,或第二方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述转换模块还用于,在确定任一VM的空闲SLC内存页数目小于设定阈值之后,若当前不活跃的SLC内存页数目小于2,则将2个MLC内存页中的数据写回外存,并将所述2个MLC内存页转换为1个空闲的SLC内存页。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述转换模块还用于,在确定任一VM的空闲SLC内存页数目小于设定阈值之后,若当前不活跃的SLC内存页数目小于2、且当前MLC内存页数目小于2,则为所述任一VM获取其它VM的空闲的内存页。
结合第二方面,或第二方面的第一~四种可能的实现方式中的任意一种,在第五种可能的实现方式中,所述装置还包括:
第一分配模块,用于在接收到内存分配请求后,为该内存分配请求分配空闲的SLC内存页,并将该空闲的SLC内存页重新标识为活跃的SLC内存页。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一分配模块具体用于:将该空闲的SLC内存页的地址从建立的空闲SLC内存页链表中转移到建立的活跃SLC内存页链表中。
结合第二方面,或第二方面的第一~六种可能的实现方式中的任意一种,在第七种可能的实现方式中,所述装置还包括:
第二分配模块,用于在接收到针对不活跃的SLC内存页的访问请求后,将该不活跃的SLC内存页重新标识为活跃的SLC内存页。
结合第二方面的第七种可能的实现方式,在第八种可能的实现方式中,所述第二分配模块具体用于,将该不活跃的SLC内存页的地址从建立的不活跃SLC内存页链表中转移到建立的活跃SLC内存页链表中;
结合第二方面,或第二方面的第一~八种可能的实现方式中的任意一种,在第九种可能的实现方式中,所述装置还包括:
第三分配模块,用于针对活跃的SLC内存页,若在设定时间长度内没有接收到针对该内存页的访问请求,则将该活跃的SLC内存页重新标识为不活跃的SLC内存页。
结合第二方面的第九种可能的实现方式,在第十种可能的实现方式中,所述第三分配模块具体用于:
将该活跃的SLC内存页的地址从建立的活跃SLC内存页链表中转移到建立的不活跃SLC内存页链表中。
第三方面,提供一种对内存中内存页的处理设备,包括处理器、存储器和总线,所述存储器包括内存,该内存中的内存页包括空闲的单层单元SLC内存页、活跃的SLC内存页、不活跃的SLC内存页和多层单元MLC内存页,所述空闲的SLC内存页中的数据为空,所述活跃的SLC内存页中所存储的数据是在设定时间长度内被访问过的数据,所述不活跃的SLC内存页和MLC内存页中所存储的数据是在设定时间长度内未被访问的数据;所述存储器存储执行指令,当所述设备运行时,所述处理器与所述存储器之间通过总线通信,使得所述处理器执行如下执行指令:
当确定任一虚拟机VM的空闲单层单元SLC内存页数目小于设定阈值时,将1个空闲的SLC内存页转换为2个MLC内存页;
将2个不活跃的SLC内存页中的数据复制到转换后的所述2个MLC内存页中;
释放所述2个不活跃的SLC内存页中的存储空间,得到2个空闲的SLC内存页。
结合第三方面,在第一种可能的实现方式中,当内存访问频率越高或内存占用率越高时,所述设定时间长度越短;或者,当内存访问频率越高、且内存占用率越高时,所述设定时间长度越短。
结合第三方面,或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,当所述设定阈值越小时,内存访问性能越高、产生缺页的概率越大。
结合第三方面,或第三方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述处理器执行的所述执行指令中,确定任一VM的空闲SLC内存页数目小于设定阈值之后,还包括:
若当前不活跃的SLC内存页数目小于2,则将2个MLC内存页中的数据写回外存,并将所述2个MLC内存页转换为1个空闲的SLC内存页;M为正整数。
结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理器执行的所述执行指令中,确定任一VM的空闲SLC内存页数目小于设定阈值之后,还包括:
若当前不活跃的SLC内存页数目小于2、且当前MLC内存页数目小于2,则为所述任一VM获取其它VM的内存资源。
结合第三方面,或第三方面的第一~四种可能的实现方式中的任意一种,在第五种可能的实现方式中,所述处理器执行的所述执行指令还包括:
在接收到内存分配请求后,为该内存分配请求分配空闲的SLC内存页,并空闲的SLC内存页重新标识为活跃的SLC内存页。
结合第三方面的第五种可能的实现方式,在第六种可能的实现方式中,所述处理器执行的所述执行指令中,将空闲的SLC内存页重新标识为活跃的SLC内存页,包括:将该空闲的SLC内存页的地址从建立的空闲SLC内存页链表中转移到建立的活跃SLC内存页链表中。
结合第三方面,或第三方面的第一~六种可能的实现方式中的任意一种,在第七种可能的实现方式中,所述处理器执行的所述执行指令还包括:
在接收到针对不活跃的SLC内存页的访问请求后,将该不活跃的SLC内存页重新标识为活跃的SLC内存页。
结合第三方面的第七种可能的实现方式,在第八种可能的实现方式中,所述处理器执行的所述执行指令中,将不活跃的SLC内存页重新标识为活跃的SLC内存页,包括:该不活跃的SLC内存页的地址从建立的不活跃SLC内存页链表中转移到建立的活跃SLC内存页链表中。
结合第三方面,或第三方面的第一~八种可能的实现方式中的任意一种,在第九种可能的实现方式中,所述处理器执行的所述执行指令还包括:
针对活跃的SLC内存页,若在设定时间长度内没有接收到针对该内存页的访问请求,则将该活跃的SLC内存页重新标识为不活跃的SLC内存页。
结合第三方面的第九种可能的实现方式,在第十种可能的实现方式中,所述处理器执行的所述执行指令中,将活跃的SLC内存页重新标识为不活跃的SLC内存页,包括:
将该活跃的SLC内存页的地址从建立的活跃SLC内存页链表中转移到建立的不活跃SLC内存页链表中。
在上述方案中,空闲的内存页和活跃的内存页以SLC的形式存在,这些内存页都是在短时间内会被访问的内存页,对这些内存页采用高性能的SLC存储模式,能够充分提高访问性能;同时,为了兼顾存储容量,当VM可用的空闲SLC内存页数目低于设定阈值时,将不活跃的SLC内存页中的数据转换为MLC内存页中数据的形式进行存储;由于MLC的存储容量是SLC存储容量的2倍,在将2个不活跃的SLC内存页中的数据转换为2个MLC内存页中数据的形式进行存储后,还可以节省出1个空闲的SLC内存页(其中,将1个空闲的SLC内存页转换为2个MLC内存页,将2个不活跃的SLC内存页中的数据转移到转换后的2个MLC内存页中,得到2个空闲的SLC内存页,相当于节省出1个空闲的SLC内存页),从而提高了存储容量,并减少了缺页错误。
附图说明
图1为本发明实施例的应用环境示意图;
图2为本发明实施例一提供的对内存中内存页的处理方法流程图;
图3为本发明实施例一进行SLC和MLC转换的示意图;
图4为本发明实施例二进行内存页处理的方法流程图;
图5为采用气球技术(balloon technique)来平衡VM之间的内存分配的示意图;
图6为本发明实施例提供的对内存中内存页的处理装置结构示意图;
图7为本发明实施例提供的对内存中内存页的处理设备结构示意图。
具体实施方式
在本发明实施例中,空闲的内存页和活跃的内存页以SLC的形式存在,这些内存页都是在短时间内会被访问的内存页,对这些内存页采用高性能的SLC存储模式,能够充分提高访问性能;同时,为了兼顾存储容量,当虚拟机(Virtual Machine,VM)可用的空闲SLC内存页数目低于设定阈值时,将不活跃的SLC内存页中的数据转换为MLC内存页中数据的形式进行存储;由于MLC的存储容量是SLC存储容量的2倍,在将2个不活跃的SLC内存页中的数据转换为2个MLC内存页中数据的形式进行存储后,还可以节省出1个空闲的SLC内存页(其中,将1个空闲的SLC内存页转换为2个MLC内存页,将2个不活跃的SLC内存页中的数据转移到转换后的2个MLC内存页中,得到2个空闲的SLC内存页,相当于节省出1个空闲的SLC内存页),从而提高了存储容量,并减少了缺页错误。
如图1所示,本发明实施例的应用环境主要包括硬件层、虚拟化管理层和虚拟机层;其中,硬件层包括支持虚拟化的中央处理器(Central Processing Unit,CPU)、基于PCM的主存、基于闪存(Flash)的外存等硬件设备;虚拟机层负责运行移动操作系统;虚拟化管理层主要负责虚拟化内存调度、输入输出(Input/Output,I/O)请求调度、CPU任务调度等协调工作,本发明实施例对虚拟化管理层中的内存调度算法进行了改进,在内存调度中,利用内存页的活跃状态,调节SLC内存页与MLC内存页的分配,将空闲的内存页和活跃的内存页分配为SLC存储方式,在虚拟机VM的空闲SLC内存页小于设定阈值时,启动SLC内存页与MLC内存页之间的转换,将不活跃的SLC内存页中的数据转换为MLC内存页数据的形式存储,以节省出空闲的SLC内存页存储新的数据;如图1所示,本发明实施例在虚拟化管理层(Hypervisor)加入了基于应用的SLC/MLC分配器(ASPA Page Allocator)、SLC/MLC地址转换表(在进行SLC和MLC之间的转换时,由于物理地址空间被改变,需要采用SLC/MLC地址转换表记录转换关系)、多虚拟机气球膨胀(Ballooning forMutiple VMs)以及SLC/MLC转换(详见下述实施例一和二的描述)的功能。
下面结合说明书附图对本发明实施例作进一步详细描述。
实施例一
在本实施例中,内存中的内存页包括空闲的SLC内存页、活跃的SLC内存页、不活跃的SLC内存页和MLC内存页,其中,空闲的SLC内存页中的数据为空,活跃的SLC内存页中所存储的数据是在设定时间长度内被访问过的数据,而不活跃的SLC内存页和MLC内存页中所存储的数据是在设定时间长度内未被访问的数据;
这里,设定时间长度是基于内存使用情况(包括内存访问频率和内存占用率)确定的,当内存访问频率越高或内存占用率越高时,设置的所述设定时间长度越短;或者,当内存访问频率越高、且内存占用率越高时,设置的所述设定时间长度越短。
针对上述不同类型的内存页,在具体实施中,需要基于内存页的访问情况,实时进行不同内存页类型之间的转换,具体过程可以是:在接收到内存分配请求后,为该内存分配请求分配空闲的SLC内存页,并将该空闲的SLC内存页重新标识为活跃的SLC内存页;在接收到针对不活跃的SLC内存页的访问请求后,将该不活跃的SLC内存页重新标识为活跃的SLC内存页;针对活跃的SLC内存页,若在设定时间长度内没有接收到针对该内存页的访问请求,则将该活跃的SLC内存页重新标识为不活跃的SLC内存页。在具体实施中,可以采用内存页链表的形式分别存储不同类型的内存页的地址(详见后续实施例二)的描述。
在此基础上,可以执行图2所示处理流程,包括:
S201:当确定任一VM的空闲SLC内存页数目小于设定阈值时,将1个空闲的SLC内存页转换为2个MLC内存页。
这里,设定阈值是基于缺页概率和访问性能确定的;当所述设定阈值越小时,产生缺页的概率越大、内存访问性能越高(因为转换后的MLC内存页较少),当所述设定阈值越大时,产生缺页的概率越小、内存访问性能越低(因为转换后的MLC内存页较多)。但缺页概率并不是随设定阈值的增加呈线性增加,相应地,访问性能也不是随设定阈值的增加呈线性减小,因此,在具体实施中可以通过试验测试得到一个缺页概率较小、访问性能又较高的值。
在具体实施中,为每个VM申请一定大小的内存,在将数据写入内存中空闲的SLC内存页后,该内存页变为活跃的SLC内存页,可能会被频繁访问(读或者写),然后逐步进入不活跃期,几乎不被访问,即变为不活跃的SLC内存页。本发明实施例中,空闲的SLC内存页不断被消耗用于存储新的数据,在VM业务繁忙的情况下,内存资源得不到及时释放,将会导致空闲的SLC内存页越来越少。当监测到空闲的SLC内存页小于设定阈值后,将启动SLC内存页与MLC内存页之间的转换。
S202:将2个不活跃的SLC内存页中的数据复制到转换后的所述2个MLC内存页中。
S203:释放所述2个不活跃的SLC内存页中的存储空间,得到2个空闲的SLC内存页。
如图3所示,为本发明实施例一进行SLC和MLC转换的示意图。首先,如S201所述,将1个空闲的SLC内存页转换为2个MLC内存页(此时为空闲的MLC内存页),也即每1个空闲的SLC内存页可以被转换为2个MLC内存页(这是由SLC和MLC的物理属性决定的),存储空间提高1倍。
接着,如S202所述,将2个不活跃的SLC内存页中的数据复制到转换后的所述2个MLC内存页中(空闲的MLC内存页此时变为不活跃的MLC内存页),这里,不管是SLC内存页还是MLC内存页,每个内存页中能够存储的数据量是相同的,因此,每2个SLC内存页中的数据同样需要占用2个MLC内存页。
最后,如下述S203所述,释放2个不活跃的SLC内存页中的存储空间,使之转换为2个空闲的SLC内存页;此时,减去初始转换为2个MLC内存页的1个空闲的SLC内存页,相当于节省出1个空闲的SLC内存页,这1个空闲的SLC内存页可以继续被分配用于存储新的数据。
采用上述实施例一,可以将在短时间内会被访问的空闲的内存页和会被频繁访问的活跃的内存页规划为高性能的SLC存储模式,以充分提高内存访问性能;并且,当VM可用的空闲SLC内存页低于设定阈值时,将不活跃的SLC内存页中的数据转换为MLC内存页中数据的形式进行存储,还可以节省出空闲的内存空间,从而提高了存储容量,并减少了缺页错误。
在具体实施中,当系统工作负载较重,尤其在超负荷工作时,有可能无法找到至少2个不活跃的SLC内存页,这时可以直接将2个MLC内存页中的数据写回外存,将这2个MLC内存页转换为1个空闲的SLC内存页。这种转换方式可能会导致缺页错误,但是由于MLC内存页中的数据实际都是不活跃的SLC中的数据,不会被频繁访问,对系统带来的额外开销较小。当系统工作负载更重,甚至找不到可以使用的MLC内存页时,意味着几乎所有的内存页都被采用SLC存储模式使用,并被活跃地访问,这时可以启用虚拟平台的超级管理程序来平衡不同VM之间的内存分配。详见下述实施例二的描述。
实施例二
如图4所示,为本发明实施例二进行内存页处理的方法流程图,包括:
S401:建立不同的内存页链表来记录内存页的活跃状态:为每个VM建立空闲SLC内存页链表、活跃SLC内存页链表、不活跃SLC内存页链表和MLC内存页链表。
这里,空闲SLC内存页链表用于存储空闲的SLC内存页的地址,活跃SLC内存页链表用于存储活跃的内存页的地址、不活跃SLC内存页链表用于存储不活跃的内存页的地址,MLC内存页链表用于存储MLC内存页的地址,通过这些内存页链表,来记录内存页的活跃状态。
在具体实施中,空闲的SLC内存页为存储数据为空的内存页,活跃的SLC内存页用于存储最近被频繁访问的数据,不活跃的SLC内存页和MLC内存页用于存储设定时间长度内未被访问的数据。在接收到内存分配请求后,为该内存分配请求分配空闲的SLC内存页,并将该空闲的SLC内存页的地址从建立的空闲SLC内存页链表中转移到建立的活跃SLC内存页链表中;在接收到针对不活跃的SLC内存页的访问请求后,将该不活跃的SLC内存页的地址从建立的不活跃SLC内存页链表中转移到建立的活跃SLC内存页链表中;针对活跃的SLC内存页,若在设定时间长度内没有接收到针对该内存页的访问请求,则将该活跃的SLC内存页的地址从建立的活跃SLC内存页链表中转移到建立的不活跃SLC内存页链表中。
S402:当任一VM的空闲SLC内存页数目小于设定阈值时,调节为该VM分配的内存中MLC和SLC的分配比例:若当前不活跃的SLC内存页数目大于或等于2,则将1个空闲的SLC内存页转换为2个MLC内存页,将2个不活跃的SLC内存页中的数据复制到转换后的所述2个MLC内存页中,释放所述2个不活跃的SLC内存页中的存储空间,得到2个空闲的SLC内存页;若当前不活跃的SLC内存页数目小于2,则将2个MLC内存页中的数据写回外存,并将所述2个MLC内存页转换为1个空闲的SLC内存页。
S403:平衡VM之间的内存分配:若当前不活跃的SLC内存页数目小于2、且当前MLC内存页数目小于2,则为所述任一VM获取其它VM的内存资源。
在移动虚拟化平台上,基于不同应用的需求,运行不同应用的VM之间会存在不同的内存请求。当一个VM的内存页几乎都处于活跃状态时,其它VM可能还有大量的空闲的内存页。通过调用虚拟平台的超级管理程序,从拥有大量空闲的内存页(比如空闲内存页高于预设值)的VM处,收回部分内存,然后分配给当前空闲的内存页较少的VM。
如图5所示,采用气球技术(balloon technique)来平衡VM之间的内存分配。当超级管理程序收回为VM分配的内存时,首先膨胀VM的气球驱动程序,通过气球驱动,能够释放掉空闲的SLC内存页,并分配给内存紧缺的VM。
基于上述描述可知,本发明方案具有以下有益效果:
1)充分利用了SLC高性能的特性,减少了内存访问延迟:本发明实施例为新的内存页请求和写频繁的内存页,分配高性能的SLC内存,从而提高了访问性能。
2)充分利用了MLC大容量的特性,扩展了内存的容量,减少了缺页错误:本发明实施例在内存不足的情况下,将不活跃的SLC内存页转为大容量的MLC页,从而增加了内存容量,减少了缺页错误。
3)提高了系统整体性能:系统的整体性能取决于SLC访问次数、MLC访问次数、缺页错误次数三个因素。本发明实施例将频繁访问的内存页规划为低延迟的SLC内存页,将访问较少的内存页规划为大容量的MLC内存页,从而一方面减少了内存页访问的延迟性;另一方面扩展了内存容量,减少了缺页错误,从而提高了系统的整体性能。
4)多个虚拟机VM的整体性能提高:本发明实施例中,当一个VM可用空闲内存不足时,调用超级管理程序收回其它VM中空闲的内存页,分配给内存缺乏的VM,从而提高了多个VM的整体性能。
5)存储和性能开销低:本发明实施例的系统开销主要包括SLC/MLC地址转换表上的空间开销和在SLC/MLC转换过程中的运行开销,而这些开销都是很小的;统计结果表明地址转换表只会占用约0.2%的内存大小,而SLC/MLC的转换过程只涉及到内存到内存的操作,系统开销很小。
基于同一发明构思,本发明实施例中还提供了一种与对内存中内存页的处理方法对应的对内存中内存页的处理装置,由于该装置解决问题的原理与本发明实施例对内存中内存页的处理方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图6所示,为本发明实施例提供的对内存中内存页的处理装置结构示意图,所述内存中的内存页包括空闲的单层单元SLC内存页、活跃的SLC内存页、不活跃的SLC内存页和多层单元MLC内存页,所述空闲的SLC内存页中的数据为空,所述活跃的SLC内存页中所存储的数据是在设定时间长度内被访问过的数据,所述不活跃的SLC内存页和MLC内存页中所存储的数据是在设定时间长度内未被访问的数据;该装置包括:
转换模块61,用于当确定任一虚拟机VM的空闲单层单元SLC内存页数目小于设定阈值时,将1个空闲的SLC内存页转换为2个MLC内存页;
复制模块62,用于将2个不活跃的SLC内存页中的数据复制到转换后的所述2个MLC内存页中;
释放模块63,用于释放所述2个不活跃的SLC内存页中的存储空间,得到2个空闲的SLC内存页。
可选地,当内存访问频率越高或内存占用率越高时,所述设定时间长度越短;或者,当内存访问频率越高、且内存占用率越高时,所述设定时间长度越短。
可选地,当所述设定阈值越小时,内存访问性能越高、产生缺页的概率越大。
可选地,所述转换模块61还用于,在确定任一VM的空闲SLC内存页数目小于设定阈值之后,若当前不活跃的SLC内存页数目小于2,则将2个MLC内存页中的数据写回外存,并将所述2个MLC内存页转换为1个空闲的SLC内存页。
可选地,所述转换模块61还用于,在确定任一VM的空闲SLC内存页数目小于设定阈值之后,若当前不活跃的SLC内存页数目小于2、且当前MLC内存页数目小于2,则为所述任一VM获取其它VM的空闲的内存页。
可选地,所述装置还包括:
第一分配模块64,用于在接收到内存分配请求后,为该内存分配请求分配空闲的SLC内存页,并将该空闲的SLC内存页重新标识为活跃的SLC内存页。
可选地,所述第一分配模块64具体用于:将该空闲的SLC内存页的地址从建立的空闲SLC内存页链表中转移到建立的活跃SLC内存页链表中。
可选地,所述装置还包括:
第二分配模块65,用于在接收到针对不活跃的SLC内存页的访问请求后,将该不活跃的SLC内存页重新标识为活跃的SLC内存页。
可选地,所述第二分配模块65具体用于,将该不活跃的SLC内存页的地址从建立的不活跃SLC内存页链表中转移到建立的活跃SLC内存页链表中。
可选地,所述装置还包括:
第三分配模块66,用于针对活跃的SLC内存页,若在设定时间长度内没有接收到针对该内存页的访问请求,则将该活跃的SLC内存页重新标识为不活跃的SLC内存页。
可选地,所述第三分配模块66具体用于:
将该活跃的SLC内存页的地址从建立的活跃SLC内存页链表中转移到建立的不活跃SLC内存页链表中。
如图7所示,为本发明实施例提供的对内存中内存页的处理设备70结构示意图,包括处理器71、存储器72和总线73,所述存储器72包括内存72a,该内存72a中的内存页包括空闲的SLC内存页、活跃的SLC内存页、不活跃的SLC内存页和MLC内存页,所述空闲的SLC内存页中的数据为空,所述活跃的SLC内存页中所存储的数据是在设定时间长度内被访问过的数据,所述不活跃的SLC内存页和MLC内存页中所存储的数据是在设定时间长度内未被访问的数据;所述存储器72存储执行指令,当所述处理设备70运行时,所述处理器71与所述存储器72之间通过总线73通信,使得所述处理器71执行如下执行指令:
当确定任一虚拟机VM的空闲单层单元SLC内存页数目小于设定阈值时,将1个空闲的SLC内存页转换为2个MLC内存页;
将2个不活跃的SLC内存页中的数据复制到转换后的所述2个MLC内存页中;
释放所述2个不活跃的SLC内存页中的存储空间,得到2个空闲的SLC内存页。
可选地,当内存访问频率越高或内存占用率越高时,所述设定时间长度越短;或者,当内存访问频率越高、且内存占用率越高时,所述设定时间长度越短。
可选地,当所述设定阈值越小时,内存访问性能越高、产生缺页的概率越大。
可选地,所述处理器71执行的所述执行指令中,确定任一VM的空闲SLC内存页数目小于设定阈值之后,还包括:
若当前不活跃的SLC内存页数目小于2,则将2个MLC内存页中的数据写回外存,并将所述2个MLC内存页转换为1个空闲的SLC内存页;M为正整数。
可选地,所述处理器71执行的所述执行指令中,确定任一VM的空闲SLC内存页数目小于设定阈值之后,还包括:
若当前不活跃的SLC内存页数目小于2、且当前MLC内存页数目小于2,则为所述任一VM获取其它VM的内存资源。
可选地,所述处理器71执行的所述执行指令还包括:
在接收到内存分配请求后,为该内存分配请求分配空闲的SLC内存页,并空闲的SLC内存页重新标识为活跃的SLC内存页。
可选地,所述处理器71执行的所述执行指令中,将空闲的SLC内存页重新标识为活跃的SLC内存页,包括:将该空闲的SLC内存页的地址从建立的空闲SLC内存页链表中转移到建立的活跃SLC内存页链表中。
可选地,所述处理器71执行的所述执行指令还包括:
在接收到针对不活跃的SLC内存页的访问请求后,将该不活跃的SLC内存页重新标识为活跃的SLC内存页。
可选地,所述处理器71执行的所述执行指令中,将不活跃的SLC内存页重新标识为活跃的SLC内存页,包括:该不活跃的SLC内存页的地址从建立的不活跃SLC内存页链表中转移到建立的活跃SLC内存页链表中;
可选地,所述处理器71执行的所述执行指令还包括:
针对活跃的SLC内存页,若在设定时间长度内没有接收到针对该内存页的访问请求,则将该活跃的SLC内存页重新标识为不活跃的SLC内存页。
可选地,所述处理器71执行的所述执行指令中,将活跃的SLC内存页重新标识为不活跃的SLC内存页,包括:
将该活跃的SLC内存页的地址从建立的活跃SLC内存页链表中转移到建立的不活跃SLC内存页链表中。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (22)
1.一种对内存中内存页的处理方法,其特征在于,所述内存中的内存页包括空闲的单层单元SLC内存页、活跃的SLC内存页、不活跃的SLC内存页和多层单元MLC内存页,所述空闲的SLC内存页中的数据为空,所述活跃的SLC内存页中所存储的数据是在设定时间长度内被访问过的数据,所述不活跃的SLC内存页和MLC内存页中所存储的数据是在设定时间长度内未被访问的数据;该处理方法包括:
当确定任一虚拟机VM的空闲单层单元SLC内存页数目小于设定阈值时,将1个空闲的SLC内存页转换为2个MLC内存页;
将2个不活跃的SLC内存页中的数据复制到转换后的所述2个MLC内存页中;
释放所述2个不活跃的SLC内存页中的存储空间,得到2个空闲的SLC内存页。
2.如权利要求1所述的方法,其特征在于,当内存访问频率越高或内存占用率越高时,所述设定时间长度越短;或者,当内存访问频率越高、且内存占用率越高时,所述设定时间长度越短。
3.如权利要求1或2所述的方法,其特征在于,当所述设定阈值越小时,内存访问性能越高、产生缺页的概率越大。
4.如权利要求1~3任一所述的方法,其特征在于,所述确定任一VM的空闲SLC内存页数目小于设定阈值之后,还包括:
若当前不活跃的SLC内存页数目小于2,则将2个MLC内存页中的数据写回外存,并将所述2个MLC内存页转换为1个空闲的SLC内存页。
5.如权利要求4所述的方法,其特征在于,所述确定任一VM的空闲SLC内存页数目小于设定阈值之后,还包括:
若当前不活跃的SLC内存页数目小于2、且当前MLC内存页数目小于2,则为所述任一VM获取其它VM的空闲的内存页。
6.如权利要求1~5任一所述的方法,其特征在于,所述方法还包括:
在接收到内存分配请求后,为该内存分配请求分配空闲的SLC内存页,并将该空闲的SLC内存页重新标识为活跃的SLC内存页。
7.如权利要求6所述的方法,其特征在于,将空闲的SLC内存页重新标识为活跃的SLC内存页,包括:将该空闲的SLC内存页的地址从建立的空闲SLC内存页链表中转移到建立的活跃SLC内存页链表中。
8.如权利要求1~7任一所述的方法,其特征在于,所述方法还包括:
在接收到针对不活跃的SLC内存页的访问请求后,将该不活跃的SLC内存页重新标识为活跃的SLC内存页。
9.如权利要求8所述的方法,其特征在于,将不活跃的SLC内存页重新标识为活跃的SLC内存页,包括:该不活跃的SLC内存页的地址从建立的不活跃SLC内存页链表中转移到建立的活跃SLC内存页链表中。
10.如权利要求1~9任一所述的方法,其特征在于,所述方法还包括:
针对活跃的SLC内存页,若在设定时间长度内没有接收到针对该内存页的访问请求,则将该活跃的SLC内存页重新标识为不活跃的SLC内存页。
11.如权利要求10所述的方法,其特征在于,将活跃的SLC内存页重新标识为不活跃的SLC内存页,包括:
将该活跃的SLC内存页的地址从建立的活跃SLC内存页链表中转移到建立的不活跃SLC内存页链表中。
12.一种对内存中内存页的处理装置,其特征在于,所述内存中的内存页包括空闲的单层单元SLC内存页、活跃的SLC内存页、不活跃的SLC内存页和多层单元MLC内存页,所述空闲的SLC内存页中的数据为空,所述活跃的SLC内存页中所存储的数据是在设定时间长度内被访问过的数据,所述不活跃的SLC内存页和MLC内存页中所存储的数据是在设定时间长度内未被访问的数据;该装置包括:
转换模块,用于当确定任一虚拟机VM的空闲单层单元SLC内存页数目小于设定阈值时,将1个空闲的SLC内存页转换为2个MLC内存页;
复制模块,用于将2个不活跃的SLC内存页中的数据复制到转换后的所述2个MLC内存页中;
释放模块,用于释放所述2个不活跃的SLC内存页中的存储空间,得到2个空闲的SLC内存页。
13.如权利要求12所述的装置,其特征在于,当内存访问频率越高或内存占用率越高时,所述设定时间长度越短;或者,当内存访问频率越高、且内存占用率越高时,所述设定时间长度越短。
14.如权利要求12或13所述的方法,其特征在于,当所述设定阈值越小时,内存访问性能越高、产生缺页的概率越大。
15.如权利要求14所述的装置,其特征在于,所述转换模块还用于,在确定任一VM的空闲SLC内存页数目小于设定阈值之后,若当前不活跃的SLC内存页数目小于2,则将2个MLC内存页中的数据写回外存,并将所述2个MLC内存页转换为1个空闲的SLC内存页。
16.如权利要求15所述的装置,其特征在于,所述转换模块还用于,在确定任一VM的空闲SLC内存页数目小于设定阈值之后,若当前不活跃的SLC内存页数目小于2、且当前MLC内存页数目小于2,则为所述任一VM获取其它VM的空闲的内存页。
17.如权利要求12~16任一所述的装置,其特征在于,所述装置还包括:
第一分配模块,用于在接收到内存分配请求后,为该内存分配请求分配空闲的SLC内存页,并将该空闲的SLC内存页重新标识为活跃的SLC内存页。
18.如权利要求17所述的装置,其特征在于,所述第一分配模块具体用于:将该空闲的SLC内存页的地址从建立的空闲SLC内存页链表中转移到建立的活跃SLC内存页链表中。
19.如权利要求12~18任一所述的装置,其特征在于,所述装置还包括:
第二分配模块,用于在接收到针对不活跃的SLC内存页的访问请求后,将该不活跃的SLC内存页重新标识为活跃的SLC内存页。
20.如权利要求19所述的装置,其特征在于,所述第二分配模块具体用于,将该不活跃的SLC内存页的地址从建立的不活跃SLC内存页链表中转移到建立的活跃SLC内存页链表中。
21.如权利要求12~20任一所述的装置,其特征在于,所述装置还包括:
第三分配模块,用于针对活跃的SLC内存页,若在设定时间长度内没有接收到针对该内存页的访问请求,则将该活跃的SLC内存页重新标识为不活跃的SLC内存页。
22.如权利要求21所述的装置,其特征在于,所述第三分配模块具体用于:
将该活跃的SLC内存页的地址从建立的活跃SLC内存页链表中转移到建立的不活跃SLC内存页链表中。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510021433.XA CN105843748B (zh) | 2015-01-15 | 2015-01-15 | 一种对内存中内存页的处理方法及装置 |
EP15877626.0A EP3239844B1 (en) | 2015-01-15 | 2015-09-25 | Processing method and device for memory page in memory |
PCT/CN2015/090765 WO2016112713A1 (zh) | 2015-01-15 | 2015-09-25 | 一种对内存中内存页的处理方法及装置 |
US15/651,862 US10310971B2 (en) | 2015-01-15 | 2017-07-17 | Method and apparatus for processing memory page in memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510021433.XA CN105843748B (zh) | 2015-01-15 | 2015-01-15 | 一种对内存中内存页的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105843748A true CN105843748A (zh) | 2016-08-10 |
CN105843748B CN105843748B (zh) | 2019-06-11 |
Family
ID=56405212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510021433.XA Active CN105843748B (zh) | 2015-01-15 | 2015-01-15 | 一种对内存中内存页的处理方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10310971B2 (zh) |
EP (1) | EP3239844B1 (zh) |
CN (1) | CN105843748B (zh) |
WO (1) | WO2016112713A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383666A (zh) * | 2016-09-07 | 2017-02-08 | 东信和平科技股份有限公司 | 一种数据存储方法及装置 |
CN107247674A (zh) * | 2017-06-16 | 2017-10-13 | 深圳市万普拉斯科技有限公司 | 内存块类型处理方法、装置、电子设备及可读存储介质 |
CN108920254A (zh) * | 2018-06-27 | 2018-11-30 | 中国科学技术大学 | 一种基于细粒度的内存分配方法 |
CN112527470A (zh) * | 2020-05-27 | 2021-03-19 | 上海有孚智数云创数字科技有限公司 | 用于预测性能指标的模型训练方法、装置及可读存储介质 |
CN112527695A (zh) * | 2020-12-17 | 2021-03-19 | 重庆邮电大学 | 一种基于效益感知的slc/mlc混合内存的页面转换方法 |
CN115061954A (zh) * | 2022-08-18 | 2022-09-16 | 统信软件技术有限公司 | 一种缺页中断处理方法、计算设备及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10096355B2 (en) * | 2015-09-01 | 2018-10-09 | Sandisk Technologies Llc | Dynamic management of programming states to improve endurance |
US10572388B2 (en) | 2017-08-30 | 2020-02-25 | Micron Technology, Inc. | Managed NVM adaptive cache management |
CN114008580A (zh) * | 2019-06-14 | 2022-02-01 | 华为技术有限公司 | 一种硬盘控制方法及相关设备 |
US11126360B2 (en) * | 2019-10-22 | 2021-09-21 | International Business Machines Corporation | Dynamically adjusting block mode pool sizes |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937710A (zh) * | 2009-06-30 | 2011-01-05 | 联发科技股份有限公司 | 固态磁盘驱动和管理存储装置的方法 |
CN102346682A (zh) * | 2010-07-30 | 2012-02-08 | 株式会社东芝 | 信息处理装置及信息处理方法 |
CN102591748A (zh) * | 2011-12-29 | 2012-07-18 | 记忆科技(深圳)有限公司 | 固态硬盘及其掉电保护方法、系统 |
US20140003142A1 (en) * | 2012-06-29 | 2014-01-02 | Samsung Electronics Co., Ltd. | Nonvolatile memory device performing garbage collection |
CN103942151A (zh) * | 2014-04-10 | 2014-07-23 | 深圳市硅格半导体有限公司 | 闪存的数据存储方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078794B2 (en) * | 2000-01-06 | 2011-12-13 | Super Talent Electronics, Inc. | Hybrid SSD using a combination of SLC and MLC flash memory arrays |
TWI416524B (zh) * | 2008-06-25 | 2013-11-21 | Silicon Motion Inc | 記憶體裝置和資料儲存方法 |
JP5066241B2 (ja) | 2010-09-24 | 2012-11-07 | 株式会社東芝 | メモリシステム |
US8886990B2 (en) * | 2011-01-27 | 2014-11-11 | Apple Inc. | Block management schemes in hybrid SLC/MLC memory |
US20120297121A1 (en) * | 2011-05-17 | 2012-11-22 | Sergey Anatolievich Gorobets | Non-Volatile Memory and Method with Small Logical Groups Distributed Among Active SLC and MLC Memory Partitions |
US9141528B2 (en) * | 2011-05-17 | 2015-09-22 | Sandisk Technologies Inc. | Tracking and handling of super-hot data in non-volatile memory systems |
EP2710475A1 (en) * | 2011-05-17 | 2014-03-26 | SanDisk Technologies Inc. | Non-volatile memory and method with small logical groups distributed among active slc and mlc memory partitions |
US9176864B2 (en) | 2011-05-17 | 2015-11-03 | SanDisk Technologies, Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
US9146851B2 (en) * | 2012-03-26 | 2015-09-29 | Compellent Technologies | Single-level cell and multi-level cell hybrid solid state drive |
CN103914410B (zh) * | 2013-01-08 | 2020-01-31 | 联想(北京)有限公司 | 存储装置、电子设备和数据存取方法 |
US9715445B2 (en) * | 2013-03-14 | 2017-07-25 | Sandisk Technologies Llc | File differentiation based on data block identification |
JP6104676B2 (ja) * | 2013-04-01 | 2017-03-29 | 株式会社東芝 | メモリシステム、制御システムおよび寿命予測方法 |
-
2015
- 2015-01-15 CN CN201510021433.XA patent/CN105843748B/zh active Active
- 2015-09-25 WO PCT/CN2015/090765 patent/WO2016112713A1/zh active Application Filing
- 2015-09-25 EP EP15877626.0A patent/EP3239844B1/en active Active
-
2017
- 2017-07-17 US US15/651,862 patent/US10310971B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937710A (zh) * | 2009-06-30 | 2011-01-05 | 联发科技股份有限公司 | 固态磁盘驱动和管理存储装置的方法 |
CN102346682A (zh) * | 2010-07-30 | 2012-02-08 | 株式会社东芝 | 信息处理装置及信息处理方法 |
CN102591748A (zh) * | 2011-12-29 | 2012-07-18 | 记忆科技(深圳)有限公司 | 固态硬盘及其掉电保护方法、系统 |
US20140003142A1 (en) * | 2012-06-29 | 2014-01-02 | Samsung Electronics Co., Ltd. | Nonvolatile memory device performing garbage collection |
CN103942151A (zh) * | 2014-04-10 | 2014-07-23 | 深圳市硅格半导体有限公司 | 闪存的数据存储方法及装置 |
Non-Patent Citations (1)
Title |
---|
RUIJIN ZHOU等: "Leveraging Phase Change Memory to Achieve Efficient Virtual Machine Execution", 《PROCEEDINGS OF THE 9TH ACM SIGPLAN/SIGOPS INTERNATIONAL CONFERENCE ON VIRTUAL EXECUTION ENVIRONMENTS》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383666A (zh) * | 2016-09-07 | 2017-02-08 | 东信和平科技股份有限公司 | 一种数据存储方法及装置 |
CN106383666B (zh) * | 2016-09-07 | 2020-05-01 | 东信和平科技股份有限公司 | 一种数据存储方法及装置 |
CN107247674A (zh) * | 2017-06-16 | 2017-10-13 | 深圳市万普拉斯科技有限公司 | 内存块类型处理方法、装置、电子设备及可读存储介质 |
US11137934B2 (en) | 2017-06-16 | 2021-10-05 | Oneplus Technology (Shenzhen) Co., Ltd. | Memory block type processing method applicable to electronic device electronic device and non-transitory computer readable storage medium |
CN108920254A (zh) * | 2018-06-27 | 2018-11-30 | 中国科学技术大学 | 一种基于细粒度的内存分配方法 |
CN108920254B (zh) * | 2018-06-27 | 2021-07-06 | 中国科学技术大学 | 一种基于细粒度的内存分配方法 |
CN112527470A (zh) * | 2020-05-27 | 2021-03-19 | 上海有孚智数云创数字科技有限公司 | 用于预测性能指标的模型训练方法、装置及可读存储介质 |
CN112527470B (zh) * | 2020-05-27 | 2023-05-26 | 上海有孚智数云创数字科技有限公司 | 用于预测性能指标的模型训练方法、装置及可读存储介质 |
CN112527695A (zh) * | 2020-12-17 | 2021-03-19 | 重庆邮电大学 | 一种基于效益感知的slc/mlc混合内存的页面转换方法 |
CN112527695B (zh) * | 2020-12-17 | 2022-10-11 | 重庆邮电大学 | 一种基于效益感知的slc/mlc混合内存的页面转换方法 |
CN115061954A (zh) * | 2022-08-18 | 2022-09-16 | 统信软件技术有限公司 | 一种缺页中断处理方法、计算设备及存储介质 |
CN115061954B (zh) * | 2022-08-18 | 2022-11-29 | 统信软件技术有限公司 | 一种缺页中断处理方法、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3239844A1 (en) | 2017-11-01 |
EP3239844A4 (en) | 2017-12-20 |
US20170315931A1 (en) | 2017-11-02 |
CN105843748B (zh) | 2019-06-11 |
WO2016112713A1 (zh) | 2016-07-21 |
US10310971B2 (en) | 2019-06-04 |
EP3239844B1 (en) | 2019-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105843748A (zh) | 一种对内存中内存页的处理方法及装置 | |
CN103430159B (zh) | 虚拟化计算环境中的动态内存管理 | |
US8832174B2 (en) | System and method for dynamic task migration on multiprocessor system | |
CN109542333A (zh) | 存储器系统及控制非易失性存储器的控制方法 | |
WO2017206649A1 (zh) | 一种去中心化的分布式异构存储系统数据分布方法 | |
CN102449607B (zh) | 具有多个闪存封装的存储系统 | |
CN102289390B (zh) | 系统管理程序调度器 | |
CN102222014B (zh) | 基于内存热插拔的虚拟机动态内存管理方法 | |
CN102253897B (zh) | 一种内存池管理方法及装置 | |
US10613796B2 (en) | System and method of writing to nonvolatile memory using write buffers | |
CN103297499A (zh) | 一种基于云平台的调度方法及系统 | |
KR102276350B1 (ko) | Nand 버퍼를 갖는 nand 플래시 저장 디바이스 | |
WO2013112124A1 (en) | Managing addressable memory in heterogeneous multicore processors | |
CN1357124A (zh) | 执行处理器语境切换和重调度的系统和方法 | |
CN104346284A (zh) | 一种内存管理方法及内存管理设备 | |
CN103246542A (zh) | 智能缓存及智能终端 | |
CN103345451A (zh) | 一种在多核处理器中缓冲数据的方法 | |
CN102346682A (zh) | 信息处理装置及信息处理方法 | |
CN107408018A (zh) | 用于在固态驱动器中适应垃圾收集资源分配的机制 | |
Min et al. | {eZNS}: An elastic zoned namespace for commodity {ZNS}{SSDs} | |
CN101799832A (zh) | 巨量数据一次性快速写入数据库的方法 | |
CN108984298A (zh) | 一种云计算平台的资源调度方法和系统 | |
CN116400982B (zh) | 配置中继寄存器模块的方法和装置、计算设备和可读介质 | |
CN103164344B (zh) | 一种闪存存储设备中数据管理的方法及装置 | |
CN104182280B (zh) | 面向混合主存嵌入式系统的低能耗rm实时任务调度方法 |
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 |