1. 程式人生 > >輕松學會Java高並發第二課-CPU多級緩存

輕松學會Java高並發第二課-CPU多級緩存

-c ext 數據 局限性 nag 一級緩存 RoCE 存儲 匹配

CPU多級緩存

為什麽需要CPU緩存

  • CPU的頻率越來越快,主存越來越跟不上CPU的變化,這樣伴隨的問題就是處理器的時鐘周期內,CPU需要常常等待主存,浪費資源。所以緩存的出現,是為了緩解CPU和內存之間的速度不匹配問題。

一級緩存

  • CPU核心與主存之間有一層高速緩存。如下圖(1)所示,數據的讀取與存儲都經過高速緩存。主存和緩存都連接在系統總線上(Bus)。
    技術分享圖片

多級緩存

  • CPU核心與主存之間有多級緩存。如下圖(2)所示
    技術分享圖片

緩存如何解決CPU和內存之間的速度問題(意義)

  • 時間局部性:如果某個數據被訪問,那麽在不久的將來它很可能被再次訪問
  • 空間局限性:如果某個數據被訪問,那麽與它相鄰的數據也可能很快被訪問

緩存一致性(MESI) 重點

  • 保證多個CPU cache 之間緩存共享數據的一致,如下圖(3)所示。

技術分享圖片

輕松學會Java高並發第二課-CPU多級緩存