1

当我查看 lmbench 生成的内存延迟曲线时(例如,https: //www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W51a7ffcf4dfd_4b40_9d82_446ebc23c550/page/Untangling%20memory%20access %20measurements%20-%20memory%20latency),我想知道数组大小如何影响其确切的分配位置。

我目前的猜测是在缓存中分配一个 100KB 的数组,而在主存中分配一个 80MB 的数组。如果这不是真的,即大小为 100KB 的数组也在主存中被初始化,它的延迟肯定会等于主存延迟,那么曲线上应该没有延迟上升。

我只是想确定我的猜测是否正确,或者我对内存延迟的理解是否有问题。

4

1 回答 1

0

两个数组都将分配在“主内存”中——毕竟它们必须有真实的地址。不同之处仅在于访问 - 因为您不太可能拥有 80 MB 的缓存,所以迭代较大的数组会导致一堆缓存未命中,而较小的数组永远不会发生这种情况。

于 2013-09-19T23:55:25.363 回答