查看單個文章
舊 2004-12-22, 05:16 PM   #1
i1537
註冊會員
榮譽勳章
UID - 11702
在線等級: 級別:24 | 在線時長:674小時 | 升級還需:51小時級別:24 | 在線時長:674小時 | 升級還需:51小時級別:24 | 在線時長:674小時 | 升級還需:51小時級別:24 | 在線時長:674小時 | 升級還需:51小時
註冊日期: 2002-12-14
VIP期限: 2010-04
住址: 神之領域
文章: 87
精華: 0
現金: 560 金幣
資產: 49450 金幣
預設 請問 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 架構下....

資料必須要一致性時 又要怎樣處理?

謝謝.
i1537 目前離線  
送花文章: 363, 收花文章: 6 篇, 收花: 7 次
回覆時引用此帖