CPU多级缓存

为什么需要CPU缓存

  • CPU的频率越来越快,主存越来越跟不上CPU的变化,这样伴随的问题就是处理器的时钟周期内,CPU需要常常等待主存,浪费资源。所以缓存的出现,是为了缓解CPU和内存之间的速度不匹配问题。

一级缓存

  • CPU核心与主存之间有一层高速缓存。如下图(1)所示,数据的读取与存储都经过高速缓存。主存和缓存都连接在系统总线上(Bus)。
    轻松学会Java高并发第二课-CPU多级缓存_第1张图片

多级缓存

  • CPU核心与主存之间有多级缓存。如下图(2)所示
    轻松学会Java高并发第二课-CPU多级缓存_第2张图片

缓存如何解决CPU和内存之间的速度问题(意义)

  • 时间局部性:如果某个数据被访问,那么在不久的将来它很可能被再次访问
  • 空间局限性:如果某个数据被访问,那么与它相邻的数据也可能很快被访问

缓存一致性(MESI) 重点

  • 保证多个CPU cache 之间缓存共享数据的一致,如下图(3)所示。

轻松学会Java高并发第二课-CPU多级缓存_第3张图片