ARM的MMU功能分析

概述:

MMU:内存管理单元

MMU功能:

     1. 将虚拟地址转化为物理地址

 

 

 2. 地址访问权限的管理

 

  1. 地址转化类型

   ARM系统支持3种类型的地址转化:

  ①段式转化(一个段大小为1MB

  ②粗粒度页面转化(粗页转化)

  ③细粒度页面转化(细页转化)(一页一般为4K,16K,64K)

 

  1. TTB寄存器

  MMU要自动进行虚拟地址到物理地址的转化,首先要找到一级页表,而一级页表的基地址(TTBtranslation table base)则是保存在CP15C2寄存器中。因此,当程序员创建好相应的页表后,需要将页表的基地址写入到该寄存器中(MMU只进行虚拟地址到物理地址的转换,而  页表的创建  以及  将TTB写入CP15C2寄存器中  这两件事由程序员自己完成)。

 

  1. 段式转化分析

 

     个人对段式转化的分析总结:将虚拟地址的高12位作为索引在一级页表中找到相对应的表项,且这个表项的后2位为‘10MMU才会把这次转化认为是段式转化。这个表项的高12位保存了段的物理基地址,后20位为相对于段基地址的偏移

即:段基地址 段偏移量 物理地址 

 

 

  1. 细页转化分析

       如上面画的草图(此草图针对大小为4K的物理页分析,由虚拟地址后12位决定):虚拟地址的20~31位决定了一级页表的偏移,而这个一级页表表项后二位应为‘11’,并且保存有对应二级页表的基地址;虚拟地址的10~19位决定了二级页表的偏移,并且这个二级页表表项存放有对应物理地址的页基地址;虚拟地址的0~11为决定了物理地址的偏移,即:物理地址 物理基地址 偏移量

posted @ 2015-03-23 11:33  Fight_for_a_sweet  阅读(1028)  评论(0编辑  收藏  举报