选择替换缓存行的方法及其装置与流程

文档序号:35423187发布日期:2023-09-13 11:56阅读:24来源:国知局
选择替换缓存行的方法及其装置与流程

本申请涉及计算机,特别是涉及一种选择替换缓存行的方法和选择替换缓存行的装置。


背景技术:

1、良好的cache设计,既可以大大提高访问存储器的速度,也可以显著减小存储带宽的压力。cache结构使用哪种替换算法,会极大的影响cache的命中性能。

2、目前的cache缓存系统中,常用的cache替换算法有fifo(first in first out)、lru(least recently used)、random和plru(pseudo lru)。其中,fifo和random算法硬件实现简单,但是性能不佳,而lru算法总是能找到最老使用的cache line进行替换,性能最佳,但硬件设计复杂,消耗大量的硬件资源,同时时序不易收敛。而plru算法相较于lru算法,可以使用较少硬件资源,达到比较不错的性能。

3、然而,plru使用二叉树结构存储cache line(缓存行)的历史访问信息,但是如果替换状态二叉树指向的缓存行还没有被释放出来,则可能导致新的缓存行被选择替换,影响cache性能。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够避免较新的缓存行被选择,提高cache性能的选择替换缓存行的方法和选择替换缓存行的装置。

2、第一方面,本申请提供了一种选择替换缓存行的方法。所述方法包括:

3、查看阻塞缓存系统对应的使用状态二叉树的根节点的状态;

4、若所述使用状态二叉树的根节点的状态为第一状态,则将所述使用状态二叉树的根节点作为所述使用状态二叉树的当前母节点;

5、若所述使用状态二叉树的当前母节点的左右子节点状态为第一子状态,则将该当前母节点的左子节点作为所述使用状态二叉树的新的当前母节点;若所述使用状态二叉树的当前母节点的左右子节点状态为第二子状态,则将该当前母节点的右子节点作为所述使用状态二叉树的新的当前母节点;若所述使用状态二叉树的当前母节点的左右子节点状态为第三子状态,则将该当前母节点映射至所述阻塞缓存系统对应的阻塞状态二叉树相应的当前母节点;

6、若所述阻塞状态二叉树的当前母节点的状态为第三状态,则将该当前母节点的左子节点作为所述阻塞状态二叉树的新的当前母节点;若所述阻塞状态二叉树的当前母节点的状态为第四状态,则将该当前母节点的右子节点作为所述阻塞状态二叉树的新的当前母节点;将所述阻塞状态二叉树的新的当前母节点映射回所述使用状态二叉树的相应的当前母节点;

7、重复所述使用状态二叉树与所述阻塞状态二叉树选取当前母节点的步骤,直至所述使用状态二叉树的当前母节点没有子节点,得到所述阻塞缓存系统中将要替换的缓存行。

8、在其中一个实施例中,所述查看阻塞缓存系统对应的使用状态二叉树的根节点的状态之后,所述方法还包括:若所述使用状态二叉树的根节点的状态为第二状态,则判断所述阻塞缓存系统中没有可被替换的缓存行,继续查看所述使用状态二叉树的根节点的状态。

9、在其中一个实施例中,所述使用状态二叉树中节点的状态根据所述阻塞缓存系统中缓存行的可被替换状态确定。

10、在其中一个实施例中,所述阻塞状态二叉树中节点的状态根据所述阻塞缓存系统对应的替换状态二叉树中节点的状态及所述阻塞缓存系统中缓存行的可被替换状态确定。

11、在其中一个实施例中,所述方法还包括:所述阻塞缓存系统中将要替换的缓存行被选择后,更新所述使用状态二叉树及所述阻塞状态二叉树中节点的状态。

12、第二方面,本申请还提供了一种选择替换缓存行的装置。所述装置包括:

13、状态查看模块,用于查看阻塞缓存系统对应的使用状态二叉树的根节点的状态;

14、第一节点处理模块,用于若所述使用状态二叉树的根节点的状态为第一状态,则将所述使用状态二叉树的根节点作为所述使用状态二叉树的当前母节点;

15、第二节点处理模块,用于若所述使用状态二叉树的当前母节点的左右子节点状态为第一子状态,则将该当前母节点的左子节点作为所述使用状态二叉树的新的当前母节点;若所述使用状态二叉树的当前母节点的左右子节点状态为第二子状态,则将该当前母节点的右子节点作为所述使用状态二叉树的新的当前母节点;若所述使用状态二叉树的当前母节点的左右子节点状态为第三子状态,则将该当前母节点映射至所述阻塞缓存系统对应的阻塞状态二叉树相应的当前母节点;

