为了记录,这是家庭作业。
我遇到了问题,我有一个使用32位虚拟地址和32位物理地址的处理器,带有4Kb页面和一个线性页面表。
我收到以下汇编指令(MIPS32)
lw $t0, 0x34c8($zero)
由于此处理器使用4Kb页面,因此虚拟地址中的偏移量为12位长,因此地址中的最后一个半字节是VPN(3)。使用它来查询页面表,我发现PTE是一个空条目:
VPN | Dirty | Present | PPN
----------------------------
0 | 1 | 0 | 0x1
----------------------------
1 | 0 | 1 | 0x0
----------------------------
2 | 1 | 1 | 0x6
----------------------------
3 | - | 0 | -
----------------------------
4 | 0 | 1 | 0x4
----------------------------
5 | 0 | 1 | 0x2
----------------------------
6 | 0 | 1 | 0x7
----------------------------
7 | 0 | 1 | 0x3
我如何找到实际地址呢?我被告知内存中的所有物理页面都在使用,但我不知道这是否有帮助。我是否应该假设PPN将是0x5,因为这是表中不存在的唯一“缺失”页码?
感谢。