延迟PCM内存使用寿命的cache替换方法及装置与流程

文档序号:11829539阅读:241来源:国知局
延迟PCM内存使用寿命的cache替换方法及装置与流程

本发明涉及计算机系统结构技术领域,尤其涉及一种延迟PCM内存使用寿命的cache替换方法及装置。



背景技术:

随着多核系统的推广和数据密集型应用的发展,计算机存储系统需要更大的存储容量来满足实际需求,其中关键一点是增大内存容量。

目前的计算机存储系统大多采用DRAM内存。DRAM内存可以通过缩小单个存储单元来提高集成度,从而获得更大的存储容量,但随着DRAM存储单元缩小到一定程度,要进一步增大DRAM内存面临的困难很大。

使用新型存储材料代替DRAM作为内存成为了当前的一个研究热点。在这些新型存储材料中,相变存储(PCM)因其具有存储密度高、功耗低和非易失等优点从而受到广泛关注,但PCM的可擦写次数有限,如果直接用作内存会有使用寿命过短的问题。有很多研究工作从不同角度来延长PCM内存使用寿命,其中优化cache替换策略是一种有效方法,它通过为cache中的脏块提供额外保护来减少被替出的脏块数量,从而减少对PCM内存的写回量。

Cache对数据块的处理可分为新块插入、访问命中、降级(降低无用块的保护优先级)和选择替出块四个过程。已有的针对PCM内存的cache替换策略对脏块的保护都没有涵盖所有的cache处理过程,它们保护脏块的方法主要是在新块插入和访问命中时,相比干净块给脏块设置更高的保护优先级,在降级处理上不再区分脏块和干净块,这会导致cache可能在有大量干净块时仍选择替出脏块。



技术实现要素:

本发明提供一种延迟PCM内存使用寿命的cache替换方法及装置,用于解决现有技术中PCM内存使用寿命过短的问题。

第一方面,本发明提供一种延迟PCM内存使用寿命的cache替换方法,包括:

设置多个高速缓冲存储块,并将各存储块分为低访问频率干净块集合、低访问频率脏块集合、高访问频率干净块集合和高访问频率脏块集合;

在每类存储块中,根据存储块最后一次被访问的时间进行排序,获得每个存储块集合所对应的LRU链,其中,在LRU链中最后一次访问时间距离当前时间最近的存储块为MRU块,最后一次访问时间距离当前时间最远的存储块为LRU块;

当检测到有新存储块插入时,若判断确定新存储块采用读缺失引入方式进行插入,则将新存储块设置在低访问频率干净块集合LRU链的MRU位置上,并重新生成对应的LRU链;若判断确定新存储块采用写缺失引入方式进行插入,则将新存储块设置在低访问频率脏块集合LRU链的MRU位置上,并重新生成对应的LRU链;

当检测到已存存储块被访问命中时,若判断确定所述已存存储块采用读命中方式被命中,且所述已存存储块所属低访问频率干净块集合或高访问频率干净块集合,则将已存存储块移动到高访问频率干净块LRU链的MRU位置上,并重新生成对应的LRU链;若是其他情况,则将已存存储块移动到高访问频率脏块LRU链的MRU位置上,并重新生成对应的LRU链;

当检测到需替出一已存存储块时,依次对低访问频率干净块集合、低访问频率脏块集合、高访问频率干净块集合和高访问频率脏块集合的LRU链进行检测,若检测到第一个非空LRU链时,将所述LRU链中的LRU位置上的存储块替出,并对所述LRU链对应的存储块集合重新生成对应的LRU链。

优选地,当检测到第一个非空LRU链时,将所述LRU链中的LRU位置上的存储块替出,并对所述LRU链对应的存储块集合重新生成对应的LRU链之后,还包括:

若判断确定替出的存储块所属低访问频率脏块,则将高访问频率干净块集合LRU链中LRU位置上的存储块移动到低访问频率干净块集合LRU链中的MRU位置上,同时将高访问频率脏块集合LRU链中LRU位置上的存储块移动到低访问频率脏块集合LRU链中的MRU位置上,并重新生成对应的LRU链。

