缓存交互步骤和读取周期

时间:2017-04-04 18:41:10

标签: caching assembly mips

我正在努力完全掌握缓存的工作原理。 我们假设我有一个L1缓存和二级缓存。

  1. CPU(主存储器)为L1控制器提供存储器地址。
  2. L1缓存控制器确定缓存集,请求的缓存标记和块偏移
  3. L1缓存电路检查所请求的标签是否已设置
  4. 无法找到L1缓存标记匹配。
  5. #2是在这里发生还是在L1发送L2内存地址之后?

    如果L1占用x个周期,则读取时间为2秒,L2占用y个周期,主存储器占用z个周期。基本上,如果上述步骤发生,然后L2找到缓存标记匹配并将其发送回发送给main的L1,它需要多少个周期?当L1将其返回到CPU时,是否计入读取周期?

    提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

L1可能在处理器中,但过程仍然相同。处理器执行读操作,地址和读/控制信号输出。 L1缓存从地址查找标签并确定命中/未命中。如果它是命中它返回信息,如果它没有,则L1需要在其地址总线上出去,调整地址以使其与高速缓存行大小和地址对齐对齐。 L2在高级别上执行相同的操作,地址转换为标记变为命中/未命中,如果未命中,则将对齐/大小的高速缓存行提取到其外部地址总线上,这将重复直到您点击回答的东西(DRAM,外围设备等)。当L2响应时,它将线路发送回L1,L1按照设计/设置的规则保存线路,然后返回处理器所需数据/长度。对于那个时刻,根据设计和设置,L1和L2包含相同的数据,理想情况下L1包含L2中的所有数据,L2包含所有L1数据加上一些数据。授予不可缓存的请求应该通过,因此您可能会遇到L2命中,导致L1不存储数据。同样基于该设计,不可缓存的请求可以以原始处理器大小/形状传递到L1​​和/或L2的另一侧,而不是与高速缓存线对齐和调整大小。