我需要一个LRU算法,用于4路关联缓存,每组有额外的5位,以指示应该删除哪一行。
-------------------------------------
Set x: | line_0 | line_1 | line_2 | line_3 |
-------------------------------------
-----------------------------------------
| bit_4 | bit_3 | bit_2 | bit_1 | bit_0 |
-----------------------------------------
起初,我试图把我的问题分解成更小的问题。
只有两行,我会同时激活与当前使用的行对应的位,将另一行设置为0。
受害者将是位设置为0的行(前提是该组已满)。
我想我可以在有位的4路缓存中使用它
bit_4
,
bit_3
,
bit_1
,
bit_0
对应于
line_0
,
line_1
,
line_2
,
line_3
中间的位表示最近使用了哪一侧。我很快意识到它不够精确。即在序列之后
line_0
,
线2
,
线3
,
line_1
比特将是:10101,这将指示左侧最近被引用(这是真的),但这并不一定意味着该侧最近没有被引用。
如有任何提示,我将不胜感激。