【转载】Cache的基本原理

本文深入探讨了计算机缓存的工作原理,包括CPU寄存器、主存储和多级缓存的角色。直接映射缓存通过组寻址和字节寻址提高效率,而全相连缓存则进一步优化。此外,文章还介绍了写入策略,如写直通和写回,以及它们对数据一致性的影响。
摘要由CSDN通过智能技术生成

前言:转载的同时为了记录一下学习笔记,以便后续温故。

原文链接:Cache的基本原理

文章结构:

  1. 以一段C语言代码引出问题——数据是以行(line cache)的形式存储的。
  2. cpu寄存器读写访问速度快,主存储访问速度慢,中间加cache,作为缓存。
  3. 增加多级缓存,增加“命中”概率,让整体读取时间减少,每一级读取时间更平滑。
  4. 直接映射缓存,index是组寻址(行),offset是cache line上的字节寻址(列),把去除地址信息的数据放在tag array里,这个也属于cache的一部分,tag array用于比较数据,确定是“命中”还是“缺失”。
  5. 直接映射缓存大小不够,导致cache颠簸,就是需要在主缓存里寻址有效数据的概率,那么可以使用两路组相连缓存,我认为本质上就是扩大了cache,减少了颠簸。还有全相连缓存,也就是都在同一组,此时不再需要index组寻址。
  6. cache分配策略,重点在与写直通和写回,写直通是把CPU数据同步写入到cache和主存储中,结果就是cache和主存储数据一致。写回是CPU先把数据写入cache,等该cache line需要更新的时候,再把数据写入主存储,对应的地址根据tag中的值及所处的cache line行计算得到,所以结果是cache和主存储数据不一致。

-----------------------------------------END------------------------------------------

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值