Cache的块替换策略和Cache的写操作策略

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可以及时更新或废止该块内容,从而维护系统中该块数据的一致性

猜你喜欢

转载自blog.csdn.net/m0_46965984/article/details/124565191