在物理内存中没有页面时获取物理地址

时间:2015-10-26 01:13:18

标签: memory memory-management mips paging

为了记录,这是家庭作业。

我遇到了问题,我有一个使用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,因为这是表中不存在的唯一“缺失”页码?

感谢。

0 个答案:

没有答案