【问题标题】:Cache Hit or Miss?缓存命中还是未命中?
【发布时间】:2014-02-24 04:25:12
【问题描述】:

任何人都可以解决这些指令在缓存中的命中或丢失位置吗?

在 Nios-II 中组装 (http://www.altera.com/literature/hb/nios2/n2cpu_nii5v1.pdf)

大小:128 字节。 长度:16 字节。 双向设置关联。

1 movia r8, 0x357B40
2 ldw r10, 0 (r8 ) # 0x357B40
3 ldw r11, 16 (r8 ) # 0x357B50
4. ldw r12, 40 (r8 ) # 0x357B68
5. stw r13, 132 (r8) # 0x357BC4
6. ldw r14, 8 (r8) # 0x357B48
7. stw r15, 135(r8) # 0x357BC7
8. ldw r16, 64 (r8) # 0x357B80

【问题讨论】:

    标签: caching assembly computer-architecture


    【解决方案1】:

    您问题的唯一正确答案是“不,没有人可以确定这些指令中的哪一个会导致缓存命中或缓存未命中”。

    这有两个原因。第一的;在这段代码执行之前,我们中的任何人都不可能确定缓存中的内容。第二;我们中的任何人都无法确定是否/何时会发生任何 IRQ,或者排除 IRQ 执行将数据推出缓存或将某些内容提取到缓存中的可能性。

    但是;如果我们假设根本没有 IRQ 并且还假设缓存事先是空的;那么您的问题的答案将是“是的,有人可以确定这些指令中的哪一个会导致缓存命中或缓存未命中”。

    【讨论】:

    • 注意:我可能假设你是在要求别人为你做作业......
    • 你是对的。不过,答案非常详尽。一定值得你花时间! ;)
    【解决方案2】:

    是的,假设没有其他任何事情发生(没有 ISR 等),您可以确定哪些指令将导致缓存未命中以及哪些缓存命中逐条指令(其中一些可能需要像那里这样的假设这段代码启动时缓存中什么都没有,其他没有)。

    不会为你做作业。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-21
      • 2012-05-13
      • 2021-01-12
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 2021-05-30
      相关资源
      最近更新 更多