緩存體系
在計算機的體系結構中,存儲速度是分了好幾層:
- 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),當不同核心訪問同一塊內存時,會在各自緩存中保存該內存