Cache替换方案

Cache替换方案

1.         近期最少使用(LRU)算法

  LRU(Least Recentlv Used)算法是将一组中近期最少使用的块替换出去。为此,每块也设

置一个计数器,但每命中一次,命中块的计数器清0,而组内其他块的计数器加1。当需要替

换时,比较一组内所有块的计数器的值,将计数值最大的块替换掉。这种算法保护了刚拷贝

cache中的新数据块,符合Cache的工作原理,因而使Cache具有较高的命中率。

  对两路组相联的Cache来说,LRU算法的硬件实现可以简化。因为一个主存块只能在

一个特定组的两块中进行存放选择,2l不必用计数器,用一个二进制位(称为LRU)

可。例如,规定一组中的A块拷贝了新数据时将LRU位置1B块拷贝了新数据时将LRU

0。当需要替换时,只需检查LRU位:为0替换A块,为1替换B块。实现了保护新块的原则。

2.         时间与命中协调方式(自己随想)

       每当有命中的时候,则更新CACHE列表中的排除因子,当CACHE满的时候排除掉排除因子最大的,排除因子的计算方法是

       排除因子=相关系数*CACHE已经存活的时间/访问总命中次数)

相关系数的选择很重要,根据不同的业务需要,内存或磁盘空间大小,每个CACHE的大小等情况有关。

 
发布了36 篇原创文章 · 获赞 3 · 访问量 12万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章