正在计算 outer/2nd-level 页 table 的大小

Calculating size of outer/2nd-level page table

有点家庭作业的问题,但我更想围绕这个概念思考:

如果我在二级分页系统中有一个 32 位的虚拟地址,其中页面大小为 8KB,外部 table 有 1024 个条目,我如何计算要表示多少位(大小) 第二 level/outer 页 table?

答案应该是 9 位,但我不确定如何计算这个或公式是什么。

虚拟地址分为:

PTI - 页面 Table 索引

1st PTI | 2nd PTI | Page Offset

第一个 PTI "outer page table" 有 1024 个条目。 需要 10 位 来表示 1024 种不同的状态,因为 2^10 = 1024.

页面偏移量必须能够索引 8 KiB 字节,因此它是 13 位 大。 8 KiB对应8192个不同的地址和2^13 = 8192.

现在,还剩第 2nd 页 table。我们可以通过减法轻松计算出它的大小:

32 = 10 + 13 + x  = 23 + x    | - 23
9 = x
x = 9

因此 "inner" 页面 table 最多可以容纳 2^9 = 512 个条目。