2

我目前正在执行一项任务,我的初始任务是以编程方式查找 TLB 大小。我的直觉是使用 mmap 映射一个大文件,并读取每 4096 个字节。在 100 次这样的读取之后,我应该访问了 100 个页面(每个 4k),其中 64 个页面应该在 TLB 中有引用,而其他应该导致 TLB 未命中。

一旦我阅读了这 100 页,我再次阅读了这些相同的页面,现在在 TLB 中有引用的最后 64 页的访问时间应该少于前 36 页,但结果不支持我的直觉。所有这些页面的访问时间大致相同。我什至尝试了 1000 个页面,但是即使这 1000 个页面在第二次访问时也有相似的访问时间,比第一次访问时间要短得多。

我错过了什么?我的直觉是对的吗?有什么建议,我该如何解决这个寻找 TLB 大小的问题?

我在具有 TLB 的机器上使用 Ubuntu:4K 页面,4 路,64 个条目。

谢谢和干杯,

4

0 回答 0