Caching 直接映射缓存,命中还是未命中?

Caching 直接映射缓存,命中还是未命中?,caching,cpu-architecture,Caching,Cpu Architecture,我对运动有问题: 缓存DM。缓存大小-64kB,单行大小-64B。打开后,procesor已读取地址: 0x00000 0x0003C 0x0013C 0xF0038 0x00015 0x00130 我不得不说,什么时候会被错过,什么时候会被击中。我发现了一些类似的练习,但我不知道如何处理十六进制中的地址。我知道:缓存地址=内存地址**mod**Cache Size,但我不知道如何解决这个问题。 先谢谢你 回答此类问题的一种方法是找到给定缓存设计的标记、索引和偏移位。然后将地址访问模式映射到

我对运动有问题:

缓存DM。缓存大小-64kB,单行大小-64B。打开后,procesor已读取地址:

  • 0x00000
  • 0x0003C
  • 0x0013C
  • 0xF0038
  • 0x00015
  • 0x00130
我不得不说,什么时候会被错过,什么时候会被击中。我发现了一些类似的练习,但我不知道如何处理十六进制中的地址。我知道:
缓存地址=内存地址**mod**Cache Size
,但我不知道如何解决这个问题。
先谢谢你

回答此类问题的一种方法是找到给定缓存设计的
标记
索引
偏移
位。然后将地址访问模式映射到相应的标记、索引中,以获取命中/未命中信息

作为一个例子考虑访问地址<代码> 0xf00 38 < /代码>:

Cache Size  = 64kB
Line Size   = 64B
Offset bits = log2(64) = 6
Index bits  = log2(6kB/64B) = 10
Considering 20-bit address line
Tag bits    = 20 - 10 - 6 = 4
Address accessed  - 0xF0038
Converting into bits - 
1111_0000_0000_0011_1000
Tag - 1111
Index - 0000_0000_00
Offset - 11_1000
现在,您知道访问是索引
0x0
,标记为
0xF
。根据之前的访问情况,可能是未命中或命中。同样,您可以对所有其他地址执行此操作