打印

ARM9中页表转换疑问

[复制链接]
4249|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dream_blue|  楼主 | 2010-3-9 21:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
例如以保存在粗页表中的大页描述符

  1 页表基址寄存器C2的高18位[31:14]和MVA[31:20]组成一个低2位为0的32位地址,MMU利用这个地址找到粗页表描述符
  2 取出粗页表描述符的位[31:10]----粗页表基址,它和MVA的[19:12]组成一个低2位为0的32位物理地址----据此找到大页描述符
  3 取出大页描述符的位[31:16]---即大页基址,它和MVA[15:0]组成一个32位的物理地址---这就是MVA所对应的PA
上面步骤2和3中,用于在粗页表中索引的MVA[19:12]、用于大页内寻址的MVA[15:0]有重合的位:位[15:12]。当[15:12]从0b0000变化为0b1111时,步骤2返回的大页描述符相同

问题:在ARM9中的虚拟地址是2^32=4GB,分为4096个1MB,在步骤2中取出对应的粗页表基址,粗页表基址加上偏移量2^8,可以找到大页表描述符。。。。
      1 物理地址空间的计算    (2^8)*64K = 2^24 为什么空间不是1M??


求大虾帮忙解决!!!!
      另外在粗页表中  位[31:20]称为粗页表基址,在此描述符的低10位0后就是一个二级页表的物理地址。此二级页表含256个条目(所以大小为1KB)称为粗页表。其中每个条目表示大小为4KB的地址空间,所以一个粗页表表示1MB的物理空间

   2 以上的256,1KB,4KB是怎么来的????

相关帖子

沙发
dream_blue|  楼主 | 2010-3-9 21:59 | 只看该作者
先自己顶一个!!!
   256为MVA的位[19:12]得到的!!
   4KB用来做什么??

使用特权

评论回复
板凳
backupyan| | 2010-3-10 07:53 | 只看该作者
本帖最后由 backupyan 于 2010-3-10 08:22 编辑

每个条目(描述符)占用内存的4个字节(32位),所以256个条目是1K

使用特权

评论回复
地板
backupyan| | 2010-3-10 08:02 | 只看该作者
本帖最后由 backupyan 于 2010-3-10 08:10 编辑

第一个问题的解答:
当[15:12]从0b0000变化为0b1111时,步骤2返回的大页描述符相同
即连续16个大页描述符是完全相同的,即映射同一个地址。
所以:
(2^8)*64K / 16 才行=1MB
Because the upper four bits of the page index and low-order four bits of the coarse page
table index overlap, each coarse page table entry for a large page must be duplicated 16
times (in consecutive memory locations) in the coarse page table.
来源:ARM920T Technical Reference Manual.pdf 页3-17。

使用特权

评论回复
5
backupyan| | 2010-3-10 08:06 | 只看该作者
本帖最后由 backupyan 于 2010-3-10 08:14 编辑

你看的是不是韦东山的书?
如果是的话,看102页 图7.4 的粗页表部分。
粗页表使用MVA[19..12]索引,共256项。
剩余的MVA[11..0]对应4KB,做为物理地址的低[11..0]位,共计4KB。
256×4KB=1MB

使用特权

评论回复
6
dream_blue|  楼主 | 2010-3-10 09:09 | 只看该作者
谢谢backupyan

你说的剩余的MVA[11..0]对应4KB,做为物理地址的低[11..0]位,共计4KB。这个4KB是粗页表中每个条目的地址空间。
问题:在这里这4KB有什么作用?难道就是为了满足粗页表表示1MB的物理地址空间,然后对应4096个条目中的1MB

使用特权

评论回复
7
backupyan| | 2010-3-10 10:55 | 只看该作者
本帖最后由 backupyan 于 2010-3-10 11:12 编辑

首先,用MMU、页表转换的目的是为了内存保护(或者虚存扩展)。
这里我们假设用做内存保护,这样需要通过页表项来描述某个内存区域的访问权限。
4KB就是一个small page,可以通过粗页表项(256个描述符中的一个)来确定每个4KB的访问权限。便于OS进行内存分配和权限管理。
粗页表项还可以确定一个大页(64KB)的访问权限。 但是这样的话,其连续16个粗页表项必须完全相同,否则@#¥……%#¥%。(没有实验过)

使用特权

评论回复
8
dream_blue|  楼主 | 2010-3-10 12:04 | 只看该作者
呵呵!!非常感谢!!

使用特权

评论回复
9
dream_blue|  楼主 | 2010-3-10 12:06 | 只看该作者
粗页表项还可以确定一个大页(64KB)的访问权限。 但是这样的话,其连续16个粗页表项必须完全相同,否则@#¥……%#¥%。(没有实验过)    这句真真的提醒我了!!! 看书的时候没看懂

使用特权

评论回复
10
左马介| | 2010-4-21 22:05 | 只看该作者
学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:在没找到喜欢的事情之前,把当前的做好!

2

主题

64

帖子

1

粉丝