gpt4 book ai didi

c - 以编程方式查找缓存级别的数量

转载 作者:太空宇宙 更新时间:2023-11-04 04:50:05 25 4
gpt4 key购买 nike

我是 C 编程的新手。我有一个任务要查找 cpu 中数据缓存级别的数量以及每个级别的命中时间。我正在查看 C Program to determine Levels & Size of Cache但发现很难解释结果。如何显示缓存级别数?

任何指点都会有帮助

最佳答案

假设您没有办法作弊(比如从操作系统或某些 CPU 标识寄存器获取信息的某种方式):

基本思想是(按设计),您的 L1 缓存比 L2 缓存快,而 L2 缓存比 L3 缓存快...在任何正常设计中,您的 L1 缓存也小于 L2 缓存,后者更小比你的 L3 缓存...

因此,您想要分配一个较大的内存块,然后按顺序访问(读取 写入)[1],直到您注意到执行 X 次访问所花费的时间急剧增加。然后继续,直到你再次看到同样的东西。您需要分配一个比您希望发现的最大缓存更大的内存块。

这需要访问一些低开销访问时间戳计数器以进行实际测量(如引用答案中所指出的)。

[1] 或取决于您是否想在顺序进行的 N 字节 block 中随机地欺骗任何可能会扭曲结果的巧妙预取。

关于c - 以编程方式查找缓存级别的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16404563/

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