2009-05-19 61 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缓存的多处理器来说更是如此。

这一切都取决于缓存体系结构 - 它是否保证任何类型的东西。