/proc/cpuinfo 地址大小信息与内存页大小有什么关系?

rit*_*ter 5 linux memory procfs

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

address sizes   : 36 bits physical, 48 bits virtual
Run Code Online (Sandbox Code Playgroud)

确定的页面大小

#include <unistd.h>
int getpagesize(void);
Run Code Online (Sandbox Code Playgroud)

给出 4096 字节。

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

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

jpa*_*cek 2

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

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