ARM内存管理单元学习.pptx

上传人:tia****nde 文档编号:12805210 上传时间:2020-05-25 格式:PPTX 页数:23 大小:1.13MB
返回 下载 相关 举报
ARM内存管理单元学习.pptx_第1页
第1页 / 共23页
ARM内存管理单元学习.pptx_第2页
第2页 / 共23页
ARM内存管理单元学习.pptx_第3页
第3页 / 共23页
点击查看更多>>
资源描述
内存管理单元MMU,1,主,要,的,功,能,1.管理虚拟存储器、物理存储器的控制线路,2.负责虚拟地址映射为物理地址,3.提供硬件机制的内存访问授权,地址范围:由CPU的位数决定,例如一个32位的CPU,它的地址范围是00 xFFFFFFFF(4G),1,相关概念,分页机制:虚拟地址空间划分成称为页(page)的单位,而相应的物理地址空间也被进行划分,单位是页帧(frame).页和页帧的大小必须相同。,TLB和地址转换表,2,相关概念,1.TLB(translationlookasidebuffer)转换遍历缓存。TLB是MMU的核心部件,它存储少量的虚拟地址与物理地址的转换关系,它其实是物理内存区的一小段内存。TLB是位于内存中的页表的cache,如果没有TLB,则每次取数据都需要两次访问内存,即查页表获得物理地址和取数据.2.地址转换表。当TLB中没有缓冲对应的地址转换关系时,需要查找这个地址转换表,找到虚拟地址与物理地址的对应关系。在大多数处理器中,这个转换表为多级页表,比如386里面的页目录表和页表,将线性地址映射为物理地址,2,功能说明,现代的多用户多进程操作系统,需要MMU,才能达到每个用户进程都拥有自己独立的地址空间的目标。使用MMU,操作系统划分出一段地址区域,在这块地址区域中,每个进程看到的内容都不一定一样。例如WINDOWS操作系统将地址范围4M-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分别有一个独立的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的物理内存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,这些页表项可以看成是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)个页表项,占用4KB的主存空间,每个页表项将一个1KB的虚拟存储块转换成一个4KB的物理存储块。细页表支持1KB,4KB或64KB的页,页表项包含的是1KB,4KB或64KB的页帧的首地址。,3,MMU的页表,L2每种页表的结构,页表:存在内存中的地址转换表,页表由一个个条目(描述符)组成条目:每个条目存储了一段虚拟地址对应的物理地址及其访问权限,或者下一级页表地页号:从页表基址开始,每页的索引号页内偏移:某一页的内部偏移地址条目也称为“描述符”(Descriptor):段描述符,大页描述符,小页描述符,极小页描述符-它们保存段、大页、小页或极小页的起始物地址;粗页表描述符、细页表描述符-他们保存二级页表的物理地址转换过程如下:(1)根据给定的虚拟地址找到一级页表中的条目(2)如果此条目是段描述符,则返回物理地址,转换结束(3)如果此条目是二级页表描述符,继续利用虚拟地址在二级页表中找到下一个条目;(4)如果这第二个条目是页描述符,则返回物理地址,转换结束;(5)其他情况出错,5,转换过程,5,转换过程,3,转换过程,单步搜索-当L1页表用于转换一个1MB的段时(搜索1MB的页),其页表项(PTE)包含的就是物理存储器中1MB页帧(pageframe)的首地址。,3,转换过程,两步搜索-搜索大小为1KB、4KB、16KB、64KB的页。一级页表存放的是二级页表的目录,二级页表才是存放转换表的。L1页表作为页目录时,其页表项(PTE)包含的就是1MB虚拟空间的L2粗(coarse)页表或L2细(fine)页表的指针,3,转换过程,只有一级页表的情况:第一个MVA第二个是页表基址寄存器(c2),3,转换过程,保存在粗页表中的大页地址转换过程:,3,转换过程,保存在粗页表中的小页地址转换过程:,3,转换过程,保存在粗页表中的极小页地址转换过程:,地址转换失败时产生的异常和处理,4,MMU异常处理,1)TLB异常:如果试图访问没有在MMU的TLB中映射的内存地址,会触发这个异常。在支持虚拟内存的操作系统中,这一般会触发内存的页面倒换,系统的ExceptionHandler会将所需要的内存页从虚拟内存中调入物理内存,并更新相应的TLB表项。2)地址对齐异常:如果试图访问一个非对齐的地址,例如lw/sw指令的地址非4字节对齐,或lh/sh的地址非2字节对齐,就会触发这个异常。一般地,操作系统在ExceptionHandler中对这个异常的处理,是分两次读取/写入这个地址。虽然一般的操作系统内核都处理了这个异常,最后能够完成期待的操作,但是由于会引起用户态到内核态的切换,以及异常的退出,当这样非对齐操作较多时会严重影响程序的运行效率。因此,编译器在定义局部和全局变量时,都会自动考虑到对齐的情况,而程序员在设计数据结构时,则需要对对齐做特别的斟酌。但并不是所有的处理器或者操作系统支持非对其访问的。3)访问冲突:TLB命中,地址转换成功,但是当前处理器的模式的访问权限和该页表的权限不符合,因此导致该异常。,谢谢,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!