Memory 虚拟到物理内存地址转换示例

Memory 虚拟到物理内存地址转换示例,memory,memory-address,virtual-memory,Memory,Memory Address,Virtual Memory,有人能帮我理解如何阅读下面关于记忆翻译的例子吗?如何在步骤1中获得页表编号和页码?第三步会发生什么 这是在32位CPU上完成的 对于这两个示例,假设内存的以下部分内容。PDBR包含0x001b3000 地址---:--目录 0x0001a038:0x000b4045 0x000b4b9c:0x236b12c1 0x000b91a0:0x1b9d8fc5 0x001b31cc:0x003a9067 0x001b3458:0x0001a067 0x003a9054:0x000b9067 示例1:VM

有人能帮我理解如何阅读下面关于记忆翻译的例子吗?如何在步骤1中获得页表编号和页码?第三步会发生什么

这是在32位CPU上完成的

对于这两个示例,假设内存的以下部分内容。PDBR包含0x001b3000

地址---:--目录

0x0001a038:0x000b4045
0x000b4b9c:0x236b12c1
0x000b91a0:0x1b9d8fc5
0x001b31cc:0x003a9067
0x001b3458:0x0001a067
0x003a9054:0x000b9067

示例1:VM地址0x1cc151a0

  • 将VM地址分成两个10位字段和一个12位字段,得到以下结果:
  • 页表编号:0x073
    页码:0x015
    偏移量:0x1a0

  • 根据PDBR,目录从0x001b3000开始

  • 我们通过将页表编号乘以四(相当于左移两位),得到目录中的偏移量,即0x001b3000+0x1cc=0x001b31cc