计算机组成原理(四)-CPU的高速缓存

本文介绍了CPU高速缓存的作用和原理,包括L1、L2、L3缓存的层次结构。通过局部性原理解释了缓存存在的必要性,讨论了直接映射、全相连映射和组相联映射三种映射方式,以及随机、FIFO、LFU和LRU四种替换策略。此外,还提到了volatile关键字在多线程中的内存可见性作用,以及缓存一致性协议MESI。
摘要由CSDN通过智能技术生成

当我们对各组件有了认识之后,那么我们在认识了CPU直接去访问内存的时候,需要申请总线控制权,而且一个8G的内存我们需要访问的地址也许就高达2的30次方,一次寻址访问拿到数据可能就要近百ns,而在CPU主频普遍高于3GHz的今天,内存无疑成为了拖累CPU的主要部件,而速率较快的SRAM又造价昂贵,所以早在一开始,内存速率开始拖累CPU的时候,就引入了高速缓存的机制。

什么是高速缓存?

我们在购买电脑时,通常查看参数时除了注意CPU的主频及核心数量,也会注意到有个缓存数量和缓存大小,一般分为L1,L2,L3缓存,以下图为例,分别为i7-10700F(左)和i5-10400F,两者价格相差了将近一倍,除了CPU核心数量跟多以外,还有智能高速缓存大小带来的价格差异,智能不智能咱不知道,但是很快很贵就对了。下图中的16MB和12MB就分别代表L3级缓存的大小,而通常大小L1<L2<L3的。

缓存SRAM造价昂贵,所以通常不会太大,但是却带来了巨大的提升,为了弥补两者之间的性能差异,我们能真实地把 CPU 的性能提升用起来,而不是让它在那儿空转,我们在现代 CPU 中引入了高速缓存。

内存中的指令、数据,会被加载到 L1-L3 Cache 中,而不是直接由 CPU 访问内存去拿。在 95% 的情况下,CPU 都只需要访问 L1-L3 Cache,从里面读取指令和数据,而无需访问内存。

缓存的理论支持:局部性原理

什么是局部性原理,做过生产开发或者用过Redis的应该知道,Redis就是主要拿来做缓存使用的,我们会缓存热点数据,下次再请求这些数据就不会去访问数据库了而是直接从缓存中获取,直接返回,这就是局部性原理中的时间局部性。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值