請問 CPU L1 L2 L3 Cache 資料搬移順序....
請問 CPU L1 L2 L3 Cache 資料搬移順序....
以傳統的 兩級CACHE(L1+L2) 為例
當 CPU 需要資料時 會先從 L1 CACHE 抓取
當資料 MISS 時 才會從 L2 CACHE 抓取資料
之後 將資料備份放在 L1 中 方便將來使用
而假如 L1 L2 同時 MISS 時....
才會從 主記憶體(RAM) 抓取資料...
但此時 資料會直接放在 L1 中?
還是 先放在 L2 中 待下次使用時 再搬移到 L1 ?
那 三級CACHE (L1+L2+L3)
資料 MISS 時 又是怎樣處理?
從RAM抓來的資料 是 直接放在 L1 還是 L2 or L3 ?
那當 L1 CACHE 滿時 而所需的資料又 MISS
要清空位置擺放新資料 那被捨棄的資料 寫回 L2
而 L2 CACHE 又滿時 而所需的資料又 MISS
又要清空位置擺放新資料 那被捨棄的資料 才寫回 RAM
那 三級CACHE 也是這樣 一層一層 回存嗎?
假如是 Multi Processor 架構下....
資料必須要一致性時 又要怎樣處理?
謝謝.
|