优选地,当检测到第一个非空LRU链时,将所述LRU链中的LRU位置上的存储块替出,并对所述LRU链对应的存储块集合重新生成对应的LRU链之后,还包括:

若判断确定替出的存储块所属高访问频率干净块,则将高访问频率脏块集合LRU链中LRU位置上的存储块移动到低访问频率脏块集合LRU链中的MRU位置上,并重新生成对应的LRU链。

第二方面,本发明提供一种延迟PCM内存使用寿命的cache替换装置,包括:

配置模块,用于设置多个高速缓冲存储块,并将各存储块分为低访问频率干净块集合、低访问频率脏块集合、高访问频率干净块集合和高访问频率脏块集合;

排序模块,用于在每类存储块中,根据存储块最后一次被访问的时间进行排序,获得每个存储块集合所对应的LRU链,其中,在LRU链中最后一次访问时间距离当前时间最近的存储块为MRU块,最后一次访问时间距离当前时间最远的存储块为LRU块;

插入模块,用于在检测到有新存储块插入时,若判断确定新存储块采用读缺失引入方式进行插入,则将新存储块设置在低访问频率干净块集合LRU链的MRU位置上,并重新生成对应的LRU链;若判断确定新存储块采用写缺失引入方式进行插入,则将新存储块设置在低访问频率脏块集合LRU链的MRU位置上,并重新生成对应的LRU链;

访问模块,用于在检测到已存存储块被访问命中时,若判断确定所述已存存储块采用读命中方式被命中,且所述已存存储块所属低访问频率干净块集合或高访问频率干净块集合,则将已存存储块移动到高访问频率干净块LRU链的MRU位置上,并重新生成对应的LRU链;若是其他情况,则将已存存储块移动到高访问频率脏块LRU链的MRU位置上,并重新生成对应的LRU链;

替出模块,用于在检测到需替出一已存存储块时,依次对低访问频率干净块集合、低访问频率脏块集合、高访问频率干净块集合和高访问频率脏块集合的LRU链进行检测,若检测到第一个非空LRU链时,将所述LRU链中的LRU位置上的存储块替出,并对所述LRU链对应的存储块集合重新生成对应的LRU链。

优选地,所述替出模块还用于:若判断确定替出的存储块所属低访问频率脏块,则将高访问频率干净块集合LRU链中LRU位置上的存储块移动到低访问频率干净块集合LRU链中的MRU位置上,同时将高访问频率脏块集合LRU链中LRU位置上的存储块移动到低访问频率脏块集合LRU链中的MRU位置上,并重新生成对应的LRU链。

优选地,所述替出模块还用于:若判断确定替出的存储块所属高访问频率干净块,则将高访问频率脏块集合LRU链中LRU位置上的存储块移动到低访问频率脏块集合LRU链中的MRU位置上,并重新生成对应的LRU链。

由上述技术方案可知,本发明提供的一种延迟PCM内存使用寿命的cache替换方法及装置,通过在cache块的所有处理过程中均对脏块和干净块进行区分,为脏块和干净块均提供了更全面的保护,实现了在不影响整体性能的前提下,有效减少对PCM内存的写回量,延长了使用寿命。

附图说明

图1为本发明一实施例提供的延迟PCM内存使用寿命的cache替换方法的流程示意图;

图2为本发明一实施例提供的延迟PCM内存使用寿命的cache替换装置的结构示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

图1示出了本发明一实施例提供的一种延迟PCM内存使用寿命的cache替换方法,包括:

S11、设置多个高速缓冲存储块,并将各存储块分为低访问频率干净块集合、低访问频率脏块集合、高访问频率干净块集合和高访问频率脏块集合。

在本步骤中,需要说明的是,在系统存储过程中会存在多个高速缓冲存储块(cache块),根据各个存储块的访问度的热度,以及存储块内数据是否修改,将各个存储块分为低访问频率干净块集合、低访问频率脏块集合、高访问频率干净块集合和高访问频率脏块集合。在每个存储块集合中可同类的存储块。

