L1 / 2缓存问题

时间:2009-05-19 15:51:28

标签: caching hardware computer-architecture

L1 / L2缓存行可以缓存主存储器数据字的多个副本吗?

4 个答案:

答案 0 :(得分:1)

主内存可能不止一次位于缓存中。显然这是多处理器机器的真实和常见现象。但即使在uni处理器机器上,它也可能发生。

考虑具有拆分L1指令/数据缓存的Pentium CPU。说明仅转到I-cache,数据只转发到D-cache。现在,如果操作系统允许自修改代码,则可以将相同的内存加载到I和D缓存中,一次作为数据,一次作为指令。现在,您在L1缓存中有两次这样的数据。因此,具有这种分离高速缓存架构的CPU必须采用高速缓存一致性协议来避免竞争条件/损坏。

答案 1 :(得分:0)

否 - 如果它已经在缓存中,MMU将使用它而不是创建另一个副本。

答案 2 :(得分:0)

每个缓存基本上都存储了整个内存的一些小子集。当CPU需要来自内存的单词时first goes to L1, then to L2 cache and so on, before the main memory is checked。 因此,特定的存储字可以同时存在于L2和L1中,但它不能在L1中存储两次,因为这不是必需的。

答案 3 :(得分:0)

是的,它可以。 L1副本已更新,但尚未刷新到L2。仅当L1和L2是非独占缓存时才会发生这种情况。这对于单处理器来说是显而易见的,但对于通常为每个核心拥有自己的L1缓存的多处理器来说更是如此。

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