Linux /proc/cpuinfo地址大小信息与内存页大小的关系如何?

Linux /proc/cpuinfo地址大小信息与内存页大小的关系如何?,linux,memory,procfs,Linux,Memory,Procfs,标记的cpu上的cat/proc/cpuinfo-lm给出 address sizes : 36 bits physical, 48 bits virtual 页面大小由 #include <unistd.h> int getpagesize(void); #包括 int getpagesize(void); 给出4096字节 使用后一种信息,我会认为系统使用地址的最低有效12位作为偏移量,其余用于通过TLB和页表将虚拟地址转换为物理地址 cpuinfo中的信息与页面大小有

标记的cpu上的cat/proc/cpuinfo-lm给出

address sizes   : 36 bits physical, 48 bits virtual
页面大小由

#include <unistd.h>
int getpagesize(void);
#包括
int getpagesize(void);
给出4096字节

使用后一种信息,我会认为系统使用地址的最低有效12位作为偏移量,其余用于通过TLB和页表将虚拟地址转换为物理地址

cpuinfo中的信息与页面大小有何关系

cpuinfo中的信息与页面大小有何关系

没有。x86_64上的页面大小可以是4k、2M(甚至1G),而不考虑(物理或虚拟)“地址大小”

的Wikipedia条目包含有关虚拟地址空间如何工作的一些信息


映射不是按照您描述的方式完成的,而是使用一个四级页面表。LWN.net上的这篇文章:简要介绍了它是如何工作的以及为什么需要它。(本文更多地讨论了三级映射,但第四级只是该方案的扩展)。

cpuinfo显示处理器类型和功能。 系统上当前使用的系统内存页大小不显示在此处

现代CPU支持不同的页面大小,操作系统在引导时设置这些设置

因此,为了回答您的问题:cpuinfo中的信息与当前页面大小没有直接关系。使用处理器类型可以知道支持哪些页面大小。例如,ia32 PAE扩展允许2MB页面(以及4k页面)

cpuinfo中的信息与页面大小有何关系


这是无关的。物理地址大小基本上为您提供了CPU拥有的地址行数(36)。虚拟地址大小给出了虚拟地址空间的大小,即单个程序可以寻址的内存量(48位,这意味着它可以寻址的内存量大于物理内存量;例如,可以在虚拟地址空间中进行乘法)。页面大小为2^12,这意味着,正如您所指出的,其余的虚拟地址位(36,不是物理地址空间中的36)由TLB和分页机制处理。

您在哪个操作系统上运行
cpuinfo
?我无法在Fedora28、29、32、Windows10、Ubuntu18.04、20.04上访问此命令。您是否指的是
lscpu