每条L1/L2高速缓存线能否高速缓存主存储器数据字的多个副本?
发布于 2009-05-19 16:07:20
主存可能不止一次在缓存中。显然,这是事实,也是多处理器机器的常见情况。但即使在单处理器机器上,这种情况也可能发生。
考虑一个Pentium CPU,它有一个分离的L1指令/数据缓存。指令只进入I-cache,数据只进入D-cache。现在,如果操作系统允许自修改代码,则可以将相同的内存加载到I- cache和D-cache中,一次作为数据,一次作为指令。现在,该数据在L1缓存中有两次。因此,具有这种分离高速缓存体系结构的CPU必须采用高速缓存一致性协议,以避免竞争条件/损坏。
发布于 2009-05-19 16:00:03
否-如果它已经在缓存中,MMU将使用它,而不是创建另一个副本。
发布于 2009-05-19 16:01:40
每个缓存基本上存储整个内存的一小部分。当CPU需要内存中的一个字时,它会执行first goes to L1, then to L2 cache and so on, before the main memory is checked。所以一个特定的内存字可以同时存储在L2和L1中,但它不能在L1中存储两次,因为这不是必需的。
https://stackoverflow.com/questions/883579
复制相似问题