如果虚拟内存有32位地址,那么有2 ^ 32个条目还是总条目大小为2 ^ 32个字节?或两者兼而有之?
我问的原因是因为我认为它只意味着2 ^ 32个人。
执行以下问题后,我不确定:
解决方案:2 ^ 48/2 ^ 32 = 2 ^ 16页。
但是,页数/页面大小!=页数。
总条目大小/页面大小=页数。
所以,我想知道32位地址是否意味着有2 ^ 32个条目,或者总条目是否等于2 ^ 32个字节或两者。
答案 0 :(得分:1)
你的问题:
如果虚拟内存有32位地址,那么有2 ^ 32个条目还是总条目大小为2 ^ 32个字节?或两者兼而有之?
页表条目不仅仅依赖于虚拟地址空间,页面大小和物理内存也需要计算条目。
我举了你的例子: -
假设一台机器有48位虚拟地址和32位物理地址。如果页面是4KiB,如果只有一个级别,页面表中有多少条目?
页面表中的条目数将为= 2 ^ 36。
页面条目用于获取物理内存的地址。在这里,我们假设正在发生单一级别的分页。因此,生成的页表将包含虚拟地址空间的所有页面的条目。
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.
页面大小表
没有。寻址32位物理内存所需的位数= 32。 因此物理内存中将有2 ^(32-12)= 2 ^ 20个页面帧。并且页表需要存储所有这些2 ^ 20页帧的地址。因此,每个页表条目将包含页面帧的32位地址。 因为内存是字节可寻址的。因此我们认为每个页表项是32位,即4个字节长。
Size of page table =
(total number of page table entries) *(size of a page table entry)
= (2^36 *4) = 256GB