S12、在每类存储块中,根据存储块最后一次被访问的时间进行排序,获得每个存储块集合所对应的LRU链,其中,在LRU链中最后一次访问时间距离当前时间最近的存储块为MRU块,最后一次访问时间距离当前时间最远的存储块为LRU块。

在本步骤中,需要说明的是,由于每个存储块集合中可存在多个存储块,故需对每个集合中的存储块进行排序。本发明实施例可根据存储块最后一次被访问的时间进行排序,体现了访问时域性,同时获得每个存储块集合所对应的LRU链。其中,在LRU链中最后一次访问时间距离当前时间较近的存储块为MRU块,该MRU块所在位置为MRU位置。最后一次访问时间距离当前时间较远的存储块为LRU块,该LRU块所在位置为LRU位置。

S13、当检测到有新存储块插入时,若判断确定新存储块采用读缺失引入方式进行插入,则将新存储块设置在低访问频率干净块集合LRU链的MRU位置上,并重新生成对应的LRU链;若判断确定新存储块采用写缺失引入方式进行插入,则将新存储块设置在低访问频率脏块集合LRU链的MRU位置上,并重新生成对应的LRU链。

在本步骤中,需要说明的是,在新存储块插入过程中,当检测到新存储块插入时,首先要判断该新存储块是采用读缺失引入方式插入,还是采用写缺失引入方式插入。

当判断确定新存储块采用读缺失引入方式进行插入,则将新存储块设置在低访问频率干净块集合LRU链的MRU位置上,而同时曾经在MRU位置上的存储块排列在新存储块之前。插入完毕后,对该存储块集合重新生成新的LRU链。

当判断确定新存储块采用写缺失引入方式进行插入,则将新存储块设置在低访问频率脏块集合LRU链的MRU位置上,而同时曾经在MRU位置上的存储块排列在新存储块之前。插入完毕后,对该存储块集合重新生成新的LRU链。

S14、当检测到已存存储块被访问命中时,若判断确定所述已存存储块采用读命中方式被命中,且所述已存存储块所属低访问频率干净块集合或高访问频率干净块集合,则将已存存储块移动到高访问频率干净块LRU链的MRU位置上,并重新生成对应的LRU链;若是其他情况,则将已存存储块移动到高访问频率脏块LRU链的MRU位置上,并重新生成对应的LRU链。

在本步骤中,需要说明的是,在存储块集合中的已存存储块被访问命中过程中,当检测到已存存储块被访问命中时,首先要判断确定该已存存储块是采用读命中方式被命中,还是采用其他方式被命中。

当判断确定所述已存存储块采用读命中方式被命中,且所述已存存储块所属低访问频率干净块集合或高访问频率干净块集合,则将已存存储块移动到高访问频率干净块LRU链的MRU位置上,而同时曾经在MRU位置上的存储块排列在移动的存储块之前。移动完毕后,对移动后的存储块集合重新生成新的LRU链。

除上述情况下的其他所有情况,均将已存存储块移动到高访问频率脏块LRU链的MRU位置上,而同时曾经在MRU位置上的存储块排列在移动的存储块之前,移动完毕后,对移动后的存储块集合重新生成新的LRU链。

S15、当检测到需替出一已存存储块时,依次对低访问频率干净块集合、低访问频率脏块集合、高访问频率干净块集合和高访问频率脏块集合的LRU链进行检测,若检测到第一个非空LRU链时,将所述LRU链中的LRU位置上的存储块替出,并对所述LRU链对应的存储块集合重新生成对应的LRU链。

在本步骤中,需要说明的是,在存储块集合中的已存存储块被替出过程中,需依次对低访问频率干净块集合、低访问频率脏块集合、高访问频率干净块集合和高访问频率脏块集合的LRU链进行检测。当检测到第一个非空LRU链时,将所述LRU链中的LRU位置上的存储块替出,并对所述LRU链对应的存储块集合重新生成对应的LRU链。

针对本步骤,还需对以下可出现的情况进行解释说明:

