网站大量收购独家精品文档,联系QQ:2885784924

内存的管理MMU实例分析.docx

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内存的管理MMU实例分析

0、MMU概述1、地址变换过程2、访问权限3、高速缓存4、程序实例?0、MMU概述??内存管理单元(Memory Management Unit)简称MMU,它负责虚拟地址到物理地址的映射,并提供硬件的内存访问权限检查。??运行大型操作系统的平台,一般都采用MMU进行内存管理??但对于带MMU的系统来说,内存中页命中率和换入换出所耗费的时间严重破坏了整个系统的确定性,这也是大多数实时操作系统采用直接内存管理,而不采用虚拟内存管理的原因?地址:??虚拟地址-VA,这是可执行文件运行时section在内存中的运行地址??变换后虚拟地址-MVA,gcc编译时使用同一个默认链接脚本,所以VA是相同的,为了得到不同的运行地址,所以需要结合PID通过FCSE单元再次转换??物理地址-PA,这是代码运行所在的物理存储设备,在嵌入系统中通常比虚拟地址范围小快速上下文切换,简称FCSE,用于避免在进程间切换时造成的虚拟地址到物理地址的重映射,将各进程的相同虚拟空间变换成不同的虚拟空间,从而避免重映射?例如:??一个32位的CPU,它的地址范围是0-0xFFFFFFFF(4G)而对于一个64位的CPU,它的地址范围为0-0xFFFFFFFFFFFFFFFF (64T),这个范围就是我们的程序能够产生的地址范围,我们把这个地址范围称为虚拟地址空间,该空间中的某一个地址我们称之为虚拟地址。??大多数时候系统所具备的物理地址空间只是虚拟地址空间的一个子集,对于一台内存为256MB的32bit x86主机来说,它的物理地址空间范围是0x000000000-0x0FFFFFFF(256M)。??在没有使用虚拟存储器的机器上,虚拟地址被直接送到内存总线上,使具有相同地址的物理存储器被读写。??在使用了虚拟存储器的情况下,虚拟地址不是被直接送到内存地址总线上,而是送到内存管理单元——MMU。??由MMU把虚拟地址映射为物理地址,从而完成存储器读写,MMU由一个或一组芯片组成,一般存在协处理器中。??大多数使用虚拟存储器的系统采用分页技术进行重映射,而相应的物理地址空间也被进行划分成同样大小的页。映射关系如下图:1、地址变换过程??在ARM系统中,4GB虚拟空间被分成128个进程空间块,每个进程空间块大小为32MB??每个进程空间块中可以包含一个进程(00x01ffffff),PID从0-127??进程使用的VA(虚拟地址)空间为:??(PID×0——(PID×00x01ffffff)过程如下:页表:存在内存中的地址转换表,页表由一个个条目(描述符)组成条目:每个条目存储了一段虚拟地址对应的物理地址及其访问权限,或者下一级页表地址页号:从页表基址开始,每页的索引号页内偏移:某一页的内部偏移地址MVA被MMU分为2个部分:??第一部分是页号索引(page Index)??第二部分则是相对该页首地址的页内偏移量(offset)TLB:快表,在CPU中开辟的RAM,访问速度与寄存器相当,大小为8-16字,用于缓存页表中的描述符,当CPU需要访问内存时,先在TLB中查找需要的地址变换条目,如果条目不存在,就从内存中的页表中查询,并将结果添加到TLB。页表中条目(描述符)结构:??Section base address:段基地址,内存中的物理段起始地址,可能是页表基址也可能是映射内存基址??AP:2bit,访问权限控制位Access Permission??Domain:4bit,域访问控制寄存器C3的索引,Domain与AP配合使用,对访问权限进行检查??C:当C被置1时为write-through(WT)模式??B:当B被置1时为write-back(WB)模式C,B两个位在同一时刻只能有一个被置1当得到地址变换条目后,将进行的操作:??通过条目得到该虚拟地址对应的物理地址??根据条目中的C和B控制位决定是否缓存该内存访问的结果到cache??根据存取权限控制位和域访问控制位确定该内存访问是否被允许,如果该内存访问不被允许,CP15向ARM处理器报告存储访问中止??对于不允许缓存的存储访问,使用步骤一中得到的物理地址访问内存,对于允许缓存的存储访问,如果在cache中命中,则忽略物理地址,如果cache没有命中,则使用步骤一得到的物理地址访问内存,并把该块数据读取到cache中?将一个虚拟地址转换为物理地址,一般分为数学公式转换法和查表法,ARM采用的是查表法,且最多用到两级页表物理内存可以划分为四种大小的块:??段描述符保存着段的起始物理地址??大页描述符保存着大页的起始物理地址??小页描述符保存着小页的起始物理地址??极小页描述符保存着极小页的起始物理地址以段的方式进行转换时只用到一级页表,以页的方式进

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档