gpt4 book ai didi

cpu-cache - 获取 2 个不同的 L1 缓存行大小

转载 作者:行者123 更新时间:2023-12-02 11:28:57 24 4
gpt4 key购买 nike

我在我的电脑上使用 Ubuntu 12.04 和 intel i5 450。我使用了两种方法来获取一级指令缓存的缓存行大小。但结果不同。

firo@snow:~/ws$ getconf LEVEL1_ICACHE_LINESIZE

32


firo@snow:~/ws$ cat /sys/devices/system/cpu/cpu0/cache/index1/coherency_line_size

64

有什么问题吗?太困惑了。

最佳答案

给定 Intel CPU 并假设标准 Linux/glibc 并且没有 cpuid 虚拟化...

getconf/sysconf() 报告的缓存值来自 glibc 的 i386/sysconf.c 。 sysfs中的来自intel_cacheinfo.c .

最明显的区别是 sysfs 仅从 cpuid 4 返回值,而 sysconf() 首先查看 cpuid 2 并且仅检查如果其中一个字节是 0xFF,则 cpuid 4。 sysconf.c 中的 0x09 条目之间存在差异:

    { 0x09,  4, 32, M(_SC_LEVEL1_ICACHE_SIZE),   32768 },

以及 Intel® 64 and IA-32 Architectures Software Developer’s Manual 的表 3-22 :

09H | Cache | 1st-level instruction cache: 32KBytes, 4-way set associative, 64 byte line size

所以它看起来像是 glibc 中的一个错误。

关于cpu-cache - 获取 2 个不同的 L1 缓存行大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11589043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com