CN110347338B - 混合内存数据交换处理方法、***及可读存储介质 - Google Patents
混合内存数据交换处理方法、***及可读存储介质 Download PDFInfo
- Publication number
- CN110347338B CN110347338B CN201910527721.0A CN201910527721A CN110347338B CN 110347338 B CN110347338 B CN 110347338B CN 201910527721 A CN201910527721 A CN 201910527721A CN 110347338 B CN110347338 B CN 110347338B
- Authority
- CN
- China
- Prior art keywords
- page
- nvm
- data
- dram
- data page
- 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
Images
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/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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种混合内存数据交换处理方法、***及可读存储介质,所述方法包括:当接收到数据页迁移指令时,根据所述数据页迁移指令的类型进行数据页的迁移;若所述数据页迁移指令的类型为将当前数据页从DRAM迁移至NVM,则判断所述NVM中是否存在未被使用的历史内存页面;若是,则将所述当前数据页存储于历史内存页面,并且根据脏数据位图将脏数据写回到所述历史内存页面中。本发明能够解决现有的数据页迁移到时,无论该数据是来自外存的新数据页还是来自DRAM或NVM,都会为该数据页分配一个新的内存页面,因此增加了不必要的写操作,影响了混合内存性能和寿命的问题,满足了实际应用需求。
Description
技术领域
本发明涉及计算机信息存储技术领域,特别是涉及一种混合内存数据交换处理方法、***及可读存储介质。
背景技术
随着技术的逐渐进步,处理器内集成的核的个数不断增长,服务器、云计算平台对内存容量的需求也不断增长,而内存容量的增长速度较慢,通常的,内存主要都是使用DRAM(DynamicRandomAccessMemory,动态随机存取存储器),而为了提高内存容量的增长速度,研发新型的内存材料成为了必然趋势,目前新型的内存材料研究主要集中在NVM(Non-VolatileMemory,非易失性存储器)材料上,如PCM(PhaseChangeMemory,相变存储器),MRAM(MagneticRandomAccessMemory,磁性随机存储器)和快闪存储器(Flash)等等。这些NVM材料具有位密度高、静态功耗低和非易失等优点,但是NVM等新型的内存材料还存在写寿命有限等缺点,使得这些新型的内存材料还无法完全替代DRAM作为内存,而是作为DRAM的扩展内存。
然而,动态随机存储器(Dynamic Random Access Memory, DRAM)因具备优良的读写性能,被广泛的应用在各种计算机设备中充当内存。但是DRAM受限于“存储墙”问题和“能耗墙”问题,容量很难进一步扩展。而新型非易失存储(Non-volatile Memory, NVM)可以字节寻址,相比于DRAM存储密度更高,能耗更低,而且具备类似于块设备的非易失性。但NVM也有写性能差,读写性能不均衡,写耐久有限等缺陷。
因此,使用NVM和DRAM构建DRAM-NVM混合内存是一种可以有效结合两者优点的方案。现有的数据页迁移到NVM时,无论该数据是来自外存的新数据页还是来自DRAM或NVM,都会为该数据页分配一个新的内存页面,因此增加了不必要的写操作,影响了混合内存性能和寿命。
发明内容
为了解决上述问题,本发明的目的是提供一种能够通过重用NVM中未被重写的历史数据,消除不必要的NVM写操作,提高混合内存性能和寿命的混合内存数据交换处理方法、***、可读存储介质。
根据本发明提供的混合内存数据交换处理方法,所述方法包括如下步骤:
当接收到数据页迁移指令时,根据所述数据页迁移指令的类型进行数据页的迁移;
若所述数据页迁移指令的类型为将当前数据页从DRAM迁移至NVM,则判断所述NVM中是否存在未被使用的历史内存页面;
若是,则将所述当前数据页存储于历史内存页面,并且根据脏数据位图将脏数据写回到所述历史内存页面中。
根据本发明提供的混合内存数据交换处理方法,首先通过判断DRAN和NVM中数据页的冷热来进行数据页的存储及迁移,避免了DRAM受限于“存储墙”和“能耗墙”的问题,以及NVM写性能差,读写性能不均衡,写耐久有限等缺陷的问题,从而实现根据数据访问特征选择适应的存储器以降低软件开销,提高用户数据存储体验的满意度;通过判断所述NVM中是否存在未被使用的历史内存页面,以便于将所述当前数据页存储于历史内存页面,并且根据脏数据位图将脏数据写回到所述历史内存页面中,消除页迁移过程中不必要的NVM写操作以及NVM磨损,提高了混合内存性能和寿命,满足了实际应用需求。
另外,根据本发明上述的混合内存数据交换处理方法,还可以具有如下附加的技术特征:
进一步地,判断所述NVM中是否存在未被使用的历史内存页面的步骤还包括:
若所述NVM中不存在未被使用的历史内存页面,则在所述NVM中为当前数据页分配新内存页面,并将所述当前数据页存储于新内存页面中。
进一步地,当接收到数据页迁移指令时,根据所述数据页迁移指令的类型进行数据页的迁移的步骤之前,所述方法还包括:
根据访问周期内监控内存中数据页的历史访问特征判断所述当前数据页的热度;
通过所述当前数据页的热度确定该数据页的类型,并根据该数据页的类型生成相应的数据页迁移指令。
进一步地,若所述数据页迁移指令的类型为将当前数据页从DRAM迁移至NVM的步骤之前,所述方法还包括:
将所述DRAM中的当前数据页划分为多个细粒度单元,每个细粒度单元对应脏数据位图中一个比特位;
当所述当前数据页被写请求命中时,则根据页内偏移量确定被命中的细粒度单元,并将脏数据位图中对应比特位置1。
进一步地,若所述数据页迁移指令的类型为将当前数据页从DRAM迁移至NVM,则判断所述NVM中是否存在未被使用的历史内存页面的步骤包括:
获取NVM表中DRAM页面号与NVM页面号的映射关系,以及DRAM表中NVM页面号与DRAM页面号的映射关系;
以当前DRAM页面号为索引检索所述NVM表,确认所述当前数据页在NVM中是否存在未被使用的历史内存页面。
进一步地,以当前DRAM页面号为索引检索所述NVM表,确认所述当前数据页在NVM中是否存在未被使用的历史内存页面的步骤包括:
使用所述NVM页面号为索引搜索DRAM表,确认所述NVM页面所对应的DRAM页面是否一致;
若是,所述当前数据页在NVM中存在未被使用的历史内存页面;
若否,则所述当前数据页在NVM中已经被其他数据页占据,其历史数据也被覆盖。
进一步地,所述方法还包括:
若所述数据页迁移指令的类型为将当前数据页从NVM迁移至DRAM,则根据所述数据页迁移指令更新NVM表和DRAM表;
若外存中的新数据页直接进入DRAM中,则该数据页所使用的DRAM页面在NVM表中对应的NVM页面号设置为-1。
进一步地,所述DRAM中数据页的热度大于NVM中数据页的热度。
本发明的另一实施例提出一种混合内存数据交换处理***,解决了现有的数据页迁移到时,无论该数据是来自外存的新数据页还是来自DRAM或NVM,都会为该数据页分配一个新的内存页面,因此增加了不必要的写操作,影响了混合内存性能和寿命的问题,提高了用户数据存储体验的满意度。
根据本发明实施例的混合内存数据交换处理***,包括:
迁移模块,用于当接收到数据页迁移指令时,根据所述数据页迁移指令的类型进行数据页的迁移;
判断模块,用于若所述数据页迁移指令的类型为将当前数据页从DRAM迁移至NVM,则判断所述NVM中是否存在未被使用的历史内存页面;
存储模块,用于将所述当前数据页存储于历史内存页面,并且根据脏数据位图将脏数据写回到所述历史内存页面中。
本发明的另一个实施例还提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实施例了解到。
附图说明
图1是本发明第一实施例提出的混合内存数据交换处理方法的流程图;
图2是图1的具体实施例的原理结构示意图;
图3是图1中的脏数据位图;
图4是图1中步骤S102的具体流程图;
图5是图1的中数据页迁移的原理示意图;
图6是图1的另一具体实施例的原理示意图;
图7是本发明第二实施例提出的混合内存数据交换处理***的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明第一实施例提出的一种混合内存数据交换处理方法,其中,包括步骤S101~S103:
步骤S101,当接收到数据页迁移指令时,根据所述数据页迁移指令的类型进行数据页的迁移。
本实施例中,以数据存储设备为例进行说明,但需要了解的是,本发明实施例并不限于此,本发明实施例的方法可以应用在任何数据存储设备中,即任何可进行数据存储的电子设备中。具体的,现有技术中,传统的动态随机存储器(Dynamic Random AccessMemory, DRAM)因具备优良的读写性能,被广泛的应用在各种计算机设备中充当内存。但是DRAM受限于“存储墙”问题和“能耗墙”问题,容量很难进一步扩展。而新兴非易失存储(Non-volatile Memory, NVM)可以字节寻址,相比于DRAM存储密度更高,能耗更低,而且具备类似于块设备的非易失性。但NVM也有写性能差,读写性能不均衡,写耐久有限等缺陷。使用NVM和DRAM构建DRAM-NVM混合内存是一种可以有效结合两者优点的方案。为了充分发挥混合内存异构硬件优势,需要根据数据访问特征选择适应的存储器,将热数据存储在DRAM中,而冷数据存储在NVM中。然而,在DRAM内存页面耗尽时,将一个热数据页迁移到DRAM中会导致一个冷数据页被从DRAM中换出到NVM中,频繁的数据页迁移会导致大量额外的NVM写操作。
具体实施时,请参阅图2,将存储设备的存储区划分为DRAM区及NVM区。其中DRAM中用于存储数据访问热度高的数据页,NVM中用于存储数据访问热度低的数据页。将冷热数据页分开管理,从而实现了存储数据存储与调用的效率,且进一步提高了存储空间性能与数据页的命中率。
进一步地,当接收到数据页迁移指令时,根据所述数据页迁移指令的类型进行数据页的迁移的步骤之前,所述方法还包括:根据访问周期内监控内存中数据页的历史访问特征判断所述当前数据页的热度;通过所述当前数据页的热度确定该数据页的类型,并根据该数据页的类型生成相应的数据页迁移指令。可以理解的,所述当前数据页的热度为实时获取的,以提高数据页迁移的及时性及可靠性;为准确确定并预测所述当前数据页的热度,因此可通过访问周期内监控内存中数据页的历史访问特征进行计算与分析来确定;通过根据该数据页的类型生成相应的数据页迁移指令,以便于监控内存中的当前数据页根据该数据页迁移指令进行数据页的迁移。
其中,根据访问周期内监控内存中数据页的历史访问特征判断所述当前数据页的热度的方法可以为:将所述DRAM区NVM区的数据页均匀划分为多个小部分,每个小部分为一个细粒度单元,每个细粒度单元大小和Cache line大小相同,并通过位图来记录每个部分的访问状态,如果访问了一个位图部分,则可在位图中的相应位置设置为1,否则设置为0,也可通过颜色填充来记录,在此不作限制。此外,还可以在该位图中增加一个标志指示位,以确定该数据页是否在一个访问周期内被访问。当DRAM区中一个数据页的空间访问量小于预设值或小于NVM区中任一数据页的空间访问量,且在一个访问周期内未被访问,则所述当前数据页为冷数据页。当NVM区中一个数据页的空间访问量大于等于预设值或小于DRAM区中任一数据页的空间访问量,且在一个访问周期内被访问,则所述当前数据页为热数据页。可以理解的,所述当前数据页是否为冷数据页或热数据页的判断标准与时机还可根据实际需求进行调整,在此不做限制。
进一步地,对每个所述数据页所对应的源地址进行哈希计算,以得到数据页指纹,建立所述数据页指纹与数据页对应的布隆过滤器数组。其中,通过所述布隆过滤器数组的设置,实现了对当前存储设备中的数据页及该数据页所对应的源地址进行整合处理,以便于进行新数据页缓存时,及时确定该新数据页是否为重复数据页,即所述存储设备中已存在于该新数据页内容相同的数据页,避免了重复数据页的写入而降低该存储设备的空间利用率及***性能。
在本实施例中,根据访问周期内当前数据页的空间访问量确定当前数据页是否为冷数据页,从而可以更准确地识别数据页的内容热度,最小化冷热数据页的判断误差,从而提高了数据页迁移指令的准确性及可靠性;通过当接收到数据页迁移指令时,根据当前数据页的冷热类型进行数据页的迁移,以提高混合内存的性能和寿命。
步骤S102,若所述数据页迁移指令的类型为将当前数据页从DRAM迁移至NVM,则判断所述NVM中是否存在未被使用的历史内存页面。
如上所述,当所述数据页迁移指令为将当前数据页从DRAM迁移至NVM,则需判断所述NVM中是否存在当前数据页的历史内存页面,且该历史内存页面未被使用或覆盖,以便于确定是否将所述当前数据页存储于历史内存页面或是在NVM中为所述当前数据页分配新的内存页面。
请参阅图3,其中,所述若所述数据页迁移指令的类型为将当前数据页从DRAM迁移至NVM的步骤之前,所述方法还包括:将所述DRAM中的当前数据页划分为多个细粒度单元,每个细粒度单元对应脏数据位图中一个比特位;当所述当前数据页被写请求命中时,则根据页内偏移量确定被命中的细粒度单元,并将脏数据位图中对应比特位置1。可以理解的,在DRAM中的数据页被划分为多个细粒度单元,每个细粒度单元对应脏数据位图中一个比特位,单元大小和cache line的大小相同,一般为64bytes大小,当一个数据页被写请求命中时则根据页内偏移量确定是哪一个单元被写请求命中并将脏数据位图中对应比特位置为1,从而实现对DRAM中数据页访问状态的准确确定。
请参阅图4,若所述数据页迁移指令的类型为将当前数据页从DRAM迁移至NVM,则判断所述NVM中是否存在未被使用的历史内存页面的步骤包括:
步骤S1021,获取NVM表中DRAM页面号与NVM页面号的映射关系,以及DRAM表中NVM页面号与DRAM页面号的映射关系。
步骤S1022,以当前DRAM页面号为索引检索所述NVM表,确认所述当前数据页在NVM中是否存在未被使用的历史内存页面。
进一步地,由于NVM表中DRAM页面号与NVM页面号的映射关系,以及DRAM表中NVM页面号与DRAM页面号的映射关系为一一对应的,且该映射关系记录了所述当前数据页在DRAM表及NVM表中的迁移记录。通过使用所述NVM页面号为索引搜索DRAM表,确认所述NVM页面所对应的DRAM页面是否一致来判断当前数据页在NVM中存在未被使用的历史内存页面,或者所述当前数据页在NVM中已经被其他数据页占据,其历史数据也被覆盖。
作为一个具体的实施例,为减少NVM写操作,同时也必须在DRAM数据页迁移到NVM时,确定DRAM数据页在NVM中曾使用的历史内存页面。为此,引入了旧NVM内存页面表(简称NVM表)和旧DRAM内存页面表(简称DRAM表)。两个表分别记录了DRAM页面号到NVM页面号以及NVM页面号到DRAM页面号的映射,如图5所示。
在NVM表中,一条映射关系包含一个DRAM页面号和一个NVM页面号,用于记录某个DRAM页面所存储的数据页在迁移入DRAM之前,所使用的NVM页面。以图5中NVM表的第三项为例,DRAM页面号5,NVM页面号8,表示5号DRAM内存页面所存储的数据页在换入DRAM之前,存储在8号NVM内存页面中。对于直接来自外存而非从NVM迁移到DRAM的全新数据页,其在NVM表中对应的旧内存页面号被置为 -1,即表示对应的旧NVM页面不存在。当一个数据页从DRAM迁移出之后,该数据页原先所在的DRAM页面所对应的旧NVM页面号同样会被重置为 -1。NVM表用于在一个数据页从DRAM迁移出时,确定该数据页在NVM中是否具有一个曾使用的NVM页面以及该页面的位置。
在DRAM表中,一条映射关系包含一个NVM页面号和一个DRAM页面号,用于记录数据页在迁移入DRAM之前所使用的NVM页面和迁移入DRAM之后所使用的DRAM页面。以图5中DRAM表的第三项为例,NVM页面号为8,DRAM页面号为5,表示8号NVM帧中存储的数据页被迁移入DRAM中并存储在5号DRAM帧中。对于直接来自外存而非从DRAM迁移到NVM的全新数据页,其对应的DRAM页面号会被置为 -1,表示对应的DRAM页面不存在。可以理解的,若一个NVM页面被其他数据页所占据和使用,该NVM帧所对应的DRAM页面号同样会被重置,表示该页面被其他页面覆盖,其中历史数据已经失效。DRAM表用于在一个数据页从DRAM换出到NVM时,在成功定位其旧内存页面之后,确定该旧内存页面是否被其他数据页占据和使用。
步骤S103,若是,则将所述当前数据页存储于历史内存页面,并且根据脏数据位图将脏数据写回到所述历史内存页面中。
如上所述,若所述NVM中存在未被使用的历史内存页面,则将所述当前数据页存储于历史内存页面,并且根据脏数据位图将脏数据写回到所述历史内存页面中,而干净的数据则无需写回,以减少NVM写操作和磨损。
可以理解的,若所述数据页迁移指令的类型为将当前数据页从NVM迁移至DRAM,则在所述DRAM中为所述当前数据页分配新内存页面,并根据所述数据页迁移指令更新NVM表和DRAM表;若外存中的新数据页直接进入DRAM中,则该数据页所使用的DRAM页面在NVM表中对应的NVM页面号设置为-1;若所述NVM中不存在未被使用的历史内存页面,则在所述NVM中为当前数据页分配新内存页面,并将所述当前数据页存储于新内存页面中。
在DRAM中一个数据页换出到NVM时,需根据脏数据位图,尽可能的只写回脏数据,消除不必要的NVM写操作。具体来说,分类两个情况:数据从NVM迁移入DRAM;数据页从DRAM迁移出NVM。
当数据页从NVM迁移入DRAM时,则会更新NVM表和DRAM表中条目。在NVM表中记录该数据页在NVM中所使用的旧内存页面,以当前DRAM页面号为索引;在DRAM表中记录该数据页当前使用的DRAM页面号,使用数据页的旧NVM内存页面为索引。如果外存中的全新数据页直接进入DRAM中,则该数据页所使用的DRAM页面在NVM表中对应的旧NVM页面号设置为 -1。
当数据页从DRAM迁移到NVM时,则首先以当前DRAM页面号为索引检索NVM表,确认该数据页是否存在一个对应的旧NVM内存页面。假设旧NVM页面不存在,则直接为该数据页分配一个新内存页面。假设一个对应的旧NVM内存页面存在,则使用旧NVM页面号为索引搜索DRAM表,进一步确认该旧NVM页面所对应的DRAM页面。假设DRAM表中对应记录的DRAM页面号为 -1,说明该旧NVM页面已经被其他数据页占据,其中历史数据也被覆盖,需要为即将迁移出DRAM的数据页分配全新的NVM内存页面。假设DRAM表中对应记录的DRAM页面号不为 -1,但是也不等于即将换出的数据页的DRAM页面号,说明该旧NVM页面曾被其他数据页所使用且后来的数据页也已经被换入到DRAM中,此时仍旧需要为即将换出的数据页分配新NVM内存页面。假设DRAM表中对应记录的DRAM页面和即将换出的数据页的DRAM页面相同,说明旧NVM页面仍旧可用。此时,直接为数据页分配该旧NVM页面并且根据脏数据位图将脏数据写回到旧NVM页面中,而干净的数据则无需写回,减少NVM写操作和磨损。
请参阅图6,以一种极端情况为例,数据页P被判定为热数据而从NVM迁移到DRAM中;在DRAM中,数据页P没有被写请求命中,该数据页中数据相比于刚刚换入DRAM时,未发生任何变化;数据页P被识别为冷数据并迁移回到NVM;由于该数据页中数据相比于刚刚换入DRAM时,未发生任何变化,按照现有的混合内存数据页迁移策略,NVM中存在一个未被其他数据页写入或覆盖的历史内存页面,则将整个数据页写入到该NVM中的历史内存页面中。
根据本发明提供的混合内存数据交换处理方法,首先通过判断DRAN和NVM中数据页的冷热来进行数据页的存储及迁移,避免了DRAM受限于“存储墙”和“能耗墙”的问题,以及NVM写性能差,读写性能不均衡,写耐久有限等缺陷的问题,从而实现根据数据访问特征选择适应的存储器以降低软件开销,提高用户数据存储体验的满意度;通过判断所述NVM中是否存在未被使用的历史内存页面,以便于将所述当前数据页存储于历史内存页面,并且根据脏数据位图将脏数据写回到所述历史内存页面中,消除页迁移过程中不必要的NVM写操作以及NVM磨损,提高了混合内存性能和寿命,满足了实际应用需求。
请参阅图7,基于同一发明构思,本发明第二实施例提供的混合内存数据交换处理***,包括:
迁移模块10,用于当接收到数据页迁移指令时,根据所述数据页迁移指令的类型进行数据页的迁移。若所述数据页迁移指令的类型为将当前数据页从NVM迁移至DRAM,则根据所述数据页迁移指令更新NVM表和DRAM表;若外存中的新数据页直接进入DRAM中,则该数据页所使用的DRAM页面在NVM表中对应的NVM页面号设置为-1,其中,所述DRAM中数据页的热度大于NVM中数据页的热度。
本实施例中,所述迁移模块10包括:
判断单元11,用于根据访问周期内监控内存中数据页的历史访问特征判断所述当前数据页的热度。
生成单元12,用于通过所述当前数据页的热度确定该数据页的类型,并根据该数据页的类型生成相应的数据页迁移指令。
判断模块20,用于若所述数据页迁移指令的类型为将当前数据页从DRAM迁移至NVM,则判断所述NVM中是否存在未被使用的历史内存页面。若所述NVM中不存在未被使用的历史内存页面,则在所述NVM中为当前数据页分配新内存页面,并将所述当前数据页存储于新内存页面中。
本实施例中,所述判断模块20包括:
获取单元21,用于获取NVM表中DRAM页面号与NVM页面号的映射关系,以及DRAM表中NVM页面号与DRAM页面号的映射关系。
确认单元22,用于以当前DRAM页面号为索引检索所述NVM表,确认所述当前数据页在NVM中是否存在未被使用的历史内存页面。
具体的,使用所述NVM页面号为索引搜索DRAM表,确认所述NVM页面所对应的DRAM页面是否一致;若是,所述当前数据页在NVM中存在未被使用的历史内存页面;若否,则所述当前数据页在NVM中已经被其他数据页占据,其历史数据也被覆盖。
本实施例中,所述判断模块20还用于将所述DRAM中的当前数据页划分为多个细粒度单元,每个细粒度单元对应脏数据位图中一个比特位;当所述当前数据页被写请求命中时,则根据页内偏移量确定被命中的细粒度单元,并将脏数据位图中对应比特位置1。
存储模块30,用于将所述当前数据页存储于历史内存页面,并且根据脏数据位图将脏数据写回到所述历史内存页面中。
根据本发明提供的混合内存数据交换处理***,首先通过判断DRAN和NVM中数据页的冷热来进行数据页的存储及迁移,避免了DRAM受限于“存储墙”和“能耗墙”的问题,以及NVM写性能差,读写性能不均衡,写耐久有限等缺陷的问题,从而实现根据数据访问特征选择适应的存储器以降低软件开销,提高用户数据存储体验的满意度;通过判断所述NVM中是否存在未被使用的历史内存页面,以便于将所述当前数据页存储于历史内存页面,并且根据脏数据位图将脏数据写回到所述历史内存页面中,消除页迁移过程中不必要的NVM写操作以及NVM磨损,提高了混合内存性能和寿命,满足了实际应用需求。
本发明实施例提出的混合内存数据交换处理***的技术特征和技术效果与本发明实施例提出的方法相同,在此不予赘述。
此外,本发明的实施例还提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
此外,本发明的实施例还提出一种缓存设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述方法的步骤。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (5)
1.一种混合内存数据交换处理方法,其特征在于,将存储设备的存储区划分为用于存储热数据的DRAM区及用于存储冷数据的NVM区,当DRAM区中一个数据页的空间访问量小于预设值或小于NVM区中任一数据页的空间访问量,且在一个访问周期内未被访问,则当前数据页为冷数据页;当NVM区中一个数据页的空间访问量大于等于预设值或小于DRAM区中任一数据页的空间访问量,且在一个访问周期内被访问,则当前数据页为热数据页,所述方法包括如下步骤:
当接收到数据页迁移指令时,根据所述数据页迁移指令的类型进行数据页的迁移;
将DRAM中的当前数据页划分为多个细粒度单元,每个细粒度单元对应脏数据位图中一个比特位;当所述当前数据页被写请求命中时,根据页内偏移量确定被命中的细粒度单元,并将脏数据位图中对应比特位置1;
若所述数据页迁移指令的类型为将当前数据页从DRAM迁移至NVM,则通过获取NVM表中DRAM页面号与NVM页面号的映射关系,以及DRAM表中NVM页面号与DRAM页面号的映射关系,判断当前数据页在NVM中是否存在未被使用的历史内存页面,或者所述当前数据页在NVM中已经被其他数据页占据;其中,若当前数据页在NVM中存在未被使用的历史内存页面,则将所述当前数据页存储于历史内存页面,并且根据脏数据位图将脏数据写回到所述历史内存页面中;
若所述数据页迁移指令的类型为将当前数据页从NVM迁移至DRAM,则根据所述数据页迁移指令更新NVM表和DRAM表;若所述NVM中不存在未被使用的历史内存页面,则在所述NVM中为当前数据页分配新内存页面,并将所述当前数据页存储于新内存页面中;其中,在NVM表中记录该数据页在NVM中所使用的旧内存页面,以当前DRAM页面号为索引;在DRAM表中记录该数据页当前使用的DRAM页面号,使用数据页的旧NVM内存页面为索引。
2.根据权利要求1所述的混合内存数据交换处理方法,其特征在于,所述方法还包括:
若外存中的新数据页直接进入DRAM中,则该数据页所使用的DRAM页面在NVM表中对应的NVM页面号设置为-1。
3.根据权利要求1至2任意一项所述的混合内存数据交换处理方法,其特征在于,所述DRAM中数据页的热度大于NVM中数据页的热度。
4.一种混合内存数据交换处理***,其特征在于,将存储设备的存储区划分为用于存储热数据的DRAM区及用于存储冷数据的NVM区,当DRAM区中一个数据页的空间访问量小于预设值或小于NVM区中任一数据页的空间访问量,且在一个访问周期内未被访问,则当前数据页为冷数据页;当NVM区中一个数据页的空间访问量大于等于预设值或小于DRAM区中任一数据页的空间访问量,且在一个访问周期内被访问,则当前数据页为热数据页,所述***包括:
迁移模块,用于当接收到数据页迁移指令时,根据所述数据页迁移指令的类型进行数据页的迁移;
判断模块,用于将DRAM中的当前数据页划分为多个细粒度单元,每个细粒度单元对应脏数据位图中一个比特位;当所述当前数据页被写请求命中时,根据页内偏移量确定被命中的细粒度单元,并将脏数据位图中对应比特位置1;
存储模块,用于若所述数据页迁移指令的类型为将当前数据页从DRAM迁移至NVM,则通过获取NVM表中DRAM页面号与NVM页面号的映射关系,以及DRAM表中NVM页面号与DRAM页面号的映射关系,判断当前数据页在NVM中存在未被使用的历史内存页面,或者所述当前数据页在NVM中已经被其他数据页占据;其中,若当前数据页在NVM中存在未被使用的历史内存页面,则将所述当前数据页存储于历史内存页面,并且根据脏数据位图将脏数据写回到所述历史内存页面中;
若所述数据页迁移指令的类型为将当前数据页从NVM迁移至DRAM,则根据所述数据页迁移指令更新NVM表和DRAM表;若所述NVM中不存在未被使用的历史内存页面,则在所述NVM中为当前数据页分配新内存页面,并将所述当前数据页存储于新内存页面中;其中,在NVM表中记录该数据页在NVM中所使用的旧内存页面,以当前DRAM页面号为索引;在DRAM表中记录该数据页当前使用的DRAM页面号,使用数据页的旧NVM内存页面为索引。
5.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3任意一项所述的混合内存数据交换处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910527721.0A CN110347338B (zh) | 2019-06-18 | 2019-06-18 | 混合内存数据交换处理方法、***及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910527721.0A CN110347338B (zh) | 2019-06-18 | 2019-06-18 | 混合内存数据交换处理方法、***及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347338A CN110347338A (zh) | 2019-10-18 |
CN110347338B true CN110347338B (zh) | 2021-04-02 |
Family
ID=68182265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910527721.0A Active CN110347338B (zh) | 2019-06-18 | 2019-06-18 | 混合内存数据交换处理方法、***及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347338B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984188B (zh) * | 2020-06-30 | 2021-09-17 | 重庆大学 | 混合内存数据的管理方法、装置及存储介质 |
CN113608698B (zh) * | 2021-08-05 | 2024-02-23 | 上海理工大学 | 一种基于DRAM牺牲Cache的异构内存页迁移***及方法 |
CN113835624A (zh) * | 2021-08-30 | 2021-12-24 | 阿里巴巴(中国)有限公司 | 基于异构内存的数据迁移方法及装置 |
CN118113633A (zh) * | 2022-11-30 | 2024-05-31 | 华为技术有限公司 | 一种数据处理方法以及相关设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999441A (zh) * | 2012-11-15 | 2013-03-27 | 清华大学 | 一种细粒度内存访问的方法 |
CN104239225A (zh) * | 2014-09-04 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | 一种管理异构混合内存的方法及装置 |
CN105404673A (zh) * | 2015-11-19 | 2016-03-16 | 清华大学 | 基于nvram的高效文件***构建方法 |
CN107193646A (zh) * | 2017-05-24 | 2017-09-22 | 中国人民解放军理工大学 | 一种基于混合主存架构的高效动态页面调度方法 |
CN107615254A (zh) * | 2015-05-21 | 2018-01-19 | 新加坡科技研究局 | 混合对象存储设备的高速缓存架构和算法 |
CN107818052A (zh) * | 2016-09-13 | 2018-03-20 | 华为技术有限公司 | 内存访问方法及装置 |
CN108762671A (zh) * | 2018-05-23 | 2018-11-06 | 中国人民解放军陆军工程大学 | 基于pcm和dram的混合内存***及其管理方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023845B (zh) * | 2010-12-17 | 2014-05-21 | 曙光信息产业(北京)有限公司 | 一种基于状态机的Cache并发访问管理方法 |
CN102609361B (zh) * | 2012-01-16 | 2015-06-24 | 北京红山世纪科技有限公司 | 虚拟机存储数据迁移方法和装置 |
CN105094686B (zh) * | 2014-05-09 | 2018-04-10 | 华为技术有限公司 | 数据缓存方法、缓存和计算机*** |
CN106951376B (zh) * | 2017-02-27 | 2019-10-29 | 清华大学 | 面向闪存的细粒度非易失缓存***以及缓存管理方法 |
US10585598B2 (en) * | 2017-09-29 | 2020-03-10 | Hewlett Packard Enterprise Development Lp | Modifying accessibility based on memory access patterns |
US10726879B2 (en) * | 2017-12-08 | 2020-07-28 | Samsung Electronics Co., Ltd. | Low-power data transfer from buffer to flash memory |
CN108920096A (zh) * | 2018-06-06 | 2018-11-30 | 深圳忆联信息***有限公司 | 一种ssd的数据储存方法、装置、计算机设备及存储介质 |
-
2019
- 2019-06-18 CN CN201910527721.0A patent/CN110347338B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999441A (zh) * | 2012-11-15 | 2013-03-27 | 清华大学 | 一种细粒度内存访问的方法 |
CN104239225A (zh) * | 2014-09-04 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | 一种管理异构混合内存的方法及装置 |
CN107615254A (zh) * | 2015-05-21 | 2018-01-19 | 新加坡科技研究局 | 混合对象存储设备的高速缓存架构和算法 |
CN105404673A (zh) * | 2015-11-19 | 2016-03-16 | 清华大学 | 基于nvram的高效文件***构建方法 |
CN107818052A (zh) * | 2016-09-13 | 2018-03-20 | 华为技术有限公司 | 内存访问方法及装置 |
CN107193646A (zh) * | 2017-05-24 | 2017-09-22 | 中国人民解放军理工大学 | 一种基于混合主存架构的高效动态页面调度方法 |
CN108762671A (zh) * | 2018-05-23 | 2018-11-06 | 中国人民解放军陆军工程大学 | 基于pcm和dram的混合内存***及其管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110347338A (zh) | 2019-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347338B (zh) | 混合内存数据交换处理方法、***及可读存储介质 | |
US11709597B2 (en) | Memory system and method for controlling nonvolatile memory | |
CN107193646B (zh) | 一种基于混合主存架构的高效动态页面调度方法 | |
US9846641B2 (en) | Variability aware wear leveling | |
US20180121351A1 (en) | Storage system, storage management apparatus, storage device, hybrid storage apparatus, and storage management method | |
US9128847B2 (en) | Cache control apparatus and cache control method | |
US9032244B2 (en) | Memory segment remapping to address fragmentation | |
CN108804350A (zh) | 一种内存访问方法及计算机*** | |
CN105930282B (zh) | 一种用于nand flash的数据缓存方法 | |
US20200117368A1 (en) | Method for achieving data copying in ftl of solid state drive, system and solid state drive | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN109952565B (zh) | 内存访问技术 | |
JP2011530133A (ja) | キャッシュコンテンツの記憶管理 | |
CN110532200B (zh) | 一种基于混合内存架构的内存*** | |
CN110795363B (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
CN110147331B (zh) | 缓存数据处理方法、***及可读存储介质 | |
CN109918316B (zh) | 一种减少ftl地址映射空间的方法及其*** | |
CN113282249B (zh) | 一种数据处理方法、***、设备以及介质 | |
WO2014142337A1 (ja) | ストレージ装置と方法及びプログラム | |
KR101190001B1 (ko) | 비휘발성 메모리를 포함한 메인 메모리상에서 파일시스템의 접근을 지원하기 위한 가상 메모리 시스템 | |
CN113342276B (zh) | 一种日志保存方法、***、设备以及介质 | |
CN108664217B (zh) | 一种降低固态盘存储***写性能抖动的缓存方法及*** | |
CN114281719A (zh) | 用于通过地址映射来扩展命令编排的***及方法 | |
CN116540950B (zh) | 一种存储器件及其写入数据的控制方法 | |
CN110968527B (zh) | Ftl提供的缓存 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |