一种高速缓冲存储器cache中的cache块的替换方法和装置制造方法及图纸

技术编号:14361332 阅读:131 留言:0更新日期:2017-01-09 04:33
本发明专利技术实施例公开了一种高速缓冲存储器cache中的cache块的替换方法和装置,涉及数据存储技术领域,用以在减少因访问远程内存而导致的访问延迟的同时,有效保证cache的利用率。本发明专利技术实施例提供的方法应用于节点,该节点中设置有cache;该方法包括:将cache中存储有远程页面数据的cache块归为第一分类,存储有本地页面数据的cache块归为第二分类;其中,第一分类对应的年龄增长速率小于第二分类对应的年龄增长速率;在每次访问的过程中,按照所属的分类对应的年龄增长速率,更新cache中的每个cache块的年龄,并在满足替换条件时,将年龄最大的一个cache块中存储的数据替换出去。

【技术实现步骤摘要】

本专利技术实施例涉及数据存储
,尤其涉及一种高速缓冲存储器(cache)中的cache块的替换方法和装置。
技术介绍
由于访问cache的速率大于访问内存的速率,因此节点中一般设置有cache。cache的基本读写单位为cache块(cacheline)。由于cache的容量小于内存的容量,因此当cache达到最大容量、且需要在cache中添加新的数据时,即满足替换条件时,需要将cache中的一个cache块中存储的数据替换出去。由于访问本地内存的速率大于访问远程内存的速率,因此,具体实现时,一般希望远程内存中的数据,即远程页面中的数据,能够在cache中停留的时间较长,从而减少因访问远程内存而导致的访问延迟。基于此,一种改进的替换方法包括:为cache中的每个cache块添加一个锁定位(lockbit),将存储有远程页面中的数据的cache块的锁定位置1;并基于LRU(LeastRecentlyUsed,近期最少使用算法),将锁定位为0的一个cache块中存储的数据替换出去。其中,锁定位置1的cache块中存储的数据不会被替换出去。在上述改进的替换方法中,锁定位置1的cache块会被滞留在cache中,这样,若锁定位置1后的cache块在后续访问中均不再被命中,则会使cache的有用空间减少,从而降低了cache的利用率。
技术实现思路
本专利技术的实施例提供一种cache中的cache块的替换方法和装置,用以在减少因访问远程内存而导致的访问延迟的同时,有效保证cache的利用率。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,提供一种cache中的cache块的替换方法,应用于节点,所述节点中设置有cache;所述方法包括:将所述cache中存储有远程页面数据的cache块归为第一分类,存储有本地页面数据的cache块归为第二分类;其中,所述第一分类对应的年龄增长速率小于所述第二分类对应的年龄增长速率;在每次访问的过程中,按照所属的分类对应的年龄增长速率,更新所述cache中的每个cache块的年龄,并在满足替换条件时,将年龄最大的一个cache块中存储的数据替换出去。结合第一方面,在第一种可能的实现方式中,所述节点中还设置有传输后备缓冲器TLB,所述TLB中包括每个cache块对应的页表;在所述将所述cache中存储有远程页面数据的cache块归为第一分类,存储有本地页面数据的cache块归为第二分类之前,所述方法还包括:根据所对应的页表的页面类型,确定每个cache块中存储的数据为远程页面数据还是本地页面数据;其中,所述页面类型为远程页面或本地页面。结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述将所述cache中存储有远程页面数据的cache块归为第一分类之后,所述方法还包括:在所述第一分类中,确定在预设时间段内被访问次数大于或等于第一阈值的远程页面组;确定在所述预设时间段内,所述远程页面组中被访问cache块的数量小于或等于第二阈值的远程页面,作为远程伪热页;将所述第一分类中的存储有所述远程伪热页中的数据的cache块归为第一子分类,所述第一分类中的其他cache块归为第二子分类;其中,所述第一子分类对应的年龄增长速率小于所述第二子分类对应的年龄增长速率。结合第一方面,在第三种可能的实现方式中,所述在每次访问的过程中,按照所属的分类对应的年龄增长速率,更新所述cache中的每个cache块的年龄,包括:在每次访问的过程中,若所述cache中有被命中的cache块,则将所述被命中的cache块的年龄清零,并根据所属的分类对应的年龄增长速率,更新其他未被命中的cache块;或者,在每次访问的过程中,若所述cache中没有被命中的cache块,则根据所属的分类对应的年龄增长速率,更新所述cache中的每个cache块的年龄。结合第一方面,在第四种可能的实现方式中,所述cache与内存之间的连接方式为组相连映射;在每次访问的过程中,按照所属的分类对应的年龄增长速率,更新所述cache中的每个cache块的年龄,并在满足替换条件时,将年龄最大的一个cache块中存储的数据替换出去;包括:在每次访问cache中的一个cache组的过程中,按照所属的分类对应的年龄增长速率,更新所述cache组中的每个cache块的年龄,并在满足替换条件时,将所述cache组中的年龄最大的一个cache块中存储的数据替换出去。结合第一方面、第一方面的第一种可能的实现方式至第四种可能的实现方式任一种,在第五种可能的实现方式中,当所述cache与内存之间的连接方式为组相连映射时,所述满足替换条件包括:被访问的cache组中没有被命中的cache块,且所述被访问的cache组达到最大容量;或,当所述cache与内存之间的连接方式为全相连映射或直接映射时,所述满足替换条件包括:所述cache中没有被命中的cache块,且所述cache达到最大容量。第二方面,提供一种节点,所述节点中设置有cache;所述节点包括:归类单元,用于将所述cache中存储有远程页面数据的cache块归为第一分类,存储有本地页面数据的cache块归为第二分类;其中,所述第一分类对应的年龄增长速率小于所述第二分类对应的年龄增长速率;更新替换单元,用于在每次访问的过程中,按照所属的分类对应的年龄增长速率,更新所述cache中的每个cache块的年龄,并在满足替换条件时,将年龄最大的一个cache块中存储的数据替换出去。结合第二方面,在第一种可能的实现方式中,所述节点中还设置有传输后备缓冲器TLB,所述TLB中包括每个cache块对应的页表;所述节点还包括:第一确定单元,用于根据所对应的页表的页面类型,确定每个cache块中存储的数据为远程页面数据还是本地页面数据;其中,所述页面类型为远程页面或本地页面。结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述节点还包括:第二确定单元,用于在所述第一分类中,确定在预设时间段内被访问次数大于或等于第一阈值的远程页面组;并确定在所述预设时间段内,所述远程页面组中被访问cache块的数量小于或等于第二阈值的远程页面,作为远程伪热页;所述归类单元还用于:将所述第一分类中的存储有所述远程伪热页中的数据的cache块归为第一子分类,所述第一分类中的其他cache块归为第二子分类;其中,所述第一子分类对应的年龄增长速率小于所述第二子分类对应的年龄增长速率。结合第二方面,在第三种可能的实现方式中,所述更新替换单元具体用于:在每次访问的过程中,若所述cache中有被命中的cache块,则将所述被命中的cache块的年龄清零,并根据所属的分类对应的年龄增长速率,更新其他未被命中的cache块;或者,在每次访问的过程中,若所述cache中没有被命中的cache块,则根据所属的分类对应的年龄增长速率,更新所述cache中的每个cache块的年龄。结合第二方面,在第四种可能的实现方式中,所述cache与内存之间的连接方式为组相连映射;所述更新替换单元具体用于:在每次访问cache中的一个cache组的过程中,按照所属的分类对应的年龄增长速率,更新所述cache组中的每本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201510316352.html" title="一种高速缓冲存储器cache中的cache块的替换方法和装置原文来自X技术">高速缓冲存储器cache中的cache块的替换方法和装置</a>

