2009-05-19 102 views

回答

1

主存儲器有可能不止一次進入緩存。很顯然,這對於多處理器機器來說是真實的和常見的情況。但即使在單處理器機器上,它也可能發生。

考慮具有拆分L1指令/數據緩存的Pentium CPU。指令只進入I-cache,僅對D-cache進行數據傳輸。現在,如果操作系統允許自我修改代碼,則可以將相同的內存作爲數據加載到I-和D-高速緩存中,一次作爲指令。現在你在L1緩存中有兩次這樣的數據。因此,具有這種分離高速緩存體系結構的CPU必須採用高速緩存一致性協議以避免競爭狀態/損壞。

0

否 - 如果它已經在緩存中,則MMU將使用該緩存而不是創建另一個副本。

+0

不一定正確。它完全取決於緩存架構。 – sybreon 2009-05-20 00:39:33

0

是的,它可以。 L1副本更新但未刷新到L2。只有當L1和L2是非排他性緩存時纔會發生這種情況。這對於單處理器來說是顯而易見的,但對於每個內核通常都有自己的L1緩存的多處理器來說更是如此。

這一切都取決於緩存體系結構 - 它是否保證任何類型的東西。