2012-01-22 109 views
1

在32位系统中,逻辑地址被分为| 10 | 10 | 12 |,页面目录偏移量,页面偏移量和页面偏移量。由于在x86系统中的页面是4KBytes,并且为了表示4K条目,所以需要log2(4K)= 12位,因此需要12位。因此剩余位数=(32-12)= 20。32位系统逻辑地址

假设我的理解是正确的,我的问题是10和10从哪里来的? 为什么不是8和12还是别的?

+0

并非所有的32位处理器都使用10-10-12,所以答案是“没有理由必须是10-10-12”。 –

+0

是的,如果页面大小不同,那么划分也是如此。但是在上面的例子中,10和10是随机选择的,还是背后有逻辑? – rgamber

回答

1

这里的一致性允许更小和更简单的代码(以及可能的硬件)。

如果仔细查看页面目录和页表项的格式,您会注意到它们在x86上几乎完全相同。

现在,如果您将PDEs中的一个指向PD,则访问所有PDEsPTEs将变得无足轻重。我不知道在i80386设计与否的时候是否有这样的计划,但它确实派上用场。

+0

感谢您的解释! – rgamber