可能L1/L2緩存行每個緩存主存儲數據字的多個副本?L1/2緩存問題
Q
L1/2緩存問題
1
A
回答
1
主存儲器有可能不止一次進入緩存。很顯然,這對於多處理器機器來說是真實的和常見的情況。但即使在單處理器機器上,它也可能發生。
考慮具有拆分L1指令/數據緩存的Pentium CPU。指令只進入I-cache,僅對D-cache進行數據傳輸。現在,如果操作系統允許自我修改代碼,則可以將相同的內存作爲數據加載到I-和D-高速緩存中,一次作爲指令。現在你在L1緩存中有兩次這樣的數據。因此,具有這種分離高速緩存體系結構的CPU必須採用高速緩存一致性協議以避免競爭狀態/損壞。
0
否 - 如果它已經在緩存中,則MMU將使用該緩存而不是創建另一個副本。
0
每個緩存基本上都存儲了整個內存的一小部分。當CPU需要內存中的一個字時,它first goes to L1, then to L2 cache and so on, before the main memory is checked。 因此,一個特定的內存字可以同時在L2和L1中,但不能在L1中存儲兩次,因爲這不是必需的。
0
是的,它可以。 L1副本更新但未刷新到L2。只有當L1和L2是非排他性緩存時纔會發生這種情況。這對於單處理器來說是顯而易見的,但對於每個內核通常都有自己的L1緩存的多處理器來說更是如此。
這一切都取決於緩存體系結構 - 它是否保證任何類型的東西。
相關問題
- 1. 緩存問題
- 2. 緩存問題
- 3. 緩存問題
- 4. 緩存問題
- 5. UIPageViewController緩存問題
- 6. XSLT緩存問題
- 7. Javascript緩存問題
- 8. Rails緩存問題?
- 9. DNS緩存問題
- 10. css緩存問題
- 11. F3緩存問題
- 12. iPhone緩存問題
- 13. IIS /緩存問題?
- 14. phpThumb緩存問題
- 15. CSS緩存問題
- 16. phpbb3緩存問題
- 17. HInclude緩存問題
- 18. CodeIgniter緩存問題
- 19. Alamofire緩存問題
- 20. Umbraco緩存問題
- 21. django緩存問題
- 22. Weblogic緩存問題
- 23. PHP緩存問題
- 24. LINQ緩存問題
- 25. Codeigniter緩存問題
- 26. Linq緩存問題?
- 27. window.open緩存問題
- 28. 問題與緩存
- 29. Phantomjs緩存問題
- 30. ViewFlipper緩存問題
不一定正確。它完全取決於緩存架構。 – sybreon 2009-05-20 00:39:33