组原_Cache 替换算法和写策略
目录
1. 替换算法
3考虑了局部性原理,4侧重全局观念。
区分 3 和 4 计数器工作方式。
1.1 全相联映射替换分析
给出的是块号,不再需要从二进制地址中拆分出来。
对于全相联映射来说,主存的块号就是标记位。
相联存储器的工作原理理解。
图中信息:
对 LFU 替换算法,要更多的判断依据,需要参考操作系统对应的内容。
最后这个2不管替换谁都是没有命中的。 所以总共命中3次。
1.2 直接映射
在处理直接映射的时候需要先做两个准备工作:
计算 主存块号除以 Cache 块数 ==> 余数决定这个主存块应该放到 Cache 中哪一块,商决定了这一块对应的标记位是什么。(下图用的都是十进制的模式)
1.3 组相联映射
准备工作:
计算 主存块号除以 Cache 组数 ==> 余数决定这个主存块应该放到 Cache 中哪一组,商决定了这一块对应的标记位是什么。(下图用的都是十进制的模式)
上述方式在空间上操作不方便且不够直观。所以采用如下表格的方法:
1. 为了方便人看,不转化标记,而是直接将块号填在表中
2. 表格的每一列都表示方式在当时情况下, Cache 中所放入块的情况。
FIFO 替换算法
组中元素是从下面开始放,下一次同一组元素进入也是从下面放。(把之前的 "下"元素 顶上去)
(上面的元素始终表示最先放进来的,并且往上顶的过程中自然替换掉了最先进来的元素)
LRU 算法
和 FIFO 一样,将元素从下面开始放,这样上面的元素始终表示即将要替换的元素。
2. 写策略
写分配法:把主存的块调入 Cache 中,在 Cache 中修改,搭配写回法使用。
非写分配法: 只写入主存,不调入 Cache , 搭配全写法使用。