Chinaunix首页 | 论坛 | 博客
  • 博客访问: 203274
  • 博文数量: 33
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1277
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-03 10:03
个人简介

现于杭州电子科技大学攻读硕士学位

文章分类

全部博文(33)

文章存档

2013年(33)

我的朋友

分类: 嵌入式

2013-09-07 21:56:16


一级页表:

S3C2440最多会用到两级页表,以段方式进行转换时只用到一级页表,以页的方式进行转换时用到两级页表,页的大小有三种:大页(64K)、小页(4K)、极小页(1KB)。段描述符、大页描述符、小页描述符、极小页描述符保存段、大页、小页或极小页的起始物理地址,粗页表描述符、细页表描述符保存二级页表的物理地址

转换过程:


(1)根据给定的虚拟地址找到一级页表的描述符

(2)如果此描述符是段描述符,则返回物理地址,转换结束
(3)否则如果是二级页表描述符,继续利用虚拟地址在此二级页表中找到下一个描述符
(4)如果这二个描述符是页描述符,则返回物理地址
(5)其他情况出错

TTB base代表一级页表地址,将它写入协处理器CP15的寄存器C2(称为页表基址寄存器),一级页表的地址必须是16K对齐的(位[14:0]0),一级页表中使用4096个描述符来表示这4G空间,每个描述符对应1M的虚拟地址,要么存储了他对应的1M物理空间的起始地址,要么存储了下一级页表的地址,使用虚拟地址MVA[3120]进行引索(212次方正好为4096


粗页表映射: 当一级描述符的最低两位为01时表示是粗页表,粗页描述符[3110]称为粗页表基址,此描述符的低10位填充0后就是一个二级页表的物理地址,此二级描述符含有256个条目,用MVA[19:12]来引索,所以此二级描述符含256个描述符(19-12+1=8,28次方正好等于256),每个描述符占4个字节,所以粗页表大小为1KB,其中每个描述符表示大小为4KB的物理地址,所以一个粗页表表示1MB的物理地址

大页映射:
当二级描述符(粗页或细页)的最低两位为01时表示大页,MVA[31:16]称为大页基址,此描述符低16位填充0后就是一块64KB物理地址空间的起始地址,粗页表中每个描述符只能保存表示的物理空间,如果大页描述符保存在粗页表中,则连续16个描述符都保存在同一个大页中,类似,细页表中每个描述符只能保存1KB的物理空间,如果大页描述符保存在细页表中,则连续64个描述符都保存同一大页描述符以保存在粗页表中大页描述符,说明地址转换的过程
1:页表基址寄存器(TTB)位[31:14]MVA[31:20]组成一个低两位为032位地址,MMU利用这个地址找到粗页表描述符
2:取出粗页地址描述符的位[31:10],即粗页表基址,它和粗页引索MVA[19:12]组成低两位为032位物理地址,据此即可找到大页描述符
3:取出大页描述符的位[31:16],即大页基址,它和大页引索MVA[15:0]组成一个32位的物理地址,这就是虚拟地址对应的物理地址
用于在粗页表中的引索的MVA[19:12]与用于大页内引索的MVA[15:0]有重合位[15:12],当位[15:12]0000变化到1111时,步骤2返回的大页描述符相同,所以粗页表中连续16个描述符都保存同一个大页以保存在细页表中的大页描述符,说明地址转换的过程
1:页表基址寄存器(TTB)位[31:14]MVA[31:20]组成一个低两位为032位地址,MMU利用这个地址找到细页表描述符
2:取出细页表地址描述符的位[31:12],即细页基址,它和细页引索MVA[19:10]组成低两位为032位物理地址,据此即可找到大页描述符
3:取出大页描述符的位[31:16],即大页基址,它和MVA[15:0]组成一个32位的物理地址,这就是虚拟地址对应的物理地址用于在细页表中的引索的MVA[19:10]与用于大页内引索的MVA[15:0]有重合位[15:10],当位[15:12]000000变化到111111时,步骤2返回的大页描述符相同,所以粗页表中连续64个描述符都保存同一个大页


段映射:

当一级描述符的最低两位为10时表示段段描述符[31:20]称为段基址,此描述符的低20位填充0后就是一块1MB的物理地址空间的起始地址,使用MVA[19:0]在这1MB来引索,所以,描述符的位[31:20]MVA[19:0]就构成了这个虚拟地址MVA对应的物理地址

1:页表基址寄存器(TTB)位[31:14]MVA[31:20]组成一个低两位为032位地址,MMU利用这个地址找到段描述符
 2:取出段描述符的 [31:20],即段基址,它和MVA[19:0]组成一个32位的物理地址,这就是虚拟地址对应的物理地址 当一级描述符的最低两位为10时表示段段描述符[31:20]称为段基址,此描述符的低20位填充0后就是一块1MB的物理地址空间的起始地址,使用MVA[19:0]在这1MB来引索,所以,描述符的位[31:20]MVA[19:0]就构成了这个虚拟地址MVA对应的物理地址

 1:页表基址寄存器(TTB)位[31:14]MVA[31:20]组成一个低两位为032位地址,MMU利用这个地址找到段描述符

  2:取出段描述符的 [31:20],即段基址,它和MVA[19:0]组成一个32位的物理地址,这就是虚拟地址对应的物理地址

极小页映射:

当二级页表的低两位为11时表示极小页极小页描述符的位[31:10]称为极小页的基址,此描述符的低10位填充0后就是一块1KB物理地址的起始地址,极小页只能保存子细页表中,用一条描述符来保存一个极小页描述符以保存在细页表中的极小页描述符,说明地址转换过程

1:页表基址寄存器(TTB)位[31:14]MVA[31:20]组成一个低两位为032位地址,MMU利用这个地址找到细页表描述符
2:取出细页地址描述符的位[31:12],即细页表基址,它和细页引索MVA[19:10]组成低两位为032位物理地址,据此即可找到极小页描述符

3:取出极小页描述符的位[31:10],即极小页基址,它和极小页引索MVA[9:0]组成一个32位的物理地址,这就是虚拟地址对应的物理地址

细页表映射:
当一级页表低两位为11时表示细页表细页描述符[31:12]称为细页表基址,此描述符低12位填充0后就是一个二级物理地址,此二级页表含1024个描述符,使用MVA[19:10]进行引索,每个描述符占4个字节,所以此二级页表大小为4KB,其中每个描述符表示大小为1KB的物理地址空间,所以一个细页表表示1MB的物理空间


小页映射:

当二级页表的描述符的最低两位为10时表示小页

小页描述符位[31:12]称为小页基址,此描述符的低12位填充0后就是一块4KB物理地址空间的起始地址,粗页表中美个描述符表示4KB的物理空间,如果小页描述符保存在粗页表中,则只需要用一条描述符来保存一条小页描述符,类似,细页表中每条描述符只能表示1KB的物理空间,如果小页描述符保存在细页表中,则连续4个描述符都保存同一个小页描述符以保存在粗页表中的小页描述符,说明地址转换过程

1:页表基址寄存器(TTB)位[31:14]MVA[31:20]组成一个低两位为032位地址,MMU利用这个地址找到粗页表描述符
2:取出粗页地址描述符的位[31:10],即粗页表基址,它和粗页引索MVA[19:12]组成低两位为032位物理地址,据此即可找到小页描述符
3:取出大页描述符的位[31:12],即小页基址,它和小页引索MVA[11:0]组成一个32位的物理地址,这就是虚拟地址对应的物理地址以保存在细页表中的小页描述符,说明地址转换过程

1:页表基址寄存器(TTB)位[31:14]MVA[31:20]组成一个低两位为032位地址,MMU利用这个地址找到细页表描述符
2:取出细页地址描述符的位[31:12],即细页表基址,它和细页引索MVA[19:10]组成低两位为032位物理地址,据此即可找到小页描述符
3:取出小页描述符的位[31:12],即小页基址,它和小页引索MVA[11:0]组成一个32位的物理地址,这就是虚拟地址对应的物理地址用于在细页表中的引索的MVA[19:10]与用于小页引索的MVA[11:0]有重合位[11:10],当位[11:10]00变化到11时,步骤2返回的大页描述符相同,所以粗页表中连续4个描述符都保存同一个大页


 



 

 



 


 



 

 





 



 



 













阅读(2204) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~