收藏 分享(赏)

ARM内存管理单元学习.pptx

上传人:scg750829 文档编号:9117098 上传时间:2019-07-24 格式:PPTX 页数:23 大小:1.13MB
下载 相关 举报
ARM内存管理单元学习.pptx_第1页
第1页 / 共23页
ARM内存管理单元学习.pptx_第2页
第2页 / 共23页
ARM内存管理单元学习.pptx_第3页
第3页 / 共23页
ARM内存管理单元学习.pptx_第4页
第4页 / 共23页
ARM内存管理单元学习.pptx_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、内存管理单元MMU,1,主,要,的,功,能,1.管理虚拟存储器、物理存储器的控制线路,2.负责虚拟地址映射为物理地址,3.提供硬件机制的内存访问授权,地址范围:由CPU的位数决定,例如一个32位的CPU,它的地址范围是00xFFFFFFFF (4G),1,相关概念,分页机制:虚拟地址空间划分成称为页(page)的单位,而相应的物理地址空间也被进行划分,单位是页帧(frame).页和页帧的大小必须相同。,TLB和地址转换表,2,相关概念,1. TLB(translation lookaside buffer) 转换遍历缓存。 TLB是MMU的核心部件,它存储少量的虚拟地址与物理地址的转换关系,它

2、其实是物理内存区的一小段内存。TLB是位于内存中的页表的cache,如果没有TLB,则每次取数据都需要两次访问内存,即查页表获得物理地址和取数据. 2. 地址转换表。 当TLB中没有缓冲对应的地址转换关系时,需要查找这个地址转换表,找到虚拟地址与物理地址的对应关系。在大多数处理器中,这个转换表为多级页表,比如386里面的页目录表和页表,将线性地址映射为物理地址,2,功能说明,现代的多用户多进程操作系统,需要MMU,才能达到每个用户进程都拥有自己独立的地址空间的目标。使用MMU,操作系统划分出一段地址区域,在这块地址区域中,每个进程看到的内容都不一定一样。例如 WINDOWS操作系统将地址范围4

3、M-2G划分为用户地址空间,进程A在地址0X400000(4M)映射了可执行文件,进程B同样在地址0X400000(4M)映射了可执行文件,如果A进程读地址0X400000,读到的是A的可执行文件映射到RAM的内容,而进程B读取地址0X400000时,则读到的是B的可执行文件映射到RAM的内容。,将线性地址映射为物理地址,2,功能说明,CP15寄存器介绍与MMU有关的寄存器,CP15的C8寄存器用来控制清除TLB的内容,是只写寄存器,读操作将产生不可预知的后果。CP15的C10寄存器用于控制TLB内容锁定。如果系统中包含独立的指令TLB和数据TLB,那么对应于数据TLB和指令TLB分别有一个独

4、立的TLB内容锁定寄存器,用来选择其中的某个寄存器,CP15寄存器介绍与MMU有关的寄存器,ARMMMU硬件采用2级页表结构:一级页表(L1)和二级页表(L2),3,MMU的页表,一级页表支持4种类型的页表项-由bit1:0决定: 1.1MB段转换项;(指向一个1MB的存储段) 2.指向L2细页表的目录项;(包含一个L2细页表首地址的指针,同时包含L1表项代 表的1MB虚存段的域信息。细页表必须与4KB的倍数地址对齐) 3.指向L2粗页表的目录项;(粗页表必须与1KB的倍数地址对齐) 4.产生中止异常的错误项 一级页表两大类:1.指向第一级页表(L2页表)的基地址2.直接指向1MB的物理内存

