Cache 的工作原理要求它尽量保存最新数据或者最近历史访问数据,由于 Cache
的容量限制和各种映射机制存在不足,在发生缺失时必然会产生替换。直接映射机制
只将特定数据行换出;全相连和组相连映射从具有访问行数据存储权的若干特定行中
按照替换机制选出一行进行换出[
38]。常见的替换算法有:随机替换算法,先进先出替
换算法(FIFO,First In First Out)、最不经常使用替换算法(LFU,Least Frequency
Used)、近期最少使用替换算法(LRU,Least Recently Used),下面详细介绍几种替换
算法:
①随机替换算法
Cache 在发生替换时随机的选取一行换出。这种替换策略速度快、硬件实现简单,
但是有可能替换最近访问行而降低 Cache 的命中率。
②先进先出替换策略
将替换规则与访问地址的历史顺序相关联,每次都把最先放入的一行数据块被替
换出,但是该设计方法与 Cache 设计原理的局部性原理相悖,并不能反应数据块的使
用频率。
③最不经常使用替换算法
LFU 是替换最近一段时间内长期未被访问且访问频率最低的 Cache 行数据,这
种策略是通过设置计数器来完成计数每个数据块的使用频率。每行设置一个从 0 开始
的计数器,计数器在每次被访问时自增 1。当由于发生 Cache 缺失时,需要替换计数
值最小行,同时清零这些行的计数器。这种替换算法只计数到两次特定时间内,不能
严格反映出近期访问情况,与局部性原理不符。
④最近最少使用替换算法
与LFU不同的是,LRU算法是将最近一段时间内很久未访问过的Cache行换出,
也是通过设置计数器来完成计数每个数据块的使用频率。每行含有一个计数器,Cache
在发生命中时对该命中行计数器清零,其它相关行的计数器自增加 1。如果 Cache 缺
失,则替换计数值最大的行。LFU 可有效减小冲突缺失,保护最新数据行,提高 Cache
命中率。
Cache 替换策略
最新推荐文章于 2025-10-19 00:03:06 发布

496

被折叠的 条评论
为什么被折叠?



