组原_Cache 替换算法和写策略

目录

1. 替换算法

1.1 全相联映射替换分析

1.2 直接映射

1.3 组相联映射

2. 写策略


 

1. 替换算法

组原_Cache 替换算法和写策略

3考虑了局部性原理,4侧重全局观念。
区分 3 和 4 计数器工作方式。

 

 

 

1.1 全相联映射替换分析

组原_Cache 替换算法和写策略

给出的是块号,不再需要从二进制地址中拆分出来。
对于全相联映射来说,主存的块号就是标记位。
相联存储器的工作原理理解。

图中信息:
对 LFU 替换算法,要更多的判断依据,需要参考操作系统对应的内容。
最后这个2不管替换谁都是没有命中的。 所以总共命中3次。

 

 

 

 

1.2 直接映射

在处理直接映射的时候需要先做两个准备工作:
计算 主存块号除以 Cache 块数 ==> 余数决定这个主存块应该放到 Cache 中哪一块,商决定了这一块对应的标记位是什么。(下图用的都是十进制的模式)

 

组原_Cache 替换算法和写策略

 

 

 

 

 

1.3 组相联映射

准备工作:
计算 主存块号除以 Cache 组数 ==> 余数决定这个主存块应该放到 Cache 中哪一组,商决定了这一块对应的标记位是什么。(下图用的都是十进制的模式)

组原_Cache 替换算法和写策略

 

上述方式在空间上操作不方便且不够直观。所以采用如下表格的方法:

1. 为了方便人看,不转化标记,而是直接将块号填在表中
2. 表格的每一列都表示方式在当时情况下, Cache 中所放入块的情况。 


组原_Cache 替换算法和写策略

FIFO 替换算法
组中元素是从下面开始放,下一次同一组元素进入也是从下面放。(把之前的 "下"元素 顶上去)
(上面的元素始终表示最先放进来的,并且往上顶的过程中自然替换掉了最先进来的元素)

 

 

组原_Cache 替换算法和写策略

LRU 算法
和 FIFO 一样,将元素从下面开始放,这样上面的元素始终表示即将要替换的元素。

 

 

 

 

2. 写策略

组原_Cache 替换算法和写策略

 

 

 

组原_Cache 替换算法和写策略

 

写分配法:把主存的块调入 Cache 中,在 Cache 中修改,搭配写回法使用。
非写分配法: 只写入主存,不调入 Cache ,  搭配全写法使用。

 

 

 

组原_Cache 替换算法和写策略

 

 

组原_Cache 替换算法和写策略