下面是我的L3 CPU上的英特尔Xeon Silver4210R缓存(共享)配置-
$ getconf -a | grep LEVEL3_CACHE
LEVEL3_CACHE_SIZE 14417920
LEVEL3_CACHE_ASSOC 11
LEVEL3_CACHE_LINESIZE 64此配置意味着缓存中的集合数为-
现在我正试着理解缓存的寻址。
在这里,缓存行(或块)大小为64字节,英特尔使用字节可寻址系统。因此,最起码
[](https://chart.googleapis.com/chart?cht=tx&chl=6%5C(%3D%5Clog_%7B2%7D%5Bblock%5C%20size%5D%5C%29)
块偏移应该使用重要的缓存地址位。
通过类似的计算,用于集索引的地址位数为
[](https://chart.googleapis.com/chart?cht=tx&chl=14.32%20%5C%20%5C(%3Dlog_%7B2%7D%5B%5C%23set%5D%5C%29)
但这个分数值让我困惑。
我是不是遗漏了什么?这里到底有多少位用于设置索引?
编辑:下面是埃里克在他的答复中提到的,每个处理器核心共享1.375MiB的L3缓存。但是,这样的配置在我的脑海中引发了另一个问题。假设我运行的是core-0和core-1中的两个进程。如果两个进程都使用虚拟地址0x0,那么这些虚拟地址是否会映射到同一核心的L3缓存(假设VIPT缓存)?换句话说,在共享L3缓存时,虚拟地址的哪一部分将核心-0 L3缓存与核心-1 L3缓存区分开来?
发布于 2021-12-15 23:05:14
我是不是遗漏了什么?
这个处理器有10个核--你的公式不代表核的#,所以如果你除以10,它就是2的偶数。
这里到底有多少位用于设置索引?
11位,我相信
L3$ 13.75 MiB 10x1.375 MiB 11-路集关联回写
在这里阅读更多信息:银/4210 r
https://stackoverflow.com/questions/70371215
复制相似问题