页表项大小 - 为什么2的幂?

时间:2017-02-14 19:33:45

标签: cpu-architecture page-tables

我解决了一些问题,其中页表项大小只需要26位 - 物理地址为22位,脏位等为4位。然而它被四舍五入到32 - 因为26不是2的幂。必须是简单的我失踪了,但为什么我们必须这样做?谢谢!

2 个答案:

答案 0 :(得分:1)

我认为你需要意识到页表条目需要像任何其他数据一样被访问。通常,这意味着它需要适合字节或单词。

现在字节只保存8位,因此空间不足。对于许多机器(我怀疑,你的机器也是如此),单词是32位。

因此,页表条目被分配了32位空间。

答案 1 :(得分:0)

页表条目中的条目数和大小是两件事。显然,大小等于单个条目大小的条目数。页表条目用于告诉您哪个虚拟页面映射到哪个物理页面。这意味着,页表条目中需要的条目数是,您拥有的虚拟页面数。可以通过将总可寻址空间除以页面大小来计算。 (例如,32位地址和4k页面大小给我们2个功率20个条目),条目的虚拟部分将是20位。物理部件条目的大小由可用的物理内存确定。通常页面大小保持不变。通过这种方式,您可以计算单个条目所需的位数。然后,您可以将其乘以条目数,并获得总大小。