旅の途中
你知道阿基米德原理吗?

导航

 

本节所使用的符号:

地址翻译

地址翻译是一个N元素的虚拟地址空间(VAS)中的元素和一个M元素的物理地址空间(PAS)中元素之间的映射

映射实现:
MMU利用页表来实现这种映射。CPU中的一个控制寄存器,页表基址寄存器PTBR指向当前页表。n位的虚拟地址包含两个部分:一个p位的虚拟页面偏移(VPO)和一个(n-p)位的虚拟页号(VPN)。MMU利用VPN来选择适当的页表条目(PTE)。将页表条目中的物理页号(PPN)和虚拟地址中的VPO串联起来,就得到相应的物理地址。因为物理和虚拟页面都是P字节的,所以物理页面偏移(PPO)和VPO是相同的。

使用页表的地址翻译:

页面命中时CPU硬件执行的步骤:

  1. 处理器生成一个虚拟地址,传送给MMU
  2. MMU生成PTE地址,并向高速缓存/主存请求得到它
  3. 高速缓存/主存向MMU返回PTE
  4. MMU由PTE中的PPN和虚拟地址中的VPO构造出物理地址,传送给高速缓存/主存
  5. 高速缓存/主存返回所请求的数据字给处理器。

缺页时的步骤:

  1. 这一步等同于命中时的1-3
  2. PTE中的有效位为0,所以MMU触发异常,传递CPU中的控制到操作系统内核中的缺页异常处理程序
  3. 缺页处理程序确定出物理存储器中的牺牲页,如果这个页面已经被修改了,则把它换出到磁盘。
  4. 缺页处理程序调入新的页面到原牺牲页面,并更新存储器中的PTE
  5. 缺页处理程序返回到原来的进程,再次执行导致缺页的指令。CPU将引起缺页的虚拟地址重新发送给MMU。因为虚拟页面现在缓存在物理存储器中,所以就会命中。
posted on 2017-11-19 20:54  CknightX  阅读(415)  评论(0编辑  收藏  举报