使用相同的标签和偏移量位访问和更新2路关联缓存

杉原

我对如何在2路关联缓存中访问数据感到困惑。

例如,C = ABS

C = 32KB
A = 2
B = 32bits
S = 256

offset = lg(B) = 5
index = lg(S) = 8
tag = 32 - offset - index = 19

说我有以下地址

tag                    | index    | offset
1000 0000 0000 0000 000|0 0000 000|1 0000
1000 0000 0000 0000 000|0 0000 000|0 0000
1000 0000 0000 0000 000|0 0000 000|1 1010

我的缓存看起来像

index   valid dirty tag      data            valid dirty tag     data
0:      1     0     0x80...   some data1     1     0     0x80... some data2
1:         .                                     .
2:         .                                     .  
3:         .                                     .

当索引和标记位相同时,如何确定应从两个缓存阵列中的哪一个(数据1与数据2)中获取数据?

同样,当我需要使用相同的索引和标记位更新缓存时,如何确定应剔除两个数组中的哪些数据?

我认为这与偏移量位有关,但是我不太确定如何使用偏移量位,或者它们在缓存阵列中究竟代表或映射到什么位置。

彼得·科德斯

当索引和标记位相同时,如何确定应从两个缓存阵列中的哪一个(数据1与数据2)中获取数据?

您的缓存如何进入这种状态?具有相同索引和标签的访问将被命中,而不是分配第二个条目。

由于虚拟索引(或标记)导致同名或同义词问题,两次在缓存中使用相同的物理内存行(具有不同的索引或标签)可能会发生,但是这种情况在正确设计的缓存中是不可能的。


当我需要使用相同的索引和标记位更新缓存时,如何确定应删除两个数组中的哪些数据?

在这种情况下,您不驱逐;那是缓存命中。

索引选择一组标签。这两个标签(在您的情况下)与地址的标签位匹配。如果一个匹配,那就很成功。如果没有,那就太想念了。


因此,当您需要逐出现有行之一时,具有相同索引但具有不同标记的访问通常的更换政策是LRU实现此目的的一种方法是使集合中的位置重要。每次访问一条线时,其标签就会移到MRU位置。当必须从集合中逐出一条线时,就将LRU位置逐出。这将是最近最少访问的行。

通常,新添加的行位于MRU位置,但是自适应地添加到LRU位置可避免在遍历巨型阵列时驱逐有价值的数据。请参阅有关Intel IvyBridge的自适应L3替换策略的博客文章,以进行一些聪明的实验测试来研究硬件性能,并提供一些不错的解释。


我认为这与偏移位有关

不,偏移量位选择一行中的字节。命中/未命中/替换都无关紧要。高速缓存访​​问硬件使用偏移量和大小来选择找到右行后要读取或更新的字节范围。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

缓存计算块偏移量和索引

来自分类Dev

未定义的偏移量:1和2

来自分类Dev

R glm对象和使用偏移量的预测

来自分类Dev

在循环内使用偏移量和范围

来自分类Dev

处理十六进制数字时,如何使用位偏移量和长度来获取值?

来自分类Dev

Kafka-偏移量和logSize

来自分类Dev

内存地址和偏移量

来自分类Dev

BufferGeometry偏移量和索引

来自分类Dev

MySQL限制和偏移量错误

来自分类Dev

解释Kafka中的复制偏移量检查点和恢复点偏移量

来自分类Dev

kafka是否可以区分消耗的偏移量和提交的偏移量?

来自分类Dev

Bootstrap 3 - 不能使用偏移量在“行”中居中 2 个相同大小的“列”

来自分类Dev

使用偏移量访问嵌套结构

来自分类Dev

缓存 Mips 中的偏移量

来自分类Dev

PHP使用偏移量和长度替换多个字符串

来自分类Dev

如何使用角度传单指令和geojson更改传单弹出窗口的偏移量?

来自分类Dev

Moment.Js:使用UTC和时区偏移量抵消日期

来自分类Dev

通过使用jquery.visible.js和偏移量检测元素是否在视口内

来自分类Dev

使用Numpy fromfile和给定的偏移量读取二进制文件

来自分类Dev

您如何使用Jquery滚动事件和偏移量/位置,CSS或JavaScript获得此结果?

来自分类Dev

如何使用Web服务请求检索具有偏移量和限制的数据?

来自分类Dev

在PHP中使用限制和偏移量进行管理

来自分类Dev

在循环中使用偏移量进行复制和粘贴

来自分类Dev

PHP使用偏移量和长度来替换多个字符串

来自分类Dev

Java:使用长偏移量和长度参数调用InputStream.read

来自分类Dev

使用Jquery滚动事件和偏移量/位置,css或javascript,如何获得此结果?

来自分类Dev

在PHP中使用限制和偏移量进行管理

来自分类Dev

如何使用绝对位置和左偏移量水平居中文本 Div

来自分类Dev

RandomAccessFile 用于查找和写入或使用偏移量写入的意外行为

Related 相关文章

  1. 1

    缓存计算块偏移量和索引

  2. 2

    未定义的偏移量:1和2

  3. 3

    R glm对象和使用偏移量的预测

  4. 4

    在循环内使用偏移量和范围

  5. 5

    处理十六进制数字时,如何使用位偏移量和长度来获取值?

  6. 6

    Kafka-偏移量和logSize

  7. 7

    内存地址和偏移量

  8. 8

    BufferGeometry偏移量和索引

  9. 9

    MySQL限制和偏移量错误

  10. 10

    解释Kafka中的复制偏移量检查点和恢复点偏移量

  11. 11

    kafka是否可以区分消耗的偏移量和提交的偏移量?

  12. 12

    Bootstrap 3 - 不能使用偏移量在“行”中居中 2 个相同大小的“列”

  13. 13

    使用偏移量访问嵌套结构

  14. 14

    缓存 Mips 中的偏移量

  15. 15

    PHP使用偏移量和长度替换多个字符串

  16. 16

    如何使用角度传单指令和geojson更改传单弹出窗口的偏移量?

  17. 17

    Moment.Js:使用UTC和时区偏移量抵消日期

  18. 18

    通过使用jquery.visible.js和偏移量检测元素是否在视口内

  19. 19

    使用Numpy fromfile和给定的偏移量读取二进制文件

  20. 20

    您如何使用Jquery滚动事件和偏移量/位置,CSS或JavaScript获得此结果?

  21. 21

    如何使用Web服务请求检索具有偏移量和限制的数据?

  22. 22

    在PHP中使用限制和偏移量进行管理

  23. 23

    在循环中使用偏移量进行复制和粘贴

  24. 24

    PHP使用偏移量和长度来替换多个字符串

  25. 25

    Java:使用长偏移量和长度参数调用InputStream.read

  26. 26

    使用Jquery滚动事件和偏移量/位置,css或javascript,如何获得此结果?

  27. 27

    在PHP中使用限制和偏移量进行管理

  28. 28

    如何使用绝对位置和左偏移量水平居中文本 Div

  29. 29

    RandomAccessFile 用于查找和写入或使用偏移量写入的意外行为

热门标签

归档