gpt4 book ai didi

c - TLB、CPUID 和 Hugepages?

转载 作者:太空狗 更新时间:2023-10-29 12:22:28 25 4
gpt4 key购买 nike

如果我将 64MB 的 2MB 大页面挂载到/mnt/huge2mb,这些页面使用了哪些 TLB 条目?我在我的 C 程序中 mmap() 编辑了它们。

cpuid 的输出:

   cache and TLB information (2):
0x63: data TLB: 1G pages, 4-way, 4 entries
0x03: data TLB: 4K pages, 4-way, 64 entries
0x76: instruction TLB: 2M/4M pages, fully, 8 entries
0xff: cache data is in CPUID 4
0xb6: instruction TLB: 4K, 8-way, 128 entries
0xf0: 64 byte prefetching
0xc3: L2 TLB: 4K/2M pages, 6-way, 1536 entries

我相信那些挂载的 2MB 大页面属于数据,所以他们使用数据 TLB 条目。

但是,数据 TLB 条目适用于 1G 和 4K 页面。

那么,那些 2MB 大页面使用了哪些 TLB 条目? L2 TLB条目?如果是,什么是 L2 TLB?它既用于数据又用于指令吗?如果是,那么 4K 数据页存在重叠——数据 TLB 和 L2 TLB。那么 4K 页面额外的 64 个条目的目的是什么?

谢谢!

最佳答案

首先,我不一定会假设来自 CPUID 的数据本身是正确的(多年来存在各种勘误表),如果来自 CPUID 的数据是正确的,我也不一定会假设 Linux 中的代码正确解释它(多年来,确定缓存特征已变得一团糟)。

不知道 CPU 是什么(也无法检查 CPUID 和 Linux 是否正确报告了信息);根据显示的信息,我很想怀疑 0xc3: L2 TLB: 4K/2M pages, 6-way, 1536 entries 用于指令和数据,并将用于您的 2 MiB页面,但是当使用这 2 MiB 页面时,CPU 也会将 2 MiB TLB 条目分成几 block 并使用 0x03: data TLB: 4K pages, 4-way, 64 entries for (4 KiB pieces of) 2 MiB 页面。

关于c - TLB、CPUID 和 Hugepages?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56430157/

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