16、第三节点处理模块,用于若所述阻塞状态二叉树的当前母节点的状态为第三状态,则将该当前母节点的左子节点作为所述阻塞状态二叉树的新的当前母节点;若所述阻塞状态二叉树的当前母节点的状态为第四状态,则将该当前母节点的右子节点作为所述阻塞状态二叉树的新的当前母节点;将所述阻塞状态二叉树的新的当前母节点映射回所述使用状态二叉树的相应的当前母节点;

17、缓存行得到模块,用于重复所述使用状态二叉树与所述阻塞状态二叉树选取当前母节点的步骤,直至所述使用状态二叉树的当前母节点没有子节点,得到所述阻塞缓存系统中将要替换的缓存行。

18、在其中一个实施例中,所述状态查看模块,还用于若所述使用状态二叉树的根节点的状态为第二状态,则判断所述阻塞缓存系统中没有可被替换的缓存行,继续查看所述使用状态二叉树的根节点的状态。

19、在其中一个实施例中,所述使用状态二叉树中节点的状态根据所述阻塞缓存系统中缓存行的可被替换状态确定。

20、在其中一个实施例中,所述阻塞状态二叉树中节点的状态根据所述阻塞缓存系统对应的替换状态二叉树中节点的状态及所述阻塞缓存系统中缓存行的可被替换状态确定。

21、在其中一个实施例中,还包括:状态更新模块,用于所述阻塞缓存系统中将要替换的缓存行被选择后,更新所述使用状态二叉树及所述阻塞状态二叉树中节点的状态。

22、上述选择替换缓存行的方法及其装置,通过添加阻塞状态二叉树代替替换状态二叉树并根据该阻塞状态二叉树及使用状态二叉树选择将要替换的缓存行,以较小的代价,在阻塞缓存中,能更加准确地找出可被替换的缓存行中最老的缓存行作为即将被替换的缓存行,更加符合存储器访问的时间和空间的连续性,提高缓存系统的命中率。



技术特征:

1.一种选择替换缓存行的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述查看阻塞缓存系统对应的使用状态二叉树的根节点的状态之后,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,所述使用状态二叉树中节点的状态根据所述阻塞缓存系统中缓存行的可被替换状态确定。

4.根据权利要求1所述的方法,其特征在于,所述阻塞状态二叉树中节点的状态根据所述阻塞缓存系统对应的替换状态二叉树中节点的状态及所述阻塞缓存系统中缓存行的可被替换状态确定。

5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:

6.一种选择替换缓存行的装置,其特征在于,所述装置包括:

7.根据权利要求6所述的装置,其特征在于,所述状态查看模块,还用于若所述使用状态二叉树的根节点的状态为第二状态,则判断所述阻塞缓存系统中没有可被替换的缓存行,继续查看所述使用状态二叉树的根节点的状态。

8.根据权利要求6所述的装置,其特征在于,所述使用状态二叉树中节点的状态根据所述阻塞缓存系统中缓存行的可被替换状态确定。

9.根据权利要求6所述的装置,其特征在于,所述阻塞状态二叉树中节点的状态根据所述阻塞缓存系统对应的替换状态二叉树中节点的状态及所述阻塞缓存系统中缓存行的可被替换状态确定。

10.根据权利要求6至9任一项所述的装置,其特征在于,还包括:状态更新模块,用于所述阻塞缓存系统中将要替换的缓存行被选择后,更新所述使用状态二叉树及所述阻塞状态二叉树中节点的状态。


技术总结
本申请涉及计算机技术领域,提供了一种选择替换缓存行的方法及其装置。本申请通过添加阻塞状态二叉树代替替换状态二叉树并根据该阻塞状态二叉树及使用状态二叉树选择将要替换的缓存行,以较小的代价,在阻塞缓存中,能更加准确地找出可被替换的缓存行中最老的缓存行作为即将被替换的缓存行,更加符合存储器访问的时间和空间的连续性,提高缓存系统的命中率。

技术研发人员:朱子文,武文杰,冯晶,余鹏程
受保护的技术使用者:格兰菲智能科技有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1