可能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