中低端微处理器平台软件仿真MMU设计与实现.docVIP

中低端微处理器平台软件仿真MMU设计与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中低端微处理器平台软件仿真MMU设计与实现

中低端微处理器平台软件仿真MMU设计与实现   摘 要:嵌入式软件目前已广泛应用于生活和工业中,由于其硬件开发的局限性,在微控制器(单片机)利用软件的方式来仿真嵌入式硬件平台的物理结构和硬件功能目前在工业和软件开发过程中的应用越来越普遍,以软件方式模拟MMU对内存的操作,实现低端微处理器管理大量内存,来代替高端的ARM内核的微处理器能以比较快的速度进行访问的功能,实现应用上层接口比较方便的系统。本文先重点介绍了ARM系列微处理器中MMU的硬件结构、MMU相关的缓存结构以及MMU的事务处理过程。在此基础上对MMU访问的缓存硬件TLB、Cache、WriteBuffer等结构组成和属性进行描述,并进行软件仿真实现。最后针对s3c2440微处理器与MMU所相关的行为给予软件实现,并进行平台测试。   关键词:存储管理单元(MMU);软件仿真;J_Link仿真器   中图分类号:TP332   在微控制器(单片机)利用软件的方式来仿真[1]嵌入式硬件平台的物理结构和硬件功能目前在工业和软件开发过程中的应用越来越普遍,如今大多数微处理器都集成了内存管理单元[2-4](以后简称MMU),利用MMU协处理器进行内存的扩展,为内存的虚拟化[5]提供支持。而且在许多单片系统开发的初期,由于系统模型构建的复杂性、MMU硬件本身造价的限制,也不适合直接扩展硬件MMU以求得大量快速内存的实现。而现在对于ARM处理器中MMU的学术研究大多集中于MMU硬件的体系结构[6-7]和设计实现,通过软件仿真MMU硬件的研究却是很少,即使有所实现,但大多是针对于高端的平台,成本较高。本文针对市场很少开发的中低端微处理器平台,利用软件的方式仿真硬件MMU的物理结构和功能,实现大部分硬件MMU功能,从而使系统能够容易地获得大量较快速度的内存。   由于市场上比较广泛应用于嵌入式系统的处理器是带有MMU的ARM处理器,文献[8]提出了一种MMU的软件模拟模型,但对于MMU的硬件结构和运行机理的建模过于简单。基于此,以ARM处理器的MMU协处理器为研究对象,以面对对象的方式,对MMU协处理器的组件及运行机理建立软件模拟模型,并且结合实际需要,进行测试[9]实验。   1 ARM系统中MMU系统结构   MMU属于CPU的协处理器,它的两个主要功能是:完成虚拟地址到物理地址的转换以及硬件机制的内存访问权限检查,使得每个用户进程拥有自己独立的地址空间,并通过内存访问权限的检查保护每个进程所用的内存不被其他进程破坏;主要访问的部件[10]有:TLB(translation lookaside buffer),高速缓存Cache,WriteBuffer,快速上下文切换扩展FCSE硬件以及部分协处理器寄存器。   1.1 地址映射   ARM微处理器中的CPU核产生的地址称为虚拟地址(Virtual Address),在确保访问的数据已在物理内存中后,需要先将虚拟地址转换为物理地址,即“地址映射”,这样CPU才能读写实际的数据,而这个过程的完成便需要MMU的TLB[11]完成。MMU允许把虚拟地址映射成一个相应的不同的物理地址,所对应的物理地址指明了需要访问的外部空间的位置。   1.2 内存访问权限检查   当一条程序指令需要对指定的存储区域访问时,MMU便进行访问权限的检查,以保护每个进程所用的内存不被其他进程破坏。检查的结果包括无访问权限、只读权限、可读写权限,由CP15寄存器C3(域访问控制)、描述符的域(Domain)、CP15寄存器C1的R/S/A位、描述符的AP位共同决定,“域”决定是否对某块内存进行权限检查,“AP”决定如何对某块内容进行权限检查。   1.3 TLB   TLB是MMU硬件中的缓存结构,存放从虚拟地址到物理地址的地址查找表,由于从Virtual Address到Physical_Address的转换需要访问多次内存,大大降低了CPU的性能,故提出TLB办法改进。当CPU发出一个虚拟地址Virt_Addr[12]时,MMU首先访问TLB。如果TLB中含有能转换这个虚拟地址的描述符,则直接利用此描述符进行地址转换和权限检查,不必再做TTW(Translation Table Walk),否则MMU访问页表找到描述符后再进行地址转换和权限检查,并将这个描述符填入TLB中,下次再使用这个虚拟地址时就直接使用TLB用的描述符。使用TLB需要保证TLB中的内容与页表一致,在启动MMU之前,页表中的内容发生变化后,尤其要注意。一般的做法是在启动MMU之前使整个TLB无效,改变页表时,使所涉及的虚拟地址对应的TLB中条目无效[13]。   1.4 Cache硬件   为了提高程序的运行速度,在主存和CPU通用寄存器之间通常设置一个高速的、容量相对较小的存储器[1

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档