先看计数器的变化规则:
首先,我们要替换的是计数器最大的Cache块,关于理解“最大”的定义,可以知道其实只需要知道计数器起到的是排名的作用,与本身的值无关。
小时候经常有道脑经急转弯的“跑步比赛中,小明超过了第二名,那么小明现在是第几名?”这里的排名其实跟计数器一样,只起到比较作用。
关于第一条规则:
我们形象化地来画个图:
其中,红色的字体表示第i号块的排名,排名越高的越有可能被替换。当第四块被命中之后:
我们可以看见,6号块和5号块的排名没有变化,但3号2号1号块的排名往上了。
因此,计数器实现的其实是排名功能而不是真的记录未命中的次数
那么,剩下的两条规则用马拉松来做比较就都很好理解啦。(不过好像本来就挺好理解的)