一种混合内存环境下淘汰数据感知的缓存方法与系统的制作方法

文档序号:10612730
一种混合内存环境下淘汰数据感知的缓存方法与系统的制作方法
【专利摘要】本发明公开了一种混合内存环境下淘汰数据感知的缓存系统,其目标是在保证缓存系统自身性能的前提下尽量减少写回非易失性主存的次数从而提升其寿命。系统主要包含元数据监控模块、页面置换模块和自适应空间划分模块。监控模块收集缓存淘汰数据的元数据信息,然后基于元数据信息分析出缓存中页面的淘汰权重;页面置换模块,实现基于缓存性能和非易失性主存寿命来选择淘汰页面;自适应空间划分模块结合请求的特点和页面是否发生过淘汰来判断当前阶段应该选择哪种类型的页面作为淘汰对象。本发明能够的在保证缓存系统性能的前提下有效的减少对非易失性主存的写回次数,从而提升其寿命。
【专利说明】
一种混合内存环境下淘汰数据感知的缓存方法与系统
技术领域
[0001]本发明属于内存计算领域,更具体地,涉及一种混合内存环境下淘汰数据感知的缓存方法和缓存系统,主要目标是在保证缓存性能的前提下提升非易失性主存的寿命。
【背景技术】
[0002]内存计算技术的飞速发展,导致现有基于DRAM的主存系统在扩展性、能耗等方面已经难以适应进一步的发展,而新型非易失性主存的出现为优化现有的内存系统提供了新的机会,因为作为内存时非易失性主存具有非易失、能耗低以及更好的扩展性等优势,但要想完全取代现有的DRAM,在写速度、动态能耗以及寿命等方面非易失性主存还相距DRAM甚远,所以一种比较常见的内存结构是采取DRAM和非易失性主存作为混合主存,其中DRAM作为非易失性主存的上层缓存,这样可以更好的优势劣势互补从而提升整体的性能和可靠性。
[0003]非易失性主存作为内存时,其中一个重要的问题就是寿命有限。比如,相变内存,它的写操作原理是阻变材料在低阻结晶态(逻辑I)和高阻非晶态(逻辑O)之间转变,从而导致相变内存难以承受大量的写操作,相比较DRAM而言相变内存的写操作寿命只有108-1012次,比DRAM差了几个数量级,如果集中写的话,只需要很短的时间(100天左右,基于典型的SPECCPU应用)就可以将相变内存中的某些相变内存单元写坏,因此,为了能充分利用非易失性主存的性能,需要着重解决非易失性主存的寿命问题
[0004]当前阶段已有的研究工作主要集中在以下三类:减少写非易失性主存次数,比如先读后写、翻转后再写、陪集映射写入以及传统的缓存层面提高命中率从而相应的减少写回数据的次数;磨损均衡,从段、页面、内存行、比特等不同粒度来进行数据的交换和翻转;错误纠错及坏块复用,主要针对局部页面被写坏后进行硬件层面读错误比特并分组进行错误恢复及利用坏块中剩余的正常比特来协助其它的块进行硬件纠错。
[0005]上述研究方案主要针对缓存发来的写请求来进行优化处理,实际的写回请求数量并没有减少,并且带来了额外的记录、迀移等开销,因此可以考虑从缓存层面来优化请求写入非易失性主存的问题。目前缓存系统中已有的研究工作主要是集中在基于缓存数据中脏数据淘汰时需要写回非易失性主存而干净数据则无需写回的差异,在缓存空间需要淘汰数据时有意的优先选择干净数据来进行淘汰,降低淘汰数据中脏数据所占的比例,从而达到减少缓存空间向非易失性主存写回脏数据次数的目的,或者是通过分析具体应用具体程序段的访问命中率分布来有意的选择低命中率的干净数据来进行淘汰。上述工作虽然从总体上降低了写回非易失性主存的次数,但这种刻意减少脏数据写回操作次数的策略却带来了以下几点问题:(I)刻意淘汰干净数据保留脏数据会影响缓存空间中的数据分布,进而损害到上层访问缓存系统的命中率,给系统的整体性能带来不利影响。(2)考虑到缓存性能的工作需要对具体应用不同时间段的运行特点先进行分析然后选择特定的策略执行,不能很好地适应不同系统的缓存环境。

