L1 / 2缓存问题
-
22-08-2019 - |
题
能L1 / L2高速缓存行的主存储器数据字的每个高速缓存多个副本?
解决方案
这是可能的主存储器是在高速缓存中超过一次。显然,这是真的和多处理器机器上屡见不鲜。但是,即使在单处理器的机器,它可以发生。
考虑一个具有分裂L1指令/数据高速缓存中的奔腾处理器。说明只能到I-cache中,仅把数据d缓存。现在,如果操作系统允许自行修改代码,相同的内存可以作为指令装入两个I-和d-高速缓存,一次数据,一旦。现在,你有两次数据L1缓存。因此,使用这样的分裂缓存体系结构的CPU必须采用高速缓存一致性协议,以避免竞态条件/腐败。
其他提示
没有 - 如果它已经在缓存中的MMU将使用而不是创建另一个副本
。每个高速缓存基本上存储了整个存储器的一些小的子集。当CPU从存储器需要一个字它第一前进到L1,然后L2高速缓存等,前主存储器检查。 所以一个特定的存储器字可以是L2,并且在L1同时,但它不能储存两次在L1,因为这是没有必要的。
是它可以。 L1副本更新,但还没有被刷新到L2。出现这种情况只有在L1和L2都是非专用高速缓存。这是显而易见的用于单处理器,但它是更是如此用于多处理器,其通常具有自己的L1高速缓存为每个芯。
这一切都依赖于高速缓存架构 - 无论它保证任何诸如此类的事情
。不隶属于 StackOverflow