如何使用cpuid获取TLB页面大小

时间:2012-05-22 09:34:47

标签: c++ assembly cpuid

对于英特尔,我使用:

mov, eax, 2h
cpuid

它给出了“描述符解码值” - 确定;

对于AMD,我使用:

mov, eax, 80000005h
cpuid

它给出了eax中4MB的关联性和条目(ebx中为4KB)。

这是:

  

EAX = FF30FF10 EBX = FF30FF20“   FF - 完全关联。数据,48d条目数据,FF - 完全关联。 instr,16d条目instr

所以我有4KB和4MB或者什么?

P.S。我是对的TLB页面和L1缓存 - 不同的东西?或者也许是L1 instr。缓存大小是我需要的吗?

1 个答案:

答案 0 :(得分:0)

这个entry on wikipedia可以帮助您消除对不同TLB大小的一些混淆。它位于“多TLB”标题下:

  

例如,英特尔的Nehalem微体系结构有一个四路组关联L1 DTLB,其中64个条目用于4 KiB页面,32个条目用于2/4 MiB页面,一个L1 ITLB具有128个条目用于4 KiB页面使用四向关联性2/4 MiB页面的14个完全关联条目(ITLB的两个部分在两个线程之间静态划分)1和4个KiB页面的统一512条目L2 TLB,[2]都是4路关联。 [3]