首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Intel缓存地址

Intel缓存地址
EN

Stack Overflow用户
提问于 2021-12-15 22:43:03
回答 1查看 239关注 0票数 0

下面是我的L3 CPU上的英特尔Xeon Silver4210R缓存(共享)配置-

代码语言:javascript
复制
$ getconf -a | grep LEVEL3_CACHE
LEVEL3_CACHE_SIZE                  14417920
LEVEL3_CACHE_ASSOC                 11
LEVEL3_CACHE_LINESIZE              64

此配置意味着缓存中的集合数为-

[](https://chart.googleapis.com/chart?cht=tx&chl=%5C%23set%3D%5Cfrac%7BCache%5C%20size%7D%7B(%5C%23ways%29%20%5Ctimes%20(block%5C%20size%29%7D%3D%5Cfrac%7B14417920%7D%7B11%20%5Ctimes%2064%7D%20%3D%2020480)

现在我正试着理解缓存的寻址

在这里,缓存行(或块)大小为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缓存区分开来?

EN

回答 1

Stack Overflow用户

发布于 2021-12-15 23:05:14

我是不是遗漏了什么?

这个处理器有10个核--你的公式不代表核的#,所以如果你除以10,它就是2的偶数。

这里到底有多少位用于设置索引?

11位,我相信

L3$ 13.75 MiB 10x1.375 MiB 11-路集关联回写

在这里阅读更多信息:银/4210 r

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70371215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档