第 table 页条目大小 - 为什么是 2 的幂?

Page table entry size - why a power of 2?

我解决了一些问题,页面 table 条目大小只需要 26 位 - 物理地址 22 位,脏位等 4 位。然而,它被四舍五入为 32 - 因为 26 不是 2 的幂。一定是我遗漏的简单的东西,但为什么我们必须这样做?谢谢!

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

我认为您需要意识到页面 table 条目需要像访问任何其他数据一样访问。通常,这意味着它需要适合一个字节或一个字。

现在字节只有8位,空间不够。对于许多机器(我怀疑你的机器也是),字是 32 位的。

因此页面 table 条目分配了 space.

的 32 位