【计算机组成原理】LRU计数器问题

学习最近最久未使用(LRU)算法的时候是否会有这样一个疑问,为什么命中某一行时,该行的计数器清零,比其低的计数器加1,其余不变。

先来回顾一下计数器变化的规则

①命中时,所命中的行的计数器清零,比其低的计数器加1,其余不变;

②未命中且还有空闲行时,新装入的行的计数器置为0,其余非空闲行计数器全加1;

③未命中且没有空闲行时,计数器值最大的行被替换,新装入的行的计数器置为0,其余全加1;

以4路组相联为例说明,4路组相联,即4个cache行为一组,那么为了表示其先后未访问时间的排名,需要在cache行里面添加冗余位,4个cache行只需两个冗余位就能表示其排名,0、1、2、3

假设第一行计数器是2,第二行计数器是3,第三行计数器是1,第四行计数器是0

计数器 cache行
2 1
3 2
1 3
0 4

如果规则①是所命中的行的计数器清零,其余所有计数器加1的话,而再次访问到第一行时,计数器就会变成

计数器 cache行
0 1
4 2
2 3
1 4

这样计数器最高就变成了4,用二进制表示的话是100,原本2个二进制位将无法表示

而且,LRU的计数器本质上并不是记录的未命中次数,就拿班级考试来说,如果小明原本是第二名,一天小明转班走了,第三名变成了第二名,第四名变成了第三名............

当然这个例子并不太恰当,只是可能会比较形象。

相关推荐
CodeYp20195 天前
第14讲:mmap 实现文件 LRU 缓存
linux·lru·mmap
kiracrimson13 天前
编码简述:内存里没有文字,只有一张对照表
开发语言·c++·二进制·计算机组成原理
北京地铁1号线14 天前
后端开发:缓存(Cache)简介
后端·缓存·cache
MicrosoftCloud17 天前
操作系统 07|页面置换:OPT / FIFO / LRU 手算一遍,再讲清 Belady 和改进型 Clock
操作系统·fifo·lru·页面置换·opt·belady·clock算法
行者-全栈开发24 天前
InfluxDB TSM 存储引擎深度解析:写入路径与压缩机制
cache·性能调优·influxdb·wal·存储引擎·compaction·tsm
suhan1 个月前
【计算机组成原理】七、输入/输出系统:1.I/O基本概念、I/O设备(外部设备)
计算机组成原理
suhan1 个月前
【计算机组成原理】汇总五、中央处理器
计算机组成原理
suhan1 个月前
【计算机组成原理】五、中央处理器:2.数据通路、控制器(单总线结构、专用数据通路、硬布线控制器、微程序控制器)
计算机组成原理
suhan1 个月前
【计算机组成原理】五、中央处理器:3.指令流水线(互斥、同步)
计算机组成原理
八解毒剂1 个月前
【计组】中央处理器CPU
java·开发语言·计算机组成原理