psudo-LRU 算法的其中一个应用场景是cache line 的换出策略,是LRU算法的升级版
1.算法原理:
一个组相连的cache,一个way有4个entry,L0,L1,L2,L3共用3位LRU位r0,r1,r2。
2.LRU三个标志位r0,r1,r2 置位算法:
- 如果最近访问的是L0或L1,则r0位置1;否则(最近访问的是L2或者L3), 则r0位置0.
- 在L0,L1之间,若最近访问的是L0,则r1置1; 否则,r1置0.
- 在L2和L3之间,若最近访问的是L2,则r2置1;否则,r2置0。
3.entry换出规则
以上建立的r0,r1,r2三位标记,可使我们按如下规则替换有效行:
- 若 r0=0 且 r1=0, replace L0;
- 若 r0=0 且 r1=1, replace L1;
- 若 r0=1 且 r2=0, replace L2;
- 若 r0=1 且 r2=0, replace L3;