Cache的块替换策略
1.最不经常使用算法(LFU)
替换原则:将一段时间内被访问次数最少的那行数据替换出去。
使用方法:
每行设置一个计时器,从0开始计数;
每访问一次,被访问的计时器增1;
当需要替换时,将计数器最小的行换出,计数器清零;
特点:
计数周期限定特定行两次替换之间的间隔时间内
不能严格反映近期访问情况
2.近期最少使用算法
替换原则:将近期内长久未被访问的那行数据替换出去。
使用方法:
每行设置一个计数器;
每访问一次,被访行的计数器清零,其他各行计数值加1;
当需要替换时,将计数值最大的行换出;
特点:
这种算法保护了刚调入到Cache中的新数据行,使Cache的使用率较高;
3.随机替换算法
替换原则:将一段时间内被访问次数最少的那行数据替换出去。
特点:在硬件上容易实现,且速度也比前两种快;
降低了命中率和Cache工作效率;
Cache写策略
1.写回式
写入策略:
只修改Cache的内容,而不立即写入主存;
只有当此行被换出时才写回主存;
Cache行必须配置修改位,反映是否被CPU修改过
优点:减少了访问主存的次数
缺点:存在Cache与主存不一致的隐患
2.全写式(写入式)
写入策略:Cache与主存同时发送修改,因而较好地维护Cache与主存的内容一致性
Cache中无需设置修改位以及相应的判断逻辑
缺点:降低了Cache的功效
每次同时写入主存和Cache,使写入速度变低;
3.写一次法
写入策略:
基于写回法,并结合全写法的写策略
写命中与写未命中的处理方法与写回法就基本相同,只是第一次写命中时要同时写入主存。
该写入策略适用于包含多个Cache的系统中
第一次Cache写命中时,将数据写入主存和一个Cache中
使系统中的其他Cache可以及时更新或废止该块内容,从而维护系统中该块数据的一致性