地址的大小是否与条目数、总条目大小或两者都有关系?

Does the size of an address have a relationship with the number of entries, size of total entries or both?

如果虚拟内存有一个 32 位地址,是否有 2^32 个条目或总条目的大小是否为 2^32 字节?还是两者都有?

我问的原因是因为我认为它只意味着 2^32 个整数。

做了下面的问题后我不确定:

  1. 假设一台机器有48位的虚拟地址和32位的物理addresses.If页面是4KiB,如果它只有一层,那么页面中有多少条目table?

解决方案:2^48/2^32 = 2^16 页。

但是,页数 entries/size != 页数。

总页数 entries/size = 页数。

所以,我想知道 32 位地址是否意味着有 2^32 个条目,或者条目总数等于 2^32 字节还是两者兼有。

济南,我想你对linux内存相关的东西感到困惑。

你的问题:

如果虚拟内存有一个 32 位地址,是否有 2^32 个条目或总条目的大小是否为 2^32 字节?或者两者兼而有之?

页table项不仅取决于虚拟地址space,页大小和物理内存也需要计算项。

我以你为例:-

假设一台机器有48位的虚拟地址和32位的物理addresses.If页面是4KiB,如果它只有一个级别table页面中有多少条目?

页面 table 中的条目数将为 = 2^36。

页面条目用于获取物理内存的地址。这里我们假设正在发生单层寻呼。因此,生成的页面 table 将包含虚拟地址 space.

所有页面的条目
Number of entries in page table = 
                  (virtual address space size)/(page size)  

Virtual address = 48 Bit
Page size is = 12 bit ((2^12) is equal to 4KB).

Using above formula we can say that there will be 2^(48-12) = 2^36 entries in page table.

页面大小Table

没有。寻址 32 位物理内存所需的位数 = 32。 所以物理内存中会有2^(32-12) = 2^20个页框。而pagetable需要存放这2^20个所有页框的地址。因此,每个页面 table 条目将包含页面框架的 32 位地址。 由于内存是字节可寻址的。所以我们认为每个页面 table 条目都是 32 位,即 4 个字节长。

Size of page table = 
  (total number of page table entries) *(size of a page table entry) 
   = (2^36 *4) = 256GB