A、若判断确定替出的存储块所属低访问频率脏块,则将高访问频率干净块集合LRU链中LRU位置上的存储块移动到低访问频率干净块集合LRU链中的MRU位置上,而同时曾经在MRU位置上的存储块排列在移动的存储块之前,移动完毕后,对移动后的存储块集合重新生成新的LRU链。

将高访问频率脏块集合LRU链中LRU位置上的存储块移动到低访问频率脏块集合LRU链中的MRU位置上,而同时曾经在MRU位置上的存储块排列在移动的存储块之前,移动完毕后,对移动后的存储块集合重新生成新的LRU链。

B、若判断确定替出的存储块所属高访问频率干净块,则将高访问频率脏块集合LRU链中LRU位置上的存储块移动到低访问频率脏块集合LRU链中的MRU位置上,而同时曾经在MRU位置上的存储块排列在移动的存储块之前,移动完毕后,对移动后的存储块集合重新生成新的LRU链。

本发明实施例提供的一种延迟PCM内存使用寿命的cache替换方法,通过在cache块的所有处理过程中均对脏块和干净块进行区分,为脏块和干净块均提供了更全面的保护,实现了在不影响整体性能的前提下,有效减少对PCM内存的写回量,延长了使用寿命。

图2示出了本发明一实施例提供的一种延迟PCM内存使用寿命的cache替换装置,包括配置模块21、排序模块22、插入模块23、访问模块24和替出模块25,其中:

配置模块21,用于设置多个高速缓冲存储块,并将各存储块分为低访问频率干净块集合、低访问频率脏块集合、高访问频率干净块集合和高访问频率脏块集合;

排序模块22,用于在每类存储块中,根据存储块最后一次被访问的时间进行排序,获得每个存储块集合所对应的LRU链,其中,在LRU链中最后一次访问时间距离当前时间最近的存储块为MRU块,最后一次访问时间距离当前时间最远的存储块为LRU块;

插入模块23,用于在检测到有新存储块插入时,若判断确定新存储块采用读缺失引入方式进行插入,则将新存储块设置在低访问频率干净块集合LRU链的MRU位置上,并重新生成对应的LRU链;若判断确定新存储块采用写缺失引入方式进行插入,则将新存储块设置在低访问频率脏块集合LRU链的MRU位置上,并重新生成对应的LRU链;

访问模块24,用于在检测到已存存储块被访问命中时,若判断确定所述已存存储块采用读命中方式被命中,且所述已存存储块所属低访问频率干净块集合或高访问频率干净块集合,则将已存存储块移动到高访问频率干净块LRU链的MRU位置上,并重新生成对应的LRU链;若是其他情况,则将已存存储块移动到高访问频率脏块LRU链的MRU位置上,并重新生成对应的LRU链;

替出模块25,用于在检测到需替出一已存存储块时,依次对低访问频率干净块集合、低访问频率脏块集合、高访问频率干净块集合和高访问频率脏块集合的LRU链进行检测,若检测到第一个非空LRU链时,将所述LRU链中的LRU位置上的存储块替出,并对所述LRU链对应的存储块集合重新生成对应的LRU链。

在可能出现的情况下,所述替出模块还用于:若判断确定替出的存储块所属低访问频率脏块,则将高访问频率干净块集合LRU链中LRU位置上的存储块移动到低访问频率干净块集合LRU链中的MRU位置上,同时将高访问频率脏块集合LRU链中LRU位置上的存储块移动到低访问频率脏块集合LRU链中的MRU位置上,并重新生成对应的LRU链。若判断确定替出的存储块所属高访问频率干净块,则将高访问频率脏块集合LRU链中LRU位置上的存储块移动到低访问频率脏块集合LRU链中的MRU位置上,并重新生成对应的LRU链。

由于本发明实施例所述装置与上述实施例所述方法的原理相同,对于更加详细的解释内容在此不再赘述。

需要说明的是,本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。

本发明实施例提供的一种延迟PCM内存使用寿命的cache替换装置,通过在cache块的所有处理过程中均对脏块和干净块进行区分,为脏块和干净块均提供了更全面的保护,实现了在不影响整体性能的前提下,有效减少对PCM内存的写回量,延长了使用寿命。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本领域普通技术人员可以理解:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1