【技术保护点】
一种高速缓冲存储器cache中的cache块的替换方法,其特征在于,应用于节点,所述节点中设置有cache;所述方法包括:将所述cache中存储有远程页面数据的cache块归为第一分类,存储有本地页面数据的cache块归为第二分类;其中,所述第一分类对应的年龄增长速率小于所述第二分类对应的年龄增长速率;在每次访问的过程中,按照所属的分类对应的年龄增长速率,更新所述cache中的每个cache块的年龄,并在满足替换条件时,将年龄最大的一个cache块中存储的数据替换出去。

【技术特征摘要】
1.一种高速缓冲存储器cache中的cache块的替换方法,其特征在于,应用于节点,所述节点中设置有cache;所述方法包括:将所述cache中存储有远程页面数据的cache块归为第一分类,存储有本地页面数据的cache块归为第二分类;其中,所述第一分类对应的年龄增长速率小于所述第二分类对应的年龄增长速率;在每次访问的过程中,按照所属的分类对应的年龄增长速率,更新所述cache中的每个cache块的年龄,并在满足替换条件时,将年龄最大的一个cache块中存储的数据替换出去。2.根据权利要求1所述的方法,其特征在于,所述节点中还设置有传输后备缓冲器TLB,所述TLB中包括每个cache块对应的页表;在所述将所述cache中存储有远程页面数据的cache块归为第一分类,存储有本地页面数据的cache块归为第二分类之前,所述方法还包括:根据所对应的页表的页面类型,确定每个cache块中存储的数据为远程页面数据还是本地页面数据;其中,所述页面类型为远程页面或本地页面。3.根据权利要求1或2所述的方法,其特征在于,在所述将所述cache中存储有远程页面数据的cache块归为第一分类之后,所述方法还包括:在所述第一分类中,确定在预设时间段内被访问次数大于或等于第一阈值的远程页面组;确定在所述预设时间段内,所述远程页面组中被访问cache块的数量小于或等于第二阈值的远程页面,作为远程伪热页;将所述第一分类中的存储有所述远程伪热页中的数据的cache块归为第一子分类,所述第一分类中的其他cache块归为第二子分类;其中,所述第一子分类对应的年龄增长速率小于所述第二子分类对应的年龄增长速率。4.根据权利要求1所述的方法,其特征在于,所述在每次访问的过程中,按照所属的分类对应的年龄增长速率,更新所述cache中的每个cache块的年龄,包括:在每次访问的过程中,若所述cache中有被命中的cache块,则将所
\t述被命中的cache块的年龄清零,并根据所属的分类对应的年龄增长速率,更新其他未被命中的cache块;或者,在每次访问的过程中,若所述cache中没有被命中的cache块,则根据所属的分类对应的年龄增长速率,更新所述cache中的每个cache块的年龄。5.根据权利要求1所述的方法,其特征在于,所述cache与内存之间的连接方式为组相连映射;在每次访问的过程中,按照所属的分类对应的年龄增长速率,更新所述cache中的每个cache块的年龄,并在满足替换条件时,将年龄最大的一个cache块中存储的数据替换出去;包括:在每次访问cache中的一个cache组的过程中,按照所属的分类对应的年龄增长速率,更新所述cache组中的每个cache块的年龄,并在满足替换条件时,将所述cache组中的年龄最大的一个cache块中存储的数据替换出去。6.根据权利要求1-5任一项所述的方法,其特征在于,当所述cache与内存之间的连接方式为组相连映射时,所述满足替换条件包括:被访问的cache组中没有被命中的cache块,且所述被访问的ca...

【专利技术属性】
技术研发人员:江涛刘月吉张科柴琳
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1