4KB页大小的48位系统中一个虚拟页号是多长

How long is a virtual page number in a 48-bits system with 4KB page size

在页面大小为 4KB 的 32 位系统中,从其地址 VA 得到的页码 PN 为 20 位长,PN = VA / 4KB。
但是如果我们有一个48位的系统,页码还是20位长吗?

具体来说,我有一个 0x5641ba0c7000 形式的虚拟地址,我想知道虚拟页码是 5641ba0c7(= 5641ba0c7000 / 4KB)还是 5641b(20 位)

通常情况下,虚拟页码是除了给出页内偏移量的地址低位之外的所有内容。对于 4 KB(= 2**12 字节)的页面,偏移量是低 12 位,因此虚拟页号是剩余的 48-12=36 位。在您的示例中是 0x5641ba0c7。 (这个数字可能会被进一步分解为多个级别的页表的索引。)

20 位没有什么普遍性;只是如果你有 32 位虚拟地址,那么 32-12=20,所以在这种情况下,高 20 位给出页码。