多级缓存与局部性原理

参考文献

  • 《计算机组成与体系结构》-黑皮书,第六章 存储器
  • 系统架构设计师教程–第一章

局部性原理

  • Cache改善系统性能的依据
  • 使用少量速度非常快的存储器来加速对系统主要存储器的访问
  • 计算机程序都具有局部性特征
引用的局部性
  • 如果处理器在t时刻访问了存储单元X,那么在不久的将来访问存储单元X+1的可能性会非常高
  • 三种基本形式
    • 时间局部性
      • Temporal locality
      • 最近访问过的内容很可能在不久的将来再次访问
    • 空间局部性
      • Spatial locality
      • 对存储器地址空间的访问形成团簇的集中倾向
      • 例如:在数组或循环中操作
    • 顺序局部性
      • Sequential locality
      • 访问存取器的指令倾向于按顺序执行
一些术语
  • 字域
    • world field
    • 数据字的块内地址
  • 命中
    • hit
    • 请求的数据就驻留在指定访问的存储器层
  • 缺失
    • miss
    • 请求的数据不在要访问的存储层
高速缓存
  • 高速缓存存储器有时也会被称为按内容寻址的存储器(content addressable memory, CAM)
  • 主存和高速缓存都将按块划分
    • 若CPU在高速缓存未发现,会将该数据存放的块加载到高速缓存
高速缓存映射模式
  • 三种模式
直接映射的高速缓存
  • 如图,按顺序映射到高速存储器,块0和块10都映射到高速存储器的块0,它们将通过竞争来决定谁将霸占整个坑位

在这里插入图片描述

在这里插入图片描述

全关联高速缓存

在这里插入图片描述
在这里插入图片描述

  • 允许主存储器存放到高速缓存任意位置
  • 专用硬件,比较昂贵
组关联高速缓存

在这里插入图片描述
在这里插入图片描述

  • 上面两种方式的平衡,折衷方式

替换算法(淘汰算法)

  • 当Cache已存满,且Cache miss hit,新数据将淘汰某些旧数据

  • 三种

    • 随机算法
    • FIFO
    • LRU
      • Least Recently Used, LRU算法

写操作

  • 写直达
    • write through
    • 同时写回Cache和主存
  • 写回
    • write back
    • CPU修改Cache某一块,不直接写入主存,而是等Cache淘汰时写入主存
  • 标记法
    • 只需写入内存
    • 若标志位为"1",则从Cache中取,若为“0”,则从主存中取

提示

  • 内存与Cache之间的映射往往采用硬件完成,软件编程时,完全不用考虑Cache
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拦路雨g

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值