Chinaunix首页 | 论坛 | 博客
  • 博客访问: 216704
  • 博文数量: 86
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 256
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-12 15:39
文章分类

全部博文(86)

文章存档

2016年(20)

2015年(65)

2014年(1)

我的朋友

分类: LINUX

2015-07-13 19:19:42

转自: http://blog.csdn.net/jianwen01/article/details/5983178

基于二级页表的地址查询方式

       上节讨论了当一级描述符[1:0]01或者11的时候表示这是一种二级页表查询方式,而一级页表描述符仅仅做为二级页表的索引。下面我们将coarse pagefine page 一起讨论,并且之处他们的区别。

       Coarse page 索引了一个二级页表,这个页表描述查询是用大页,小页还是极小页。粗颗粒将1MB的空间划分为2564KB的空间。如下图所示:








其中各个权限的控制位定义如下:








同样细颗粒所索引的二级页表也能包括大页,小页和极小页。但是它把1M空间分为10241KB。如下图所示:








其中权限位定义如下:










无论是粗颗粒还是细颗粒,都会在一级描述符中返回一个二级描述符,指向不同的控制页面。这些页面又会分为大页(large page,小页(small page)和极小页(tiny page)。具体是哪一种页面根据二级描述符的[1:0]定义,定义如下:







其中大页是64KB对齐,小页是4KB对齐,而极小页是1KB对齐的。对于粗颗粒只提供大页和小页对齐,而细颗粒可提供极小页对齐。这三种页面的格式定义如下表:



 








下面将是一个粗颗粒寻址大页的流程,从图中我们可以清楚的看到它的查询方式:






由于这种模式下粗颗粒的低四位与大页寻址的高四位重叠了,所以在实际连续的RAM中也会出现覆盖问题,这个不会影响什么所以提一下就行。(重叠16次)

并且大页在细颗粒的1情况下类似,只是重叠次数增加了。(64次)

 

下面再看一组小页模式,这种模式下粗颗粒时刚好不重叠的:










大家在这里注意一下:这个是粗颗粒对应小页的查询方式,实际明显可以看出对于细颗粒对应小页的查询方式会出现重叠的。

最后我想让看一下细颗粒对应极小页的这种特殊的方式,如下图:












 (待续。。。)


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