LRU(Least Recently Used)替换策略是cache的经典替换策略之一,然而,LRU替换策略的硬件开销较大。因此,一些现代处理器,例如Intel 486和PowerPC,它们使用的cache替换策略是PLRU(pseudo-LRU)。
PLRU是LRU的一种近似方法,本文介绍PLRU中的tree-PLRU(tree-based pseudo-LRU)。
原理
若当前cache是w路组相连的,即1个组内有w个cache line,则tree-PLRU算法会使用w-1位来表示近似访问历史顺序的二叉树。根据二叉树的特性,tree-PLRU将这w个cache line划分成不同的区块,并用0/1表示区块的访问时间的远近。如下图所示:
假定 tree-PLRU 遵循的是“访问 1 左 0 右”的原则,也就是说如果该 bit 位为1的话,说明最近访问的是左边的块,反之最近访问的是右边的块。
举个栗子&#