【发明内容】

[0006]针对现有技术的以上缺陷,本发明提供了一种淘汰数据感知的缓存系统,其目的在于保证缓存的访问命中率使得缓存系统性能不受影响的前提下能有效减少写回非易失性主存的次数从而提升非易失性主存寿命,由此解决无法同时提升非易失性主存写操作寿命和保证缓存性能的技术问题。
[0007]为实现上述目的,按照本发明的一方面,提供了一种淘汰数据感知的缓存方法,包含以下步骤:
[0008](I)当待淘汰页面确定后,缓存淘汰数据监控方法获取页面对应的元数据信息,包含页面地址、淘汰时间和淘汰次数等等,并初始化或者更新缓存淘汰记录集合中对应的淘汰记录;当不命中发生时,监控方法基于收集到的元数据信息分析淘汰记录的局部性特征(时间局部性和空间局部性)并基于上述特征计算出对应缓存页面的淘汰权重;
[0009](2)页面置换策略基于淘汰数据的类型确定不同的置换方法,如果淘汰对象最近没有淘汰过则优先选择最近未淘汰过页面类型中的干净页面进行淘汰,而如果淘汰对象最近发生过淘汰则基于监控得到的淘汰权重,计算出对应的淘汰阈值,并结合页面自身的访问特征在淘汰阈值范围内优先选择干净的页面作为淘汰对象,以减少额外的写回非易失性主存操作,若没有对应的干净页面则选择最小权重的脏页面作为淘汰对象,以达到保证缓存性能和提升非易失性主存寿命的目标;
[0010](3)自适应空间划分机制主要发生在请求不命中时,若请求页面在缓存淘汰记录集合中有对应记录则说明该记录最近发生过淘汰,则选择最近没有发生过淘汰的缓存页面作为淘汰对象;而若请求页面在缓存淘汰记录集合没有记录,则说明该记录最近没有被访问过,更没有被淘汰过,所以选择最近曾淘汰过的页面作为淘汰对象。
[0011]通过本发明所构思的以上技术方案,与现有技术相比,本发明的系统具有以下的优点和技术效果:
[0012]1、由于采用了步骤(I),在淘汰操作执行时能够及时获取并分析出该页面的淘汰特征,当页面再次存放到缓存中时为其提供是否可以淘汰的理论支撑;
[0013]2、由于采用了步骤(2),可以将淘汰页面对缓存下一阶段的性能负面影响降至最小并能减少不必要的写回操作,从而提高非易失性主存写操作寿命;
[0014]3、由于采用了步骤(3),缓存空间的数据分布可以更符合当前阶段访问请求的特点,因而对应的访问命中率也会有所提升,以进一步保证缓存系统的性能。
[0015]按照本发明的另一方面,还提供了一种混合内存环境下淘汰数据感知的缓存系统,包括淘汰数据监控模块、页面置换模块和自适应空间划分模块。监控模块,用于对缓存中淘汰的数据记录进行元数据收集和淘汰权重分析,以支撑下面的页面置换和空间划分;页面置换模块,是用于缓存系统发生请求不命中时,选择对缓存性能影响最小且尽量不需要写回非易失性主存的页面进行淘汰;自适应空间划分模块,主要考虑到缓存中未曾淘汰过的页面对缓存性能的影响,采用自适应的思想结合请求和监控模块的数据来决定淘汰页面的类型,从而达到空间划分的目的。
[0016]淘汰数据监控模块在当缓存选定特定页面进行淘汰时进行,主要用来监控最近一段时间缓存淘汰过的页面记录,具体通过地址计算出其在淘汰记录集合中的位置来判断是否已经有对应的淘汰记录,若是没有则初始化记录该页面的元数据记录信息,若是有则更新该记录的相关元数据信息(淘汰时间、淘汰次数等等);当需要替换页面时,分析所有已淘汰过页面对应的淘汰记录的局部性权重,主要是淘汰时间和淘汰频率的权重,并基于上述权重得到对应缓存页面的淘汰权重。
[0017]页面置换模块,在每次缓存发生请求未命中时进行,用来选择最终的淘汰对象,先确定默认选中的待淘汰页面是否属于曾发生淘汰的页面,并分别针对未发生淘汰和最近淘汰过的页面实施不同的置换策略,其中对于未淘汰过的页面优先选择干净淘汰即可,而对于最近淘汰过的页面则基于页面淘汰权重来选择,优先选择权重较小的干净页面作为淘汰对象,以达到保证缓存访问命中率和减少写回的目的。
[0018]自适应空间划分模块,当请求不命中时首先确定淘汰数据的类型,具体是根据请求状态以及监控模块的数据记录来判断哪种类型的页面最近更倾向于被访问,而自适应的选择另一种类型的页面作为淘汰对象,通过两种类型数据的空间划分来适应上层访问请求的变化。
[0019]通过本发明所构思的以上技术方案,与现有技术相比,本发明的系统具有以下的优点和技术效果:
[0020]1、由于采用了淘汰数据监控模块,能够精准的检测和分析缓存分组中各个页面的淘汰权重大小,并进行低空间开销的存储,因此得出页面在下一阶段被再次访问的可能程度,为下面的页面置换和空间划分提供了有效的支撑;
[0021]2、由于采用了页面置换模块,基于监控到的页面淘汰权重和页面本身的访问特征,可以将缓存系统本身的性能和非易失性主存的写操作寿命同时兼顾到,因为不会因为追求减少写回而对缓存性能带来大的负面影响;
[0022]3、由于采用了自适应空间划分模块,可以将缓存中未曾淘汰过的页面考虑在内,使得缓存空间中各类数据的分布满足现阶段请求访问的倾向,使得缓存的性能得到进一步的提升。
[0023]总体而言,通过本发明所构思的以上技术方案与现有技术相比,由于淘汰数据时结合了页面淘汰权重的大小和请求访问的特征来选择淘汰目标,能够使得在保证缓存性能基本不受影响的前提下有效的提升非易失性主存的寿命。
【附图说明】
[0024]图1为本发明实施例的数据监控方法流程图;
[0025]图2为本发明实施例的页面置换策略的流程图;
[0026]图3为本发明实施例的自适应空间划分机制的流程图;
[0027]图4为本发明实施例的系统模块框图。
【具体实施方式】
[0028]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0029]本发明提供了一种淘汰数据感知的缓存方法,包括以下步骤:
[0030](I)如图1所示,淘汰数据监控方法,在系统运行的整个过程中进行,具体包含如下几个子步骤:
[0031](1.1)数据收集:当缓存选定特定页面进行淘汰时,通过地址计算出其存放的位置,然后判断是否已经有对应的淘汰记录,若是没有则初始化记录该页面的页面地址、已淘汰次数(设定为I)和淘汰时间(当前时间),若是有则取出该数据的记录,更新其淘汰时间为当前时间、淘汰次数增加一。
[0032](1.2)数据分析:当需要替换页面时,分析所有已淘汰过页面对应的淘汰记录。一是淘汰时间的权重,将所有记录以淘汰时间排序,并按照从小到大的顺序先后赋值权重(1-n);二是,淘汰频率的权重,将所有记录按照淘汰次数从小到大排序,并按照此顺序赋值权重(1-η)。最后,将各个页面对应的时间和频率权重求和得到对应的淘汰权重,并按照淘汰权重从小到大排序得到缓存中曾淘汰页面的淘汰权重先后顺序。
[0033 ] (2)如图2所示,页面置换策略,每次缓存发生请求未命中时进行,具体包括下面几个子步骤:
[0034](2.1)对默认选中的待淘汰页面判断该页面在监控模块的数据中是否有记录。
[0035](2.2)若是有记录则说明该页面属于曾发生淘汰的页面,则基于监控模块分析得到的权重进行进一步的判断,若是没有记录则进入(2.4)。
[0036](2.3)对所有曾发生淘汰的页面基于现阶段权重的阈值,选择淘汰对象,若是权重小于阈值的页面中存在干净数据,则优先选择该页面淘汰,若是没有干净数据存在,则选择权重最小的脏数据页面进行淘汰。
[0037](2.4)若是页面未发生过淘汰则说明该页面属于未曾发生淘汰的页面。按照默认的LRU规则选择淘汰页面,同时优先考虑干净页面来进行选择。
[0038](3)如图3所示,自适应空间划分机制,,具体包括下面几个子步骤:
[0039](3.1)上层发来的访问缓存请求,判断是否命中。
[0040](3.2)若命中,则继续进行访问操作,若未命中,则查询监控模块是否有对应的淘汰记录,若是存在则进入(3.3),否则进入(3.4)。
[0041](3.3)该页面最近曾发生过淘汰,则说明对该页面的淘汰导致了本次的不命中,所以需要扩大所属的曾发生过淘汰页面的空间大小,即从未曾发生淘汰的页面中选择合适的页面进行淘汰。
[0042](3.4)该页面最近没有发生过淘汰,则说明该页面最近没有被访问过更没有被淘汰过,所以需要扩大所属的未曾发生淘汰页面的空间大小,即从曾发生淘汰的页面中选择合适的页面作为淘汰对象。
[0043]如图4所示,本发明提供了一种混合内存环境下淘汰数据感知的缓存系统,包括淘汰数据监控模块、页面置换模块和自适应空间划分模块。监控模块,用于对缓存中淘汰的数据记录进行元数据收集和淘汰权重分析,以支撑下面的页面置换和空间划分;页面置换模块,是用于缓存系统发生请求不命中时,选择对缓存性能影响最小且尽量不需要写回非易失性主存的页面进行淘汰;自适应空间划分模块,主要考虑到缓存中未曾淘汰过的页面对缓存性能的影响,采用自适应的思想结合请求和监控模块的数据来决定淘汰页面的类型,从而达到空间划分的目的。
[0044]淘汰数据监控模块在当缓存选定特定页面进行淘汰时进行,主要用来监控最近一段时间缓存淘汰过的页面记录,具体通过地址计算出其在淘汰记录集合中的位置来判断是否已经有对应的淘汰记录,若是没有则初始化记录该页面的元数据记录信息,若是有则更新该记录的相关元数据信息(淘汰时间、淘汰次数等等);当需要替换页面时,分析所有已淘汰过页面对应的淘汰记录的局部性权重,主要是淘汰时间和淘汰频率的权重,并基于上述权重得到对应缓存页面的淘汰权重。
[0045]页面置换模块,在每次缓存发生请求未命中时进行,用来选择最终的淘汰对象,先确定默认选中的待淘汰页面是否属于曾发生淘汰的页面,并分别针对未发生淘汰和最近淘汰过的页面实施不同的置换策略,其中对于未淘汰过的页面优先选择干净淘汰即可,而对于最近淘汰过的页面则基于页面淘汰权重来选择,优先选择权重较小的干净页面作为淘汰对象,以达到保证缓存访问命中率和减少写回的目的。
[0046]自适应空间划分模块,当请求不命中时首先确定淘汰数据的类型,具体是根据请求状态以及监控模块的数据记录来判断哪种类型的页面最近更倾向于被访问,而自适应的选择另一种类型的页面作为淘汰对象,通过两种类型数据的空间划分来适应上层访问请求的变化。
[0047]本发明提供了一种混合内存环境下淘汰数据感知的缓存方法,由于采用了步骤
(I),在淘汰操作执行时能够及时获取并分析出该页面的淘汰特征,当页面再次存放到缓存中时为其提供是否可以淘汰的理论支撑;由于采用了步骤(2),可以将淘汰页面对缓存下一阶段的性能负面影响降至最小并能减少不必要的写回操作,从而提高非易失性主存写操作寿命;由于采用了步骤(3),缓存空间的数据分布可以更符合当前阶段访问请求的特点,因而对应的访问命中率也会有所提升,以进一步保证缓存系统的性能。
[0048]对于本发明提供的混合内存环境下淘汰数据感知的缓存系统,由于采用了淘汰数据监控模块,能够精准的检测和分析缓存分组中各个页面的淘汰权重大小,并进行低空间开销的存储,因此得出页面在下一阶段被再次访问的可能程度,为下面的页面置换和空间划分提供了有效的支撑;由于采用了页面置换模块,基于监控到的页面淘汰权重和页面本身的访问特征,可以将缓存系统本身的性能和非易失性主存的写操作寿命同时兼顾到,因为不会因为追求减少写回而对缓存性能带来大的负面影响;由于采用了自适应空间划分模块,可以将缓存中未曾淘汰过的页面考虑在内,使得缓存空间中各类数据的分布满足现阶段请求访问的倾向,使得缓存的性能得到进一步的提升。
[0049]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种混合内存环境下淘汰数据感知的缓存方法,其特征在于,包括如下步骤: (1)通过收集到的缓存系统淘汰数据分析出缓存页面的淘汰权重; (2)基于监控得到的淘汰权重并结合页面自身的访问特征选取对缓存性能和非易失性主存寿命有好的页面进行淘汰; (3)基于请求特征和淘汰数据记录自适应的调整页面置换时选取淘汰对象的类型。2.如权利要求1所述的缓存方法,其特征在于,所述步骤(I)具体包括如下子步骤: (1.1)待淘汰页面确定后,监控方法获取页面对应的元数据信息,包含页面地址、淘汰时间和淘汰次数; (1.2)不命中发生时,基于收集到的元数据信息分析淘汰记录的局部性特征并计算出对应缓存页面的淘汰权重。3.如权利要求1或2所述的缓存方法,其特征在于,所述步骤(2)具体包括如下子步骤: (2.1)如若淘汰对象为最近淘汰过的页面,则基于缓存分组中所有最近发生淘汰页面的淘汰权重,计算出对应的淘汰阈值; (2.2)在淘汰阈值范围内优先选择干净的页面作为淘汰对象,以减少额外的写回非易失性主存操作,若没有对应的干净页面则选择最小权重的脏页面作为淘汰对象。4.如权利要求1或2所述的缓存方法,其特征在于,所述步骤(3)具体包括如下子步骤: (3.1)请求不命中,若请求页面在缓存淘汰记录集合中有对应记录则说明该记录最近发生过淘汰则选择最近没有发生过淘汰的缓存页面作为淘汰对象; (3.2)若请求页面在缓存淘汰记录集合没有记录,则说明该记录最近没有被访问过也没有被淘汰过,选择最近曾淘汰过的页面作为淘汰对象。5.—种混合内存环境下淘汰数据感知的缓存系统,其特征在于,包括监控模块、页面置换模块以及自适应空间划分模块,其中: 所述监控模块,用于对缓存中淘汰的数据记录进行元数据收集和淘汰权重分析,用于支撑下面的页面置换和空间划分; 所述页面置换模块,用于缓存系统发生请求不命中时,选择对缓存性能影响最小且尽量不需要写回非易失性主存的页面进行淘汰; 所述自适应空间划分模块,用于请求不命中且淘汰数据类型未确定之前来判断当前阶段应该选择哪种类型的页面作为淘汰对象。6.根据权利要求5所述淘汰数据感知的缓存系统,其特征在于,所述监控模块包括淘汰页面元数据收集子模块和页面淘汰权重分析子模块,其中淘汰页面元数据收集子模块用来在淘汰操作发生后收集被淘汰页面的元数据信息,元数据信息包含页面地址、页面淘汰时间和页面淘汰次数;页面淘汰权重分析子模块,用于在需要淘汰页面时,分析淘汰记录集合中各个记录的局部性权重,然后计算得出对应缓存页面的淘汰权重。7.根据权利要求5所述淘汰数据感知的缓存系统,其特征在于,所述页面置换模块包括淘汰阈值评估子模块和淘汰页面选取子模块,其中淘汰阈值评估子模块,用于基于当前缓存分组中各个页面的淘汰权重大小,计算出权重的均值和中位数,然后基于两个值得出目标淘汰阈值;淘汰页面选取子模块,用于基于淘汰阈值和页面访问特征,选取目标淘汰页面,目标淘汰页面是指对缓存命中率影响小且尽量无需写回的页面。8.根据权利要求5所述淘汰数据感知的缓存系统,其特征在于,所述自适应空间划分模块,用于在淘汰页面类型未确定之前,基于请求类型和淘汰记录,判定本次淘汰的目标页面类型。
【文档编号】G06F12/02GK105975402SQ201610278653
【公开日】2016年9月28日
【申请日】2016年4月28日
【发明人】吴松, 贾佑闯, 金海
【申请人】华中科技大学
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1