Cache的PLRU替换策略

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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的话,说明最近访问的是左边的块,反之最近访问的是右边的块。
举个栗子,在一个4路组相联的cache中,同一组内的4个cache line标号为0-3。那么按照tree-PLRU算法,它会使用4-1=3个比特来近似表示历史访问顺序,bit编号从0开始。
首先,我们将4个cache line划分为两半:

  • bit_0=1表示最近访问的是line0或line1。
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6