CPU多级缓存

在多线程并发场景下,普通的累加很可能错的

CPU多级缓存

CPU多级缓存

  1. Main Memory : 主存
  2. Cache : 高速缓存,数据的读取存储都经过此告诉缓存
  3. CPU Core : CPU核心
  4. Bus : 系统总线

CPU Core和Cache通过快速通道连接,Main menory和Cache都挂载到Bus上通信,Bus还用于其它组件的通信,在Cache出现后,系统变得越来越复杂,Cache和Main memory的速度差异越来越大,直到加入另一级Cache,新加入的Cache比第一级Cache要大,但是速度更慢,由于加大一级Cache从经济上不划算,所以出现了二级Cache,三级Cache.

为什么要使用CPU CACHE

CPU的频率太快了,快到主存跟不上,在CPU时钟周期内,CPU需要等待主存,浪费资源,这样CPU会花很长时间等待数据或把数据写入主存。所以Cache出现的意义是匹配Main menory(主存)和CPU速度不匹配的问题。

CPU > CACHE > Main Memory

CPU CACHE的意义

缓存的容量要远远小于Main Memory(主存),因此出现缓存不命中的情况在所难免。

CACHE意义

1.时间局部性:如果一个数据被访问,那么在不久的将来很可能再次被访问。
2.空间局部性:如果一个数据被访问,那么它相邻的数据很可能被再次访问。

缓存的工作原理:当CPU读取一个数据时,先从Cache(缓存)中查找,如果查到了,就直接送给CPU处理,反之就会去速度慢的Main Memory(主存)去读取,并把该数据写入到Cache(缓存),下次CPU再次读取该数据时,直接去Cache取。

Cache(缓存)的命中率很高(90%),也就是说CPU下一次读取数据90%都在缓存,只有10%的数据需要去Main Memory(主存)中读取。

CPU多级缓存