25考研计算机组成原理复习·3.5高速缓冲存储器

高速缓冲存储器Cache

  1. 工作原理:将某些主存块复制到Cache中,缓和CPU与主存之间的速度矛盾
  2. 局部性原理
    1. 时间局部性:现在访问的地址,不久之后也很可能被再次访问
    2. 空间局部性:现在访问的地址,其附近的地址也很可能即将被访问
  3. 性能分析
    1. 命中率H:CPU欲访问的信息已在Cache中的比率
    2. 缺失(未命中)率:M = 1 - H
    3. 👩‍💻 两种方式
      1. 先访问Cache,发现未命中再访问主存
      2. 同时访问Cache和主存,若Cache命中则停止访问主存
  4. 其他概念
    1. 主存与Cache之间以"块"为单位进行数据交换
    2. 主存的"块"又叫"页/页框/页面";Cache的"块"又叫"行"
    3. 主存地址可拆分为(主存块号,块内地址)的形式

每次被访问的主存块,一定会被立即调入Cache

Cache-主存映射方式

Cache中存储的信息

  1. 有效位(0/1)+ 标记 + 整块数据
  2. 其中"标记"用于指明对应的内存块,不同映射方式,"标记"的位数不同

全相联映射

  1. 主存块可以放到Cache的任意位置
  2. 主存地址结构:标记(整个主存块号)+ 块内地址
  3. 优点:Cache存储空间利用充分,命中率高;缺点:查找"标记"最慢,有可能需要对比所有行的标记

直接映射

  1. 主存块只能放到特定的某个Cache行,行号 = 主存块号 % 总行数
  2. 主存地址结构:标记(主存块号前几位)+ 行号(主存块号末几位)块内地址
  3. 优点:对于任意一个地址,只需对比一个"标记",速度最快;缺点:Cache存储空间利用不充分,命中率低

组相联映射

  1. 主存块可以放到特定分组中的任意位置,所属组号 = 主存块号 % 总组数
  2. 主存地质结构:标记(主存块号前几位)+ 组号(主存块号末几位)块内地址
  3. 优点:另外两种方式折中,综合效果较好
  4. 术语:n路组相联映射------每n各Cache行为一组

Cache替换算法

  1. 随机算法(RAND)
    1. 随便选一个主存块替换
    2. 过于Freestyle,效果很差
  2. 先进先出算法(FIFO)
    1. 优先替换最先被调入Cache的主存块
    2. 不遵循局部性原理,效果差
  3. 👩‍💻近期最少使用(LRU)
    1. 将最久没有被访问过的主存块替换。每个Cache行设置一个"计数器"(Cache块的总数=2^n,则计数器只需n位),用于记录多久没有被访问
    2. 基于"局部性原理",近期被访问过的主存块,在不久的将来也很有可能被再次访问,因此淘汰最久没被访问过的块是合理的。LRU算法的实际运行效果优秀,Cache命中率高。
  4. 最不经常使用(LFU)
    1. 将被访问次数最少的主存块替换。每个Cache行设置一个"计数器",用于记录被访问过多少次
    2. 曾经被经常访问的主存块在未来不一定会用到,LFU实际运行效果不好

Cache写策略

非写分配法通常与全写法合用,写分配法通常和回写法合用

  1. 写命中
    1. 全写法(直写法,write-through):当CPU对Cache写命中时,必须把数据同时写入Cache和主存,一般使用写缓冲(write buffer)
    2. 回写法(write-back):当CPU对Cache写命中时,只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存
  2. 写不命中
    1. 写分配法(write-allocate):当CPU对Cache写不命中时,把主存中的块调入Cache,在Cache中修改。
    2. 非写分配法(not-write-allocate):当CPU对Cache写不命中时只写入主存,不调入Cache
  3. 多级Cache:现代计算机通常采用多级Cache结构,各级Cache间常采用"全写法+非写分配法",Cache和主存间常采用"写回法+写分配法"
相关推荐
码农幻想梦19 小时前
PKUKY150 浮点数加法(北京大学考研机试真题)
考研·字符串
元亓亓亓1 天前
考研408--数据结构--day11--最小生成树&最短路径问题&拓扑排序&关键路径
数据结构·考研·最小生成树·拓扑排序·最短路径·关键路径
码农幻想梦4 天前
3555. 二叉树(北京邮电大学考研机试题)
考研·
元亓亓亓4 天前
考研408--数据结构--day10--图的存储、基本操作和遍历
数据结构·考研·
元亓亓亓5 天前
考研408--数据结构--day9--树(存储结构)、森林(遍历)与二叉树的转换&哈夫曼树&并查集
数据结构·考研
小优整合5 天前
2026冲刺季:考研失利如何快速转型求职
考研·求职招聘
元亓亓亓8 天前
考研408--数据结构--day8--遍历序列&线索二叉树
数据结构·考研·408·线索二叉树
觉醒大王9 天前
哪些文章会被我拒稿?
论文阅读·笔记·深度学习·考研·自然语言处理·html·学习方法
CS创新实验室9 天前
《计算机网络》深入学:从自治系统内部到全球互联
计算机网络·考研·智能路由器·协议·408
元亓亓亓10 天前
考研408--数据结构--day6--串
数据结构·考研··408