we choose to go to |

上山砍大树

园龄:5年3个月粉丝:13关注:3

用地址中位作为缓存行索引的原因

用地址中部的位作为缓存行的索引原因(对比高位作为索引的优劣)

  • 用内存地址的高位作为缓存行的索引,会导致连续的数据存储在同一个缓存行中。因此,每次新地址被加载时,都会替换掉之前的地址,导致频繁的缓存替换和冲突。
  • 即使访问了数组的几个连续元素,缓存只使用了一个行,其它剩余行未被使用,导致缓存利用率非常低。

优势:

  1. 均匀分布
  • 地址中部的位更频繁地变化,使得访问更均匀地分布在缓存的所有行中,避免特定行的过度使用和其他行的未使用。
  1. 减少冲突
  • 由于访问模式的局部性,连续或邻近的内存地址会映射到不同的缓存行,减少冲突替换,提高缓存命中率。
  1. 更高的缓存命中率
  • 当程序访问连续内存时,中位索引将这些访问分散到多个缓存行,减少不必要的替换,保持更多有用的数据在缓存中。

本文作者:上山砍大树

本文链接:https://www.cnblogs.com/shangshankandashu/p/18306639

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   上山砍大树  阅读(35)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起