ARM内存管理单元学习

上传人:ha****u 文档编号:244729354 上传时间:2024-10-05 格式:PPTX 页数:23 大小:1.10MB
返回 下载 相关 举报
ARM内存管理单元学习_第1页
第1页 / 共23页
ARM内存管理单元学习_第2页
第2页 / 共23页
ARM内存管理单元学习_第3页
第3页 / 共23页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2014/7/30,#,内存管理单元,MMU,1,主,要,的,功,能,1.,管理虚拟存储器、物理存储器,的控制线路,2.,负责虚拟地址映射为物理地址,3.,提供硬件机制的内存访问授权,地址范围:由,CPU,的位数决定,例如一个,32,位的,CPU,,它的地址范围是,00 xFFFFFFFF,(,4G),1,相关概念,分页,机制:虚拟地址空间划分成称为页(,page,)的单位,而相应的,物理地址,空间也被进行划分,单位是页帧,(frame).,页和页帧的大小必须相同。,TLB,和地址转换表,2,相关概念,1.TLB(translation lookaside buffer),转换遍历缓存。,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,页帧(,page frame,)的首地址。,3,转换过程,两步搜索,-,搜索大小为,1KB,、,4KB,、,16KB,、,64KB,的页。一级页表存放的是二级页表的目录,二级页表才是存放转换表的。,L1,页表作为页目录时,其页表项(,PTE,)包含的就是,1MB,虚拟空间的,L2,粗(,coarse,)页表或,L2,细(,fine,)页表的指针,3,转换过程,只有一级页表的情况:第一个,MVA,第二个是页表基址寄存器(,c2,),3,转换过程,保存在粗页表中的大页地址转换过程:,3,转换过程,保存在粗页表中的小页地址转换过程:,3,转换过程,保存在粗页表中的极小页地址转换过程:,地址转换失败时产生的异常和处理,4,MMU,异常处理,1,),TLB,异常,:如果试图访问没有在,MMU,的,TLB,中映射的内存地址,会触发这个异常。在支持虚拟内存的操作系统中,这一般会触发内存的页面倒换,系统的,Exception Handler,会将所需要的内存页从虚拟内存中调入物理内存,并更新相应的,TLB,表项。,2,),地址对齐异常,:如果试图访问一个非对齐的地址,例如,lw/sw,指令的地址非,4,字节对齐,或,lh/sh,的地址非,2,字节对齐,就会触发这个异常。一般地,操作系统在,Exception Handler,中对这个异常的处理,是分两次读取,/,写入这个地址。虽然一般的操作系统内核都处理了这个异常,最后能够完成期待的操作,但是由于会引起用户态到内核态的切换,以及异常的退出,当这样非对齐操作较多时会严重影响程序的运行效率。因此,编译器在定义局部和全局变量时,都会自动考虑到对齐的情况,而程序员在设计数据结构时,则需要对对齐做特别的斟酌。但并不是所有的处理器或者操作系统支持非对其访问的。,3,),访问冲突,:,TLB,命中,地址转换成功,但是当前处理器的模式的访问权限和该页表的权限不符合,因此导致该异常。,谢谢,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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