0

我发现了这个问题,但我不知道如何解决它。

您正在为新处理器设计内存管理单元 (MMU)。处理器的字长为 64 位,指针也为 64 位。设计的以下部分已经确定:
• MMU 将支持 32kB 的页面大小。
• 它将使用 3 级分层页表执行地址转换。
• 与x86 机器一样,页表任何级别的每个单独的表都占用一个物理内存页。第 3 级是根表,包含保存第 2 级表的物理地址的条目。2 级表条目同样指向 1 级表,1 级表条目指向物理页或帧。
• 所有页表条目的大小均为 64 位。
• 物理地址空间的大小限制为 52 位(4096 TB),目前应该足够了。
这个问题的其余部分是关于这些设计决策的后果。
问题:每个单独的页表页面中有多少条目?展示你的工作。

经过一番阅读,我发现给定页面大小P=2^p和虚拟地址大小n,我们有一个虚拟页面偏移(VPO)p位和虚拟页面(n-p)位数。这样一来,1 级页表中的 PTE 数量为:

2^n / 2^p = 2^(n-p)

在一个k级别的页表中,我需要将 VPN 拆分为k不同的 VPN,据我了解,它们的长度都是相同的(n-p)/k。这意味着每个单独页表中的 PTE 数量为2^((n-p)/k).

现在,就我而言,我有P = 32kB = 2^15. 这给了我一个 15 位的 VPO。我缺少的是虚拟地址大小n
我知道字和指针大小是 64 位。
我是否正确假设虚拟地址是 64 位宽?在这种情况下,我会得到49/3-bit VPN,但49不能被3.

4

0 回答 0