缓存体系
在计算机的体系结构中,存储速度是分了好几层:
- CPU缓存,又分成了L1/L2/L3等多层缓存,我们暂时看成同一层。访问速度最快
- 内存,访问速度次之,大概是CPU缓存的几十分之一
- 硬盘,访问速度最慢,是内存访问速度的几十分之一
所以,在计算机体系结构中,把下一层的数据提前加载到更快一层的存储中,以便于CPU可以更快的读取和计算就是一个非常重要的议题,越高的命中率,那么速度就最快。之前讲到的一些分页,分段的机制,是内存与硬盘之间的缓存。
CPU-内存:缓存行
而缓存行(Cache Line)是计算机体系结构中CPU 缓存与内存之间数据传输的最小单位,是理解 CPU 性能优化的核心概念之一。它本质上是一小块连续的内存(通常为 64 字节,不同架构可能在 32-128 字节之间),CPU 通过缓存行高效地与内存交互,解决 “CPU 计算速度远快于内存访问速度” 的硬件瓶颈。
缓存行的同步机制
缓存行同步机制是多核心 CPU 中保证缓存一致性的核心技术,其目的是解决 “多个 CPU 核心的缓存中存在同一内存数据的副本时,如何确保数据一致性” 的问题。现代 CPU 通过缓存一致性协议(Cache Coherence Protocol)实现缓存行同步,最常见的是MESI 协议(Modified-Exclusive-Shared-Invalid)。
多核心 CPU 中,每个核心有独立的 L1/L2 缓存(甚至私有 L3),当不同核心访问同一块内存时,会在各自缓存中保存该内存