2012-12-14 73 views
1

所以我真的不明白这一点。任何人都可以解释如何解决这些问题吗?翻译虚拟和实体地址

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

1.)这个虚拟地址的虚拟页号是多少?什么是页面偏移量? 2)使用下面的页表,将上述虚拟地址转换为物理地址 - 以十六进制表示。页面表显示前5个条目。

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

+0

这是功课吗?你有什么尝试? –

+0

它不是作业考试复习。我知道答案,我只是不明白它 –

回答

2

如果一页的大小是4KB(= 4096个字节),这就意味着从0到所有地址,包括4095(0x00000fff)在第一页。

0x0000aaa小于0x00000fff,所以这仍然在第一页(页面#0)。

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

+0

谢谢你,清楚的解释。所以只是为了确保说给出的地址应该是0x00001AAA。那意味着它会在第二页?所以我会去表中找到第二页,在这个例子中它是0xBBBBB? –

+0

正确。在第二个例子中,物理地址最终为0xBBBBBAAA。 – IvoC

1

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