4.2.1 Cache - Introduction

为什么使用Cache

  1. 因为主存和CPU发展速度的剪刀差,导致主存与CPU之间性能差异越来越大,主存称为限制计算速度的瓶颈。为了缓解这种差异,在主存与CPU之间加入速度更高的Cache。
  2. 由于IO访存优先级比较高,在IO访存的时候,主存一直忙,会造成CPU空等。为了解决这个问题,也需要在主存与CPU之间加入Cache作为缓冲。

程序访问的局部性原理

Cache的基本结构和读写操作

在这里插入图片描述
读操作

  1. 通过地址变换算法将主存地址变换为缓存地址
  2. 判断缓存是否命中
  • 若命中,就将信息送入CPU
  • 若未命中,则将信息通过主存调入CPU,同时将信息写入缓存,需要替换时,利用替换算法进行替换

写操作
写操作需要解决Cache和主存一致性的问题,一般采用两种方式

  • Write Through
    同时将信息写入主存和Cache,写操作时间就是访问主存的时间,更新策略比较容易实现
  • Write Back
    只把数据写入Cache,当块从Cache中退出时才将更新了的数据写入主存,写操作时间就是访问Cache的时间,但是增加了Cache的复杂性

Cache的命中与命中率

Cache的命中是指欲读取的数据已经在缓存内。
命中率是指命中Cache的次数占访问信息总次数的比率,
h = N c N c + N m h =\frac{N_c} {N_c+N_m} h=Nc+NmNc
平均访存时间 t a t_a ta
t a = h × t c + ( 1 − h ) × t m t_a = h\times t_c+(1-h)\times t_m ta=h×tc+(1h)×tm
访存效率 e e e
e = t a t c × 100 % e=\frac{t_a}{t_c} \times 100\% e=tcta×100%

Cache的改进

  • 增加Cache的级数
  • 将Cache分立,做成分立缓存(程序和数据)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值