5、L1主页表既可作为L2页表的页目录,也可作为用于转换1MB虚拟页(称为一段)的普通页表 L1页表中每个表项可以覆盖1MB的内存,由于有4096K个选项(item),所以总计可以覆盖4096K*1MB=4GB的内存空间。,3,MMU的页表,L1每种页表的结构,ARMMMU硬件采用2级页表结构:一级页表(L1)和二级页表(L2),3,MMU的页表,二级页表有4种类型的页表项)-由bit1:0决定: 1.定义64KB页帧属性的大(large)页表项;(包含一个64KB物理存储块的基地址,同时还包含4组权限位域,以及页的cache和写缓冲器属性。每一组访问权限位域代表虚存页的1/4,这些页表项可以看成

6、是16KB子页,以更好的控制64KB页的访问权限)。 2.定义4KB页帧属性的小(small)页表项; 3.定义1KB页帧属性的微(tiny)页表项; 4.访问时产生页错中止异常的错误页表项。 (注意区别大页,小页,微页和粗页表,细页表) 一个L2粗页表有256(1MB/4KB)个页表项,占用1KB的主存空间,每个页表项将一个4KB的虚拟存储块转换成一个4KB的物理存储块。粗页表支持4KB或64KB的页,页表项包含的是4KB或64KB的页帧的首地址。如果转换的是一个64KB的页,对于每个64KB的页,同一个页表必须在页表中重复16次。 一个L2细页表有1024(1MB/1KB)个页表项,占用4

7、KB的主存空间,每个页表项将一个1KB的虚拟存储块转换成一个4KB的物理存储块。细页表支持1KB,4KB或64KB的页,页表项包含的是1KB,4KB或64KB的页帧的首地址。,3,MMU的页表,L2每种页表的结构,页表:存在内存中的地址转换表,页表由一个个条目(描述符)组成 条目:每个条目存储了一段虚拟地址对应的物理地址及其访问权限,或者下一级页表地 页号:从页表基址开始,每页的索引号 页内偏移:某一页的内部偏移地址条目也称为“描述符”(Descriptor):段描述符,大页描述符,小页描述符,极小页描述符-它们保存段、大页、小页或极小页的起始物 地址;粗页表描述符、细页表描述符-他们保存二级

8、页表的物理地址转换过程如下: (1) 根据给定的虚拟地址找到一级页表中的条目 (2)如果此条目是段描述符,则返回物理地址,转换结束 (3)如果此条目是二级页表描述符,继续利用虚拟地址在二级页表中找到下一个条目; (4)如果这第二个条目是页描述符,则返回物理地址,转换结束; (5)其他情况出错,5,转换过程,5,转换过程,3,转换过程,单步搜索-当L1页表用于转换一个1MB的段时(搜索1MB的页),其页表项(PTE)包含的就是物理存储器中1MB页帧(page frame)的首地址。,3,转换过程,两步搜索-搜索大小为1KB、4KB、16KB、64KB的页。一级页表存放的是二级页表的目录,二级页表

9、才是存放转换表的。L1页表作为页目录时,其页表项(PTE)包含的就是1MB虚拟空间的L2粗(coarse)页表或L2细(fine)页表的指针,3,转换过程,只有一级页表的情况:第一个MVA 第二个是页表基址寄存器(c2),3,转换过程,保存在粗页表中的大页地址转换过程:,3,转换过程,保存在粗页表中的小页地址转换过程:,3,转换过程,保存在粗页表中的极小页地址转换过程:,地址转换失败时产生的异常和处理,4,MMU异常处理,1) TLB异常:如果试图访问没有在 MMU的 TLB中映射的内存地址,会触发这个异常。在支持虚拟内存的操作系统中,这一般会触发内存的页面倒换,系统的 Exception H

10、andler会将所需要的内存页从虚拟内存中调入物理内存,并更新相应的 TLB表项。 2)地址对齐异常:如果试图访问一个非对齐的地址,例如 lw/sw指令的地址非 4字节对齐,或 lh/sh的地址非 2字节对齐,就会触发这个异常。一般地,操作系统在 Exception Handler中对这个异常的处理,是分两次读取 /写入这个地址。虽然一般的操作系统内核都处理了这个异常,最后能够完成期待的操作,但是由于会引起用户态到内核态的切换,以及异常的退出,当这样非对齐操作较多时会严重影响程序的运行效率。因此,编译器在定义局部和全局变量时,都会自动考虑到对齐的情况,而程序员在设计数据结构时,则需要对对齐做特别的斟酌。但并不是所有的处理器或者操作系统支持非对其访问的。 3)访问冲突: TLB命中,地址转换成功,但是当前处理器的模式的访问权限和该页表的权限不符合,因此导致该异常。,谢谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报