页表条目大小 - 为什么是2的幂次?

问题描述:

我解决了一些问题,其中页表条目大小只需要26位 - 对于物理地址是22位,对于脏位等则只需要4位。然而,它被取整为32--因为26不是2的幂。一定是简单的我错过了,但为什么我们必须这样做呢?谢谢!页表条目大小 - 为什么是2的幂次?

我想在这里,你需要认识到,页表条目需要像任何其他数据片段一样访问。通常,这意味着它需要适合一个字节或一个字。

现在字节只保存8位,所以没有足够的空间。对于很多机器(我怀疑你的机器),字数是32位。

因此页表项分配了32位空间。

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