翻译虚拟和物理地址

时间:2012-12-14 18:51:42

标签: memory memory-address

所以我真的不明白这一点。任何人都可以解释如何解决这些问题吗?

假设我们有一个带有基于分页的内存系统的32位CPU。页面大小为4KB(2 ^ 12)。现在CPU生成虚拟地址0x0000AAA

1。)此虚拟地址的虚拟页码是多少?什么是页面偏移量?

2.。)使用下面的页面表,将上述虚拟地址转换为物理地址 - 以十六进制表示。页表显示前5个条目。

0 - 0xAAAAA 1 - 0xBBBBB 2 - 0xCCCCC 3 - 0xDDDDD 4 - 0xEEEEE

2 个答案:

答案 0 :(得分:2)

如果页面大小为4KB(= 4096字节),则表示所有地址从0到最多,包括4095(0x00000fff)都在第一页。

0x0000aaa小于0x00000fff,因此它仍在第一页(第0页)中。

要获取与虚拟地址0x00000aaa对应的物理地址,请查找第0页的前缀,即0xAAAAA。

答案 1 :(得分:1)

由于给定页面大小为4 KB,这意味着页面具有4K地址。因此,我们需要12位才能到达页面中的每个地址 因此,页面偏移= 12位。
由于系统是32位,因此将使用20位作为页码。
由于页面大小等于帧大小,因此帧偏移= 12位 现在,使用页面表来获取物理地址。