CN109901800B - 一种混合内存系统及其操作方法 - Google Patents
一种混合内存系统及其操作方法 Download PDFInfo
- Publication number
- CN109901800B CN109901800B CN201910194084.XA CN201910194084A CN109901800B CN 109901800 B CN109901800 B CN 109901800B CN 201910194084 A CN201910194084 A CN 201910194084A CN 109901800 B CN109901800 B CN 109901800B
- Authority
- CN
- China
- Prior art keywords
- data
- page
- count
- overhead
- memory
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Dram (AREA)
Abstract
本发明涉及存储领域,具体涉及了一种混合内存系统及其操作方法,分别设置全局访问计数、数据页的访问计数、数据页的热度计数,并给出了热度计数的计算方法,使DRAM存储器和NVM存储器中的数据页能够以相同的标准进行冷热的评估,可以使混合内存系统能够正确的识别冷热数据,减少无效的数据页交换,可以避免大量的额外开销。在此基础上,还提出根据混合内存系统中的开销情况,及时对冷数据阈值、热数据阈值及新数据阈值做出动态调整的操作方法,提高混合内存系统的性能。
Description
技术领域
本发明涉及存储领域,特别是涉及一种混合内存系统及其操作方法。
背景技术
传统的DRAM存储虽然性能优秀,却面临低扩展性和高能耗两方面的问题。成为了高性能系统中DRAM应用的新瓶颈。而新兴的非易失性存储技术,如PCM,STT-RAM等,具有与DRAM相似的性能,可以字节寻址,而且相比于DRAM,NVM存储密度更高,能耗更低,可以持久性存储数据,是一种备受期待的新型存储技术。其中相变存储器(PCM)是发展较好,研究较多的一种非易失性存储技术,很可能替代DRAM用于作为大容量内存。但是由于PCM本身的一些缺陷,使用PCM作为内存仍旧存在一些问题。比如PCM的性能相比DRAM较差,读写性能不均衡,写耐久有限等。因此,使用少量的DRAM和大容量PCM构建混合内存系统是一种有效结合DRAM和NVM优点的方法。
现有的混合内存系统主要分为两种不同的结构。一种是DRAM和NVM(非易失性存储)并列,作为同等的存储,共享地址空间,由操作系统或者硬件进行数据的管理,称之为混合内存系统。另一种模型是DRAM作为NVM的缓存,由硬件管理,DRAM缓存对于操作系统不可见,称之为DRAM缓存结构。两种混合内存系统模型如图2所示。相比于DRAM缓存结构,混合内存系统可以更加充分的利用珍贵的DRAM存储空间,并且可以对数据进行更加灵活有效的管理。本申请的改进基于附图2中(a)混合存储构架。
对于混合内存系统,为了充分发挥混合内存的优势,需要预测存储页的访问特征并尽可能的使用少量DRAM吸收写操作,将热数据或者写密集数据页交换到DRAM中,而冷数据或者读密集数据页则存储在大容量的NVM中。然而数据页的交换将会带来巨大的额外开销,错误的预测和无效的页交换会大大降低整个存储系统的性能,提高存储系统的能耗。因此,一个高效,准确的数据页管理与交换方法对于整个混合内存系统而言,尤为重要。
现有技术对于数据页的冷热评价都是PCM和DRAM相分离的,即DRAM和PCM中数据采用不同的机制进行数据冷热的判断。一旦PCM中的数据页被认为是热数据,就将之换入到DRAM中,并从DRAM换出一个牺牲页。然而,由于筛选机制不同,被选中的PCM数据页只是PCM中的局部热数据,而不一定是全局热数据;从DRAM中被选中的牺牲页可能只是相对于DRAM中其他的页而言,“较冷”的数据,而不一定是全局的冷数据。该问题带来直接影响是部分较热的DRAM数据页作为牺牲页从DRAM换出到NVM中。而之后该页可能被再次写命或者累计了一定的访问量,又被作为热数据换入到DRAM中。如此反复的交换和抖动带来了大量的开销,影响了系统的性能。
此外,现有的混合内存系统在写入外存数据,即非本混合内存系统中的数据时,都认为新数据(即外存数据)可能会被更加频繁的访问而将之直接存储在DRAM中。而如果DRAM中没有空闲空间,则从中换出一个牺牲页。换言之,当DRAM存储器空间耗尽时,每一个新数据页进入都会引发一次额外的交换。而如果新数据页在DRAM中的读写次数较少,相比于新数据页直接存储在PCM中,其带来的收益无法补偿页交换的开销,就会导致性能的下降。比如bzip2负载中,对其读写次数进行统计,即使所有的数据页都在生命周期的最后才从DRAM换出到PCM,也只有不到1%的数据页在存储器中的读写次数可以补偿交换的开销。更为严重的是,新数据页直接存储到DRAM可能导致类似于前文中提到的“抖动”的现象:较热的数据作为牺牲页换出到NVM,之后又被访问并换入到DRAM中。因此,对于外存数据,需要重新衡量其放置策略。
由于现有的混合内存系统不能准确地识别冷热数据,造成了许多无效的数据页交换,给混合内存系统带来巨大的开销,降低了混合内存系统的性能。
发明内容
为了解决上述问题,本发明的目的是提供一种混合内存系统及其操作方法。
本发明提供了一种混合内存系统的操作方法,设置全局访问计数,设置数据页的热度计数和访问计数,所述操作方法包括:
检测到所述混合内存系统的数据页被访问;
计算所述数据页的热度计数;
将所述数据页的访问计数更新为所述全局访问计数;
其中,所述全局访问计数为所述混合内存系统中所有数据页被访问的次数的和;所述热度计数指示数据页被再次访问的概率。
作为优选的技术方案,计算热度计数hot_countnew的依据为:
其中:hot_countnew和hot_countold分别为计算后和计算前的所述数据页的热度计数;acc_countglobal为计算时刻的全局访问计数;acc_countpage为计算时刻所述数据页的访问计数;dram_page_num为所述DRAM存储器数据页的总量。
作为优选的技术方案,所述操作方法还包括:
检测到所述数据页的被访问操作为所述NVM存储器中的数据页被读取时,判断是否满足条件:所述DRAM存储器中空白数据页不足,所述数据页的热度计数同时大于牺牲页的热度计数和热数据阈值,且所述牺牲页的热度计数小于冷数据阈值;
若是,交换所述被访问数据页与所述牺牲页的数据。
作为优选的技术方案,所述操作方法还包括:
若交换了所述被访问数据页与所述牺牲页的数据,判断是否需要对所述冷数据阈值和/或所述热数据阈值进行调整,所述判断条件为:countwrite×(overheadnw-overheaddw)+countread×(overheadnr-overheaddr)≥overheadswap_in+overheadswap_out
其中:countwrite和countread分别为所述牺牲页在所述DRAM存储器中读次数和写次数;overheadnw和overheadnr分别为所述NVM存储器的写开销和读开销;overheaddw和overheaddr分别为所述DRAM存储器的写开销和读开销;overheadswap_in为数据从所述NVM存储器交换到所述DRAM存储器的开销;overheadswap_out为数据从所述DRAM存储器交换到所述NVM存储器的开销。
作为优选的技术方案,所述方法还包括:
检测到所述数据页的访问操作为将外存数据写入所述混合内存系统的数据页时,判断是否满足条件:所述DRAM存储器空白数据页数量不足且牺牲页的热度计数小于新数据阈值;
若是,执行数据页迁移操作,所述迁移操作为:将所述牺牲页的数据迁移到所述NVM存储器的空白数据页中后,将所述外存数据写入所述牺牲页;
其中,所述新数据阈值为判断外存数据是否相比所述牺牲页更有可能为热数据的标准。
作为优选的技术方案,所述方法还包括:
若执行了迁移操作,判断是否需要调整所述新数据阈值,所述判断条件为:
countwrite×(overheadnw-overheaddw)+countread×(overheadnr-overheaddr)≥overheadswap_out
其中:countwrite和countread分别为所述牺牲页的读次数和写次数;overheadnw和overheadnr分别为所述NVM存储器的写开销和读开销;overheaddw和overheaddr分别为所述DRAM存储器的写开销和读开销;overheadswap_out为将数据从所述DRAM存储器写入到所述NVM存储器空白数据页的开销。
为了解决背景技术中介绍的技术问题,本申请还提出了一种混合内存系统,包括DRAM存储器、NVM存储器及主控制器,所述DRAM存储器和所述NVM存储器分别与所述主控制器相连接,其特征在于:
所述混合内存系统还包括热度维护模块,所述热度维护模块还设置全局访问计数,且为数据页设置访问计数和热度计数;
所述热度维护模块,用于检测到数据页被访问时,计算所述数据页的热度计数,并将所述数据页的访问计数更新为所述全局访问计数;
其中,所述全局访问计数为所述混合内存系统中所有数据页被访问的次数的和;所述热度计数指示数据页被再次访问的概率。
作为优选的技术方案:所述热度维护模块还包括计算单元,用以计算所述数据页的热度计数hot_countnew:
其中:hot_countnew和hot_countold分别为计算后和计算前的所述数据页的热度计数;acc_countglobal为计算时刻的全局访问计数;acc_countpage为计算时刻所述数据页的访问计数;dram_page_num为所述DRAM存储器数据页的总量。
作为优选的技术方案,所述混合内存系统还包括数据交换模块:
所述数据交换模块,用于检测所述数据页的被访问操作为所述NVM存储器中的数据页被读取时,判断是否满足条件:所述DRAM存储器中空白数据页不足,所述数据页的热度计数同时大于牺牲页的热度计数和热数据阈值,且所述牺牲页的热度计数小于冷数据阈值;
若是,所述数据交换模块交换所述被访问数据页与所述牺牲页的数据。
作为优选的技术方案,其特征在于,所述主控制器还包括数据写入单元;
所述数据写入单元,用于检测到所述数据页的访问操作为将外存数据写入所述混合内存系统的数据页时,判断是否满足条件:所述DRAM存储器有空白数据页且牺牲页的热度计数小于新数据阈值;
若是,所述数据写入单元将所述牺牲页的数据迁移到所述NVM存储器的空白数据页中后,将所述外存数据写入所述牺牲页;否则,所述数据写入单元将所述外存数据写入所述NVM存储器的空白数据页中;
其中,所述新数据阈值为判断外存数据是否相比所述牺牲页更有可能为热数据的标准。
本申请提出的混合内存系统及其操作方法能够保证DRAM和NVM中的数据页能够以相同的标准进行冷热的评估。使混合内存系统能够正确的识别冷热数据,减少无效的数据页交换,可以避免大量的额外开销。在此基础上,还根据混合内存系统中的开销情况,及时对冷数据阈值、热数据阈值及新数据阈值做出动态调整的,提高混合内存系统的性能。
附图说明
图1是本申请提出的混合内存系统操作方法的流程图;
图2是混合内存系统模型图;
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
在本申请中,若非指定,数据页为混合内存系统中的数据页,即所述混合内存系统包括的DRAM存储器中的数据页和NVM存储器中的数据页。
数据页的访问是周期性的,只有在访问周期内,所述混合内存系统才能够响应的访问操作。
在本申请中,数据页的访问包括:读取操作和写入操作。
由于NVM读写性能不均衡以及写耐久有限等问题,将频繁访问的热数据交换到DRAM中是有效的提升混合内存系统整体性能方法。
本实施例中的采用PCM作为NVM的例子,而其他类型的NVM,如ROM、PROM、EPROM、EEPROM、FLASH、STT-RAM等,同样可以得到类似的结论,在本申请中不再赘述。
在现有技术中,一次交换的开销超过了九十倍的PCM的写请求开销。因此,正确的识别冷热数据,减少无效的数据页交换,可以避免大量的额外开销。
其中,热数据为NVM存储器中的数据页在下一个访问周期内,被再次访问的概率高于一定阈值的数据页中保存的数据,该阈值被称为热数据阈值,用作为判断NVM存储器中的数据页是否为热数据的标准。
而冷数据为DRAM存储中的数据页在下一个范围周期内,被再次再次访问的概率低于一定阈值的数据页中保存的数据,该阈值被称为冷数据阈值,用作为判断DRAM存储器中的数据页是否为冷数据的标准。
新数据阈值为判断外存数据是否满足DRAM存储中热数据的标准。其中,外存是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外存有硬盘、软盘、光盘、U盘等。
开销为进行某种操作所需花费的时间。
DRAM与PCM的特征对比如表1所示。
表1 DRAM和PCM的特性
参数 | DRAM | PCM |
读/写延迟 | 50/50(ns) | 50or 100/350(ns) |
读/写能耗 | 0.1/0.1(nJ/bit) | 0.2/1.0(nJ/bit) |
静态功耗 | 1(W/GB) | 0.1(W/GB) |
耐久 | N/A | 10<sup>7</sup> |
由于PCM的高存储密度且DRAM空间有限,只有部分的数据可以存储在DRAM中,但是PCM存储空间足够大,能够容纳整个负载。
本发明提供了一种混合内存系统及其操作方法,以保证DRAM和NVM中的数据页能够以相同的标准进行冷热的评估。使用了该方法的存储系统能够正确的识别冷热数据,减少无效的数据页交换,可以避免大量的额外开销。
在该方法的基础上,新数据页或者NVM中数据页要换入DRAM时,必须保证被换出的牺牲页被评估为冷数据。
所述新数据页为需要写入该混合内存系统且容量与所述混合系统中数据页相同的数据,该数据可以为外存数据,也可以为计算机系统中其他各式存储器中需要迁移到该混合内存系统中的数据,不限于内存、外存、缓存及其下位概念。
作为可选的技术方案,可以使用现有技术中的LRU来确定牺牲页。
数据页的换入是指将NVM存储器中数据页的数据交换到DRAM存储器中的数据页中;换出是指将DRAM存储中数据页的输出交换到NVM存储器中。
本申请提出的操作方法和混合内存系统是基于如下的混合内存系统的。所述混合内存系统包括DRAM存储器、NVM存储器及主控制器,所述DRAM存储器和所述NVM存储器分别与所述主控制器相连接。
为了保证被换出的牺牲页被评估为冷数据,本申请的混合内存系统设置全局访问计数;并为混合内存系统中的数据页,即混合内存系统中的DRAM存储器和NVM存储器中的所有数据页,均设置了数据页的热度计数和访问计数。
其中,所述全局访问计数为所述混合内存系统中所有数据页被访问的次数的和。只要混合内存系统中的数据页被访问,所述全局访问计数值就增加1。
而数据页的热度计数指示该数据页的数据在下个访问周期被访问的概率,其值越大则其在下个访问周期被访问的概率越高。
实施例1
参见附图1,显示了当数据页被访问时,如何更新数据页的访问计数和计算数据页的热度计数的方法。
检测到所述混合内存系统的数据页被访问;
计算所述数据页的热度计数;
将所述数据页的访问计数更新为所述全局访问计数;
其中,计算热度计数hot_countnew的依据可以为:
其中:hot_countnew和hot_countold分别为计算后和计算前的所述数据页的热度计数;acc_countglobal为计算时刻的全局访问计数;acc_countpage为计算时刻所述数据页的访问计数;dram_page_num为所述DRAM存储器数据页的总量。
计算热度计数的方法不限制于上述方法,只要能够体现被访问的次数越多,数据页的热度计数越高即可。
上式为计算数据页热度计数的通式,可以同归递归的方式计算任意访问周期时,所述数据页的热度计数。
需要注意的是,当所述混合内存系统初始化时,hot_countold的值为0。
DRAM存储器数据页的总量,在混合内存系统被设计时确定,可以从混合内存系统中获取。
上述操作方法,能够将NVM存储器和DRAM存储器中的热度计数给出了统一的计算标准,以使NVM存储器和DRAM存储器的数据页能够以相同的标准进行冷热的评估。
实施例2
在实施例1的基础上,所述操作方法还包括:
检测到所述数据页的被访问操作为所述NVM存储器中的数据页被读取时,判断是否满足条件:所述DRAM存储器中空白数据页不足,所述数据页的热度计数同时大于牺牲页的热度计数和热数据阈值,且所述牺牲页的热度计数小于冷数据阈值;
若是,交换所述被访问数据页与所述牺牲页的数据。
若交换了所述被访问数据页与所述牺牲页的数据,判断是否需要对所述冷数据阈值和/或所述热数据阈值进行调整,所述判断条件为:countwrite×(overheadnw-overheaddw)+countread×(overheadnr-overheaddr)≥overheadswap_in+overheadswap_out
其中:countwrite和countread分别为所述牺牲页在所述DRAM存储器中读次数和写次数;overheadnw和overheadnr分别为所述NVM存储器的写开销和读开销;overheaddw和overheaddr分别为所述DRAM存储器的写开销和读开销;overheadswap_in为数据从所述NVM存储器交换到所述DRAM存储器的开销;overheadswap_out为数据从所述DRAM存储器交换到所述NVM存储器的开销。
其中,牺牲页为DRAM存储器数据页中的数据即将被替换的数据页。
牺牲页为DRAM数据页中的数据由于访问热度较低,继续将所述牺牲页的数据保存在DRAM存储器中会降低整个混合内存系统的性能,为即将被其他数据替换的数据页。牺牲页可以根据经典LRU替换算法选择得到。
上述实施例能够实现从NVM存储器交换到DRAM存储器中的数据为全局热数据,避免了交换的数据仅在NVM存储器中为热数据,但在DRAM存储器中为冷数据的情况,降低了无效操作的概率,提高了混合内存系统的效能。
上述技术方案能够根据所述NVM存储器的开销情况,动态调整热数据阈值和/或冷数据阈值,即NVM存储器和DRAM存储器中的热数据和冷数据的判断标准进行调整,提高混合内存系统的性能。
若满足所述的判断条件,则DRAM存储器中的冷数据较NVM存储器中的热数据冷,提高热数据阈值和/或降低冷数据阈值,能够获得较高的收益促进数据从NVM存储器交换到DRAM存储器,相应地能够提高混合内存系统的性能。
若不满足条件,则DRAM存储器中的冷数据较NVM存储器中的热数据热:选择下面的手段:1)降低热数据阈值和/或提高冷数据阈值;2)保持当前的冷/热数据阈值。这样就可以阻止数据从NVM存储器交换到DRAM存储器,降低无效数据交换的概率,提高混合内存系统的性能。
由于牺牲页可能为DRAM存储器中的任一数据页,可以选择为DRAM存储器中的所有数据页均设置读计数和写计数,该计数可以使用寄存器保存。
测量数据在DRAM存储器和NVM存储器的数据页之间迁移时可以测量得到开销的值。可以选择将测量的典型值存入到混合内存系统,或选择设置一个测量装置在混合内存系统中,实时获取不同数据页的操作的开销的准确值。
实施例3
基于实施例1或2,所述操作方法还包括:
检测到所述访问为将外存数据写入所述混合内存系统时,判断是否满足条件:所述DRAM存储器空白数据页不足且牺牲页的热度计数小于新数据阈值;
若是,执行数据页迁移操作,所述迁移操作为:将所述牺牲页的数据迁移到所述NVM存储器的空白数据页中后,将所述外存数据写入所述牺牲页;
其中,所述新数据阈值为判断外存数据是否相比所述牺牲页更有可能为热数据的标准。
若执行了迁移操作,判断是否需要调整新数据阈值,所述判断条件为:
countwrite×(overheadnw-overheaddw)+countread×(overheadnr-overheaddr)≥overheadswap_out
其中:countwrite和countread分别为所述牺牲页的读次数和写次数;overheadnw和overheadnr分别为所述NVM存储器的写开销和读开销;overheaddw和overheaddr分别为所述DRAM存储器的写开销和读开销;overheadswap_out为将数据从所述DRAM存储器交换到所述NVM存储器空白数据页的开销。
其中,所述新数据阈值为判断外存数据是否相比所述牺牲页更有可能为热数据的标准。
基于上述技术方案,能够及时地对DRAM存储器中的热数据判断标准进行调整。
若牺牲页满足所述判断条件,降低新数据阈值,能够促进新数据页存入DRAM存储器;否则,提高新数据阈值,能够提高新数据页存入DRAM存储器的标准。
上述技术方案能够根据所述DRAM存储器的开销情况,动态调整新数据阈值,使得热数据能够优选保存在DRAM存储的数据页中,提高混合内存系统的性能。
同样的,测量数据在DRAM存储器和NVM存储器的数据页之间迁移时可以测量得到开销的值。可以选择将测量的典型值存入到混合内存系统,或选择设置一个测量装置在混合内存系统中,实时获取不同数据页的操作的开销的准确值。
本申请还提出了一种混合内存系统
实施例4
所述混合内存系统还包括热度维护模块,所述热度维护模块还设置全局访问计数,且为数据页设置访问计数和热度计数;
所述热度维护模块,用于检测到数据页被访问时,计算所述数据页的热度计数,并将所述数据页的访问计数更新为所述全局访问计数;其中,所述全局访问计数为所述混合内存系统中所有数据页被访问的次数的和;所述热度计数指示数据页被再次访问的概率。
所述全局访问计数的值可以选择使用寄存器或者计数器保存;所述数据页的访问计数和热度计数的值都可以选择使用寄存器保存。
实施例5
基于实施例4,所述热度维护模块还包括计算单元,用以计算所述数据页的热度计数hot_countnew:
其中:hot_countnew和hot_countold分别为计算后和计算前的所述数据页的热度计数;acc_countglobal为计算时刻的全局访问计数;acc_countpage为计算时刻的所述数据页的访问计数;dram_page_num为所述DRAM存储器数据页的总量。
实施例5
基于实施例4,所述存储系统还包括数据交换模块,所述数据交换模块,用于检测所述数据页的被访问操作为所述NVM存储器中的数据页被读取时,判断是否满足条件:所述DRAM存储器中空白数据页不足,所述数据页的热度计数同时大于牺牲页的热度计数和热数据阈值,且所述牺牲页的热度计数小于冷数据阈值;
若是,所述数据交换模块交换所述被访问数据页与所述牺牲页的数据。
所述数据交换模块若检测到交换了所述被访问数据页与所述牺牲页的数据,判断是否需要对所述冷数据阈值和/或所述热数据阈值进行调整,所述判断条件为:
countwrite×(overheadnw-overheaddw)+countread×(overheadnr-overheaddr)≥overheadswap_in+overheadswap_out
其中:countwrite和countread分别被读取的所述数据页在所述NVM存储器中读次数和写次数;overheadnw和overheadnr分别为所述NVM存储器的写开销和读开销;overheaddw和overheaddr分别为所述DRAM存储器的写开销和读开销;overheadswap_in为数据从所述NVM存储器交换到所述DRAM存储器的开销;overheadswap_out为数据从所述DRAM存储器交换到所述NVM存储器的开销。
上述技术方案能够根据所述NVM存储器的开销情况,动态调整热数据阈值和/或冷数据阈值,提高混合内存系统的性能。
上述实施例,能够及时的对NVM存储器和DRAM存储器中的热数据和冷数据的判断标准进行调整。
若满足所述的判断条件,则DRAM存储器中的冷数据较NVM存储器中的热数据冷,提高热数据阈值和/或降低冷数据阈值,促进数据从NVM存储器交换到DRAM存储器,能够提高混合内存系统的性能。
若不满足条件,则DRAM存储器中的冷数据较NVM存储器中的热数据热:1)降低热数据阈值和/或提高冷数据阈值;2)保持当前的冷/热数据阈值。
这样就可以阻止数据从NVM存储器交换到DRAM存储器,提高混合内存系统的性能。
由于牺牲页可能为DRAM存储器中的任一数据页,可以选择为DRAM存储器中的所有数据页均设置读计数和写计数,该计数可以使用寄存器保存。
测量数据在DRAM存储器和NVM存储器的数据页之间迁移时可以测量得到开销的值。可以选择将测量的典型值存入到混合内存系统,或选择设置一个测量装置在混合内存系统中,实时获取不同数据页的操作的开销的准确值。
实施例6
基于实施例5或6,所述混合内存系统还包括数据写入单元,所述数据写入单元,用于检测到所述数据页的访问操作为将外存数据写入所述混合内存系统的数据页时,判断是否满足条件:所述DRAM存储器有空白数据页且牺牲页的热度计数小于新数据阈值;
若是,所述数据写入单元将所述牺牲页的数据迁移到所述NVM存储器的空白数据页中后,将所述外存数据写入所述牺牲页;否则,所述数据写入单元将所述外存数据写入所述NVM存储器的空白数据页中;
其中,所述新数据阈值为判断外存数据是否相比所述牺牲页更有可能为热数据的标准。
所述数据写入单元若检测到执行了迁移操作,判断是否需要调整新数据阈值,所述判断条件为:
countwrite×(overheadnw-overheaddw)+countread×(overheadnr-overheaddr)≥overheadswap_out
其中:countwrite和countread分别为所述牺牲页的读次数和写次数;overheadnw和overheadnr分别为所述NVM存储器的写开销和读开销;overheaddw和overheaddr分别为所述DRAM存储器的写开销和读开销;overheadswap_out为将数据页从所述DRAM存储器写入到所述NVM存储器空白数据页的开销。
其中,所述新数据阈值为判断外存数据是否相比所述牺牲页更有可能为热数据的标准。
上述实施例,能够及时的对DRAM存储器中的热数据判断标准进行调整。
若牺牲页满足所述判断条件,降低新数据阈值,促进新数据页存入DRAM存储器,提高混合内存系统的性能。
否则,提高新数据阈值,提高新数据页存入DRAM存储器的标准,提高混合内存系统的性能。
上述技术方案能够根据所述DRAM存储器的开销情况,动态调整新数据阈值,提高混合内存系统的性能。
同样的,测量数据在DRAM存储器和NVM存储器的数据页之间迁移时可以测量得到开销的值。可以选择将测量的典型值存入到混合内存系统,或选择设置一个测量装置在混合内存系统中,实时获取不同数据页的操作的开销的准确值。
根据上述所有实施例,本申请提出的混合内存系统及其操作方法能够保证混合内存系统中DRAM和NVM的数据页能够以相同的标准进行冷热的评估。使混合内存系统能够正确的识别冷热数据,减少无效的数据页交换,可以避免大量的额外开销。在此基础上,还根据混合内存系统中的开销情况,及时对冷数据阈值、热数据阈值及新数据阈值做出动态调整的,提高混合内存系统的性能。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
Claims (8)
1.一种混合内存系统的操作方法,其特征在于,设置全局访问计数,设置数据页的热度计数和访问计数,所述操作方法包括:
检测到所述混合内存系统的数据页被访问;
计算所述数据页的热度计数:
其中,hot_countnew和hot_countold分别为计算后和计算前的所述数据页的热度计数;acc_countglobal为计算时刻的全局访问计数,acc_countpage为计算时刻所述数据页的访问计数,dram_page_num为DRAM存储器数据页的总量;
将所述数据页的访问计数更新为所述全局访问计数;
其中,所述全局访问计数为所述混合内存系统中所有数据页被访问的次数的和;所述热度计数指示数据页被再次访问的概率。
2.如权利要求1所述的操作方法,其特征在于,所述操作方法还包括:
检测到所述数据页的被访问操作为NVM存储器中的数据页被访问时,判断是否满足条件:DRAM存储器中空白数据页不足,所述数据页的热度计数同时大于牺牲页的热度计数和热数据阈值,且所述牺牲页的热度计数小于冷数据阈值;
若是,交换所述被访问数据页与所述牺牲页的数据。
3.如权利要求2所述的操作方法,其特征在于,所述操作方法还包括:
若交换了所述被访问数据页与所述牺牲页的数据,判断是否需要对所述冷数据阈值和/或所述热数据阈值进行调整,判断条件为:
countwrite×(overheadnw-overheaddw)+countread×(overheadnr-overheaddr)≥overheadswap_in+overheadswap_out
其中:countwrite和countread分别为所述牺牲页在所述DRAM存储器中读次数和写次数;overheadnw和overheadnr分别为所述NVM存储器的写开销和读开销;overheaddw和overheaddr分别为所述DRAM存储器的写开销和读开销;overheadswap_in为数据从所述NVM存储器交换到所述DRAM存储器的开销;overheadswap_out为数据从所述DRAM存储器交换到所述NVM存储器的开销。
4.如权利要求1所述的操作方法,其特征在于,所述方法还包括:
检测到所述数据页的访问操作为将所述混合内存系统的外存数据写入所述混合内存系统的数据页时,判断是否满足条件:DRAM存储器空白数据页数量不足且牺牲页的热度计数小于新数据阈值;
若是,执行数据页迁移操作,所述迁移操作为:将所述牺牲页的数据迁移到NVM存储器的空白数据页中后,将所述外存数据写入所述牺牲页;
其中,所述新数据阈值为判断外存数据是否相比所述牺牲页更有可能为热数据的标准。
5.如权利要求4所述的操作方法,其特征在于,所述方法还包括:
若执行了迁移操作,判断是否需要调整所述新数据阈值,判断条件为:
countwrite×(overheadnw-overheaddw)+countread×(overheadnr-overheaddr)≥overheadswap_out
其中:countwrite和countread分别为所述牺牲页的读次数和写次数;overheadnw和overheadnr分别为所述NVM存储器的写开销和读开销;overheaddw和overheaddr分别为所述DRAM存储器的写开销和读开销;overheadswap_out为将数据从所述DRAM存储器写入到所述NVM存储器空白数据页的开销。
6.一种混合内存系统,包括DRAM存储器、NVM存储器及主控制器,所述DRAM存储器和所述NVM存储器分别与所述主控制器相连接,其特征在于:
所述混合内存系统还包括热度维护模块,所述热度维护模块还设置全局访问计数,且为数据页设置访问计数和热度计数:
其中,hot_countnew和hot_countold分别为计算后和计算前的所述数据页的热度计数;acc_countglobal为计算时刻的全局访问计数,acc_countpage为计算时刻所述数据页的访问计数,dram_page_num为DRAM存储器数据页的总量;
所述热度维护模块,用于检测到数据页被访问时,计算所述数据页的热度计数,并将所述数据页的访问计数更新为所述全局访问计数;
其中,所述全局访问计数为所述混合内存系统中所有数据页被访问的次数的和;所述热度计数指示数据页被再次访问的概率。
7.如权利要求6所述的混合内存系统,其特征在于,所述混合内存系统还包括数据交换模块:
所述数据交换模块,用于检测所述数据页的被访问操作为NVM存储器中的数据页被访问时,判断是否满足条件:DRAM存储器中空白数据页不足,所述数据页的热度计数同时大于牺牲页的热度计数和热数据阈值,且所述牺牲页的热度计数小于冷数据阈值;
若是,所述数据交换模块交换所述被访问数据页与所述牺牲页的数据。
8.如权利要求6所述的混合内存系统,其特征在于,所述主控制器还包括数据写入单元;
所述数据写入单元,用于检测到所述数据页的访问操作为将外存数据写入所述混合内存系统的数据页时,判断是否满足条件:所述DRAM存储器有空白数据页且牺牲页的热度计数小于新数据阈值;
若是,所述数据写入单元将所述牺牲页的数据迁移到NVM存储器的空白数据页中后,将所述外存数据写入所述牺牲页;否则,所述数据写入单元将所述外存数据写入所述NVM存储器的空白数据页中;
其中,所述新数据阈值为判断外存数据是否相比所述牺牲页更有可能为热数据的标准。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910194084.XA CN109901800B (zh) | 2019-03-14 | 2019-03-14 | 一种混合内存系统及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910194084.XA CN109901800B (zh) | 2019-03-14 | 2019-03-14 | 一种混合内存系统及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109901800A CN109901800A (zh) | 2019-06-18 |
CN109901800B true CN109901800B (zh) | 2020-05-19 |
Family
ID=66952648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910194084.XA Active CN109901800B (zh) | 2019-03-14 | 2019-03-14 | 一种混合内存系统及其操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109901800B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554838B (zh) * | 2019-06-27 | 2020-08-14 | 中南大学 | 一种基于联合优化回声状态网络的热数据预测方法 |
CN110362277B (zh) * | 2019-07-19 | 2021-03-02 | 重庆大学 | 基于混合存储系统的数据分类存储方法 |
CN111176584B (zh) * | 2019-12-31 | 2023-10-31 | 曙光信息产业(北京)有限公司 | 一种基于混合内存的数据处理方法及装置 |
CN111984188B (zh) * | 2020-06-30 | 2021-09-17 | 重庆大学 | 混合内存数据的管理方法、装置及存储介质 |
CN112181870B (zh) * | 2020-09-17 | 2022-10-28 | 重庆大学 | 内存页面管理方法、装置、设备及可读存储介质 |
CN113835624A (zh) * | 2021-08-30 | 2021-12-24 | 阿里巴巴(中国)有限公司 | 基于异构内存的数据迁移方法及装置 |
CN114783485B (zh) * | 2022-06-21 | 2022-10-18 | 阿里云计算有限公司 | 用于刷新相变存储器的方法及相变存储设备 |
CN118113633A (zh) * | 2022-11-30 | 2024-05-31 | 华为技术有限公司 | 一种数据处理方法以及相关设备 |
CN117234432B (zh) * | 2023-11-14 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种混合内存系统的管理方法、管理装置、设备及介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008055269A2 (en) * | 2006-11-04 | 2008-05-08 | Virident Systems, Inc. | Asymmetric memory migration in hybrid main memory |
CN103186350B (zh) * | 2011-12-31 | 2016-03-30 | 北京快网科技有限公司 | 混合存储系统及热点数据块的迁移方法 |
US9069474B2 (en) * | 2013-08-20 | 2015-06-30 | Seagate Technology Llc | Retention based defecting in a hybrid memory system |
EP3062229A4 (en) * | 2013-12-31 | 2017-01-25 | Huawei Technologies Co., Ltd. | Data migration method, device and processor |
CN103914406A (zh) * | 2014-03-31 | 2014-07-09 | 中国科学院微电子研究所 | 一种混合内存的迁移方法及系统 |
CN106569577A (zh) * | 2016-10-18 | 2017-04-19 | 上海新储集成电路有限公司 | 一种异构存储系统及数据存储中心 |
CN106933516A (zh) * | 2017-03-16 | 2017-07-07 | 郑州云海信息技术有限公司 | 一种混合介质的存储系统的存储控制方法及装置 |
CN107193646B (zh) * | 2017-05-24 | 2020-10-09 | 中国人民解放军理工大学 | 一种基于混合主存架构的高效动态页面调度方法 |
-
2019
- 2019-03-14 CN CN201910194084.XA patent/CN109901800B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109901800A (zh) | 2019-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109901800B (zh) | 一种混合内存系统及其操作方法 | |
Ferreira et al. | Increasing PCM main memory lifetime | |
JP6124366B2 (ja) | 方法、プロセッサ、システム、およびプログラム | |
US9081661B2 (en) | Memory management device and method for managing access to a nonvolatile semiconductor memory | |
CN113015965B (zh) | 基于小计写入计数器执行混合损耗均衡操作 | |
US8612692B2 (en) | Variable write back timing to nonvolatile semiconductor memory | |
CN106909515B (zh) | 面向混合主存的多核共享末级缓存管理方法及装置 | |
TWI474324B (zh) | 平均讀寫記憶元件的方法及記憶體系統 | |
JP6018696B2 (ja) | 半導体ストレージ | |
US8914570B2 (en) | Selective write-once-memory encoding in a flash based disk cache memory | |
US20190087125A1 (en) | Memory system and control method of memory system | |
CN109952565B (zh) | 内存访问技术 | |
CN108762671A (zh) | 基于pcm和dram的混合内存系统及其管理方法 | |
CN110888600B (zh) | 一种面向nand闪存的缓冲区管理方法 | |
KR102374239B1 (ko) | 판독 지연 시간 단축 방법 및 장치 | |
US11615030B2 (en) | Cache memory system and cache memory control method | |
CN102681792B (zh) | 一种固态盘内存分区方法 | |
CN111352593B (zh) | 一种区分快写和正常写的固态硬盘数据写入方法 | |
CN108710581A (zh) | 基于布隆过滤器的pcm存储介质磨损均衡方法 | |
CN111290706A (zh) | 一种基于布隆过滤器的双层读写磨损均衡方法 | |
KR101380602B1 (ko) | 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법 및 하이브리드 메모리 시스템 | |
Liu et al. | Efficient wear leveling for PCM/DRAM-based hybrid memory | |
Park et al. | Efficient management of PCM-based swap systems with a small page size | |
Park et al. | Filtering dirty data in DRAM to reduce PRAM writes | |
CN114924690B (zh) | 一种基于非均衡磨损闪存的读性能优化方法 |
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 |