替换算法 、写策略 (计组学习笔记)

一研为定,万山无阻

Cache 工作原理

在这里插入图片描述

Cache 满及占用处理方式 ->

在这里插入图片描述

替换算法

  • 1.随机算法(RAND):随机地确定替换的 Cache块。它的实现比较简单,但没有依据程序访问的局部性原理,故可能命中率较低。

  • 2.先进先出算法(FIFO):选择最早调入的行进行替换。它比较容易实现,但也没有依据程序访问的局部性原理,可能会把一些需要经常使用的程序块(如循环程序)也作为最早进入 Cache的块替换掉。

  • 3.近期最少使用算法(LRU):依据程序访问的局部性原理选择近期内长久未访问过的存储行作为替换的行,平均命中率要比FIFO要高,是堆栈类算法。LRU算法对每行设置一个计数器, Cache每命中一次,命中行计数器清0,而其他各行计数器均加1,需要替换时比较各特定行的计数值,将计数值最大的行换出。

  • 4.最不经常使用算法(LFU):将一段时间内被访问次数最少的存储行换出。每行也设置一个计数器,新行建立后从0开始计数,每访问一次,被访问的行计数器加1,需要替换时比较各特定行的计数值,将计数值最小的行换出。

实列

  • 根据替换算法,求Cache 命中次数
  • 命中的含义简要为重复的直接从缓存中取就行。即为需要访问的内容已经在 Cache 中 。

总结注意:命中次数与地址映射方式与替换算法都相关

全相联映射情况

  • 命中3次如下图
    在这里插入图片描述
  • 如何识别标记命中与否 相联存储器:并行比较标记,若有标记与当前将要访问的地址的标记相同,且有效位为1,则命中

直接映射情况

  • 命中1次
    在这里插入图片描述
    相联存储器:根据映射到的 Cache块号比较标记,若标记相同且有效位为1,则命中。若标记不同,直接替换

组相联映射情况

  • 2 - 路 组相联

在这里插入图片描述

  • 相联存储器:根据映射到的 Cache组号并行比较组内标记,若标记相同且有效位为1,则命中。若标记不同,而有效位为1,根替换策略替换

推荐方法 : 列表法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改Cache 如何保持主存一致 ->

在这里插入图片描述

写策略

命中时策略

写回法

在这里插入图片描述
注意引入新概念 : 脏位

全写法

  • 与上述对应的是(即为修改缓存内容也同时立即修改主存的内容)全写法

在这里插入图片描述

非命中时策略

写分配法

在这里插入图片描述

非写分配法

在这里插入图片描述

总结

在这里插入图片描述
多级 Cache 缓存
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值