Chinaunix首页 | 论坛 | 博客
  • 博客访问: 28141
  • 博文数量: 16
  • 博客积分: 770
  • 博客等级: 军士长
  • 技术积分: 195
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-02 10:33
文章分类

全部博文(16)

文章存档

2011年(1)

2009年(15)

我的朋友

分类: LINUX

2009-03-08 13:48:22

  今天小看了会ARM的内存管理单元MMU,对从虚拟地址转换到物理地址更进一步理解了。
  当我们运行大程序时,往往会内存不够用,这个时候,就需要用到ARM的MMU了。
  MVA为虚拟地址,PA为物理地址。
  2410利用页表的方式使虚拟地址转换到物理地址。
  转换过程大概是,从虚拟地址中的页表索引部分和基址找到段基址,然后从虚拟地址的段内地址部分和段基址一起组成一个描述符,由这个描述符就可以找到虚拟地址相应的物理地址。
  上面只需要一级页表,假若需要二级页表,那么方法一样,不同的是虚拟地址中由2个级别的页表和段内地址组成的。由此找到二级页表中的描述符,再由描述符找到相应的物理地址。
  假如MMU_TLB_BASE为基址地址,VIRTULADDR为虚拟地址,MMU_SECDESC_WB为描述符带CACHE和BUFFER的,MMU_SECDESC为描述符,PHYSICALADDR为物理地址。则转换方式如下:
  *(MMU_TLB_BASE+VIRTULADDR>>20)=(PHYSICALADDR&0xfff00000)|MMU_SECDESC_WB则可以从虚拟地址映射到物理地址,关键在于理解描述的构造和用途。
 
   再接再厉吧,太难了
阅读(585) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~