能L1 / L2高速缓存行的主存储器数据字的每个高速缓存多个副本?

有帮助吗?

解决方案

这是可能的主存储器是在高速缓存中超过一次。显然,这是真的和多处理器机器上屡见不鲜。但是,即使在单处理器的机器,它可以发生。

考虑一个具有分裂L1指令/数据高速缓存中的奔腾处理器。说明只能到I-cache中,仅把数据d缓存。现在,如果操作系统允许自行修改代码,相同的内存可以作为指令装入两个I-和d-高速缓存,一次数据,一旦。现在,你有两次数据L1缓存。因此,使用这样的分裂缓存体系结构的CPU必须采用高速缓存一致性协议,以避免竞态条件/腐败。

其他提示

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

每个高速缓存基本上存储了整个存储器的一些小的子集。当CPU从存储器需要一个字它第一前进到L1,然后L2高速缓存等,前主存储器检查。 所以一个特定的存储器字可以是L2,并且在L1同时,但它不能储存两次在L1,因为这是没有必要的。

是它可以。 L1副本更新,但还没有被刷新到L2。出现这种情况只有在L1和L2都是非专用高速缓存。这是显而易见的用于单处理器,但它是更是如此用于多处理器,其通常具有自己的L1高速缓存为每个芯。

这一切都依赖于高速缓存架构 - 无论它保证任何诸如此类的事情

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top