- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
arm9处理器的虚拟内存管理单元(MMU)
arm9处理器的虚拟内存管理单元(MMU)
arm9处理器的虚拟内存管理单元(MMU) 收藏 Linux与ulinux的主要区别其中一点就是有没有mmu。所以我想在这里记录一下我对它的理解。文章分2个部分来记录,第一部分就是讲述当虚拟地址传递给cpu后,cpu是如何解析它,把它装换成物理地址,再把这个地址送到内存总线上;第二部分就是要讨论MMU是如何控制存储空间的访问权限的。
这里我先述说第一部分:
我先在这里述说一下一些基本概念,页表,页表项。表是用来干什么的?其实就是反应虚拟地址和物理地址的映射关系。具体来说就是当一个虚拟地址穿给cpu后,cpu就会根据这个地址找到对应页表,再找到页表项。然后只要访问页表项的内容,你就知道这个虚拟地址是对应哪个物理地址了。ARM可以通过一级表就可以完成目的,但是也可以通过二级表来完成任务。linux是选择后者来实现的,所以我只是讨论后者的情况。页表项就是页表里面的每一项咯。
虚拟存储空间到物理存储空间的映射是以块为单位的,ARM支持的存储块的大小有以下几种:
1.段,大小为1MB
2.大页,大小为64KB
3.小页,大小为4KB
4.极小页,大小为1KB
对于一级页表来说,它的基址是存放在cp15的c2寄存器里面的。一级页表的页表项的结构是这样的:
31位~10位细粒度二级页表基址;(其实这只是其中的一种变换方法,一共有6种变换方法,我这里只说linux里面常用的粗粒度小页地址变换方法。这里说的小页就是我们上面刚说的存储块的大小中的一种。)
1位~0位:这两位数可以有4种组合,对于这种方法,我们用的是01。
对于中间的几位与访问权限和cache有关。这里以免弄混,用到时我们再来讨论。
好了现在了解了一级页表项里面的结构了。
我们现在来说说二级页表,和它的页表项结构。但是在说这个之前,我先要说说一个规则。当以二级分页管理某段存储空间时,要同时设置一级页表项和二级页表项,一个一级页表项对应1段(1MB)虚拟存储空间的映射关系,一个一级页表项对应一张二级页表,这张二级页表中的所有页表项对应的虚拟空间映射关系的总和,就是一级页表的页表项虚拟存储空间的映射了。举个例子,假设物理存储空间一页的大小设置为4kb,0~4kb这个地址空间就有一页的大小了。刚才不是说了,一级页表的一个页表项对应1段大小的虚拟存储空间的映射。再加上两个两个限制:二级页表的大小为1KB;每个页表项占4个字节(4byte)。这样就可以知道二级页表一共有256项,也就是有256个页表项。现在如果一个页表项映射0~4kb的物理存储空间。那么256个页表项就一共映射了0~1024kb的物理存储空间了。很明显这个空间的
大小为1M。就是一级页表一个页表项对应的虚拟存储空间映射关系的范围。
好了,说了那么多,大家应该明白了吧,如果还是不明白就画画图吧。
其实刚才打的例子就是粗粒度小页地址变换方法的具体规则,我再叙述一遍:一级页表的每个页表项对应的虚拟存储空间映射关系的范围是1MB,其页表项结构告诉我们31位~10位是粗粒度二级页表的基址;二级页表的大小为1KB;每个页表项占4个字节,它对应的虚拟存储空间映射关系的范围是4kb。
接下来,我们来看看二级页表的页表项的结构:
31位~12位存放着小页基地址。
这样就把整个页表结构说了一遍了。好了,现在我们来讨论虚拟地址是如何转换成物理地址的。
传给cpu的虚拟地址的结构如下:
31位~20位存放着一级页表内偏移序号;
19位~16位存放着二级页表内偏移序号;
15位~0位存放着页内偏移序号;
首先会提取31位~20位的一级页表内偏移序号,再去访问CP15的C2寄存器,把一级页表的页表基址提取出来。页表基址加上页表偏移序号就可以找到一级页表里面相应的页表项。访问这项可以得到二级页表的基址。
然后会再提取19位~16位的二级页表内偏移序号,加上刚才获得的二级页表的基址。这样就可以得到二级页表的页表项了。访问其内容,可以得到物理地址的基址。
最后提取15位到0位的页内偏移序号,加上刚才的物理地址基址。就可以得到物理地址了。
这就是整个转换过程了。
接下来,我要讨论的是MMU的访问控制基址(就是内存保护机制)
先要说说这个方面涉及到几个元素:
CP15的C3、C5、C6、还有C1的S和R位。还有就是各级页表的页表项结构中的某些位,这些位构成了AP和DOMAIN。(以后我们把页表项的结构称为描述符)
我们先来说说C3吧,这个寄存器记录了D0~D15这十六个域,每个域用2位来表示。什么是域?MMU把整个存储空间划分成16个域,每个域都有对应的存储区域的。那么用这两位来表示什么呢?是权限,是访问这个域的权限。这2位有4种组合,每个的具体意义如下:
00:没有访问权限
01:客户(client)根据CP15
您可能关注的文档
- 2014年秋新目标九年级英语单元测试题(unit6).doc
- 2014年第七届运动会乒乓球比赛规程.docx
- 2014年苗永清奖学金评选.doc
- 2014思修分析题命题特点和可能涉及的考点和近代史关键词.docx
- 2014年马鞍山政法干警《行政职业能力测验》(专科类)真题试卷--数量关系.doc
- 2014广西事业单位职业能力测试:详解语句排序题中的答题思路.docx
- 基础英语(上)-1.doc
- 2014房山中考二模英语答案.doc
- 2014政治与历史学院三下乡成果展策划书.doc
- 2014房山区初三二模英语答案.doc
- 《GB/T 32879-2025电动汽车更换用电池箱连接器》.pdf
- 中国国家标准 GB/T 21649.2-2025粒度分析 图像分析法 第2部分: 动态图像分析法.pdf
- 中国国家标准 GB/T 20899.9-2025金矿石化学分析方法 第9部分:碳量的测定.pdf
- 《GB/T 20899.9-2025金矿石化学分析方法 第9部分:碳量的测定》.pdf
- GB/T 20899.9-2025金矿石化学分析方法 第9部分:碳量的测定.pdf
- 《GB/T 33820-2025金属材料 延性试验 多孔状和蜂窝状金属高速压缩试验方法》.pdf
- GB/T 33820-2025金属材料 延性试验 多孔状和蜂窝状金属高速压缩试验方法.pdf
- 中国国家标准 GB/T 33820-2025金属材料 延性试验 多孔状和蜂窝状金属高速压缩试验方法.pdf
- GB/T 45910-2025信息技术 生物特征识别模板保护方案的性能测试.pdf
- 《GB/T 45910-2025信息技术 生物特征识别模板保护方案的性能测试》.pdf
最近下载
- 动量定理精选习题+答案.pdf VIP
- 2025江苏盐城市黄海金融控股集团有限公司博士后创新实践基地研究人员招聘2人笔试备考题库及答案解析.docx VIP
- 2025江苏盐城市黄海金融控股集团有限公司博士后创新实践基地研究人员招聘2人笔试参考题库附答案解析.docx VIP
- 2025江苏盐城市黄海金融控股集团有限公司博士后创新实践基地研究人员招聘2人笔试模拟试题及答案解析.docx VIP
- 2025江苏盐城市黄海金融控股集团有限公司博士后创新实践基地研究人员招聘2人考试备考试题及答案解析.docx VIP
- 教师资格证面试结构化面试真题及解析(幼儿园).pdf VIP
- KYN61-40.5型开关柜技术规范书.docx VIP
- 夜市承包经营协议书.docx VIP
- 2025江苏盐城市黄海金融控股集团有限公司博士后创新实践基地研究人员招聘2人考试备考题库及答案解析.docx VIP
- 2025届广东省深圳实验学校高中部高三第二次联考化学试卷含解析.doc VIP
文档评论(0)