欢迎来到天天文库
浏览记录
ID:10933545
大小:626.50 KB
页数:0页
时间:2018-07-09
《基于ARM体系的虚拟机的构架实现 开题报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、厦门大学软件学院《毕业设计(论文)》开题报告学生姓名班级学号校内指导教师姓名职称教授副教授所在单位厦门大学软件学院校外指导教师姓名职称毕业设计(论文)题目基于ARM体系的虚拟机的构架实现毕业设计(论文)的目标:在晋通PC平台上实现ARMv4体系的虚拟机。随着时代的发展,嵌入式开发应用已经深入各个领域,前景十分看好。目前,嵌入式开发方式都以实际硬件为主,由于代价较高,不利于学习和开发调试,使得嵌入式开发门槛较高,难以普及。虚拟机是一项应用广泛的技术,它也早已在嵌入式开发中得到大量的应用。在嵌入式开发中,很多时候,我们只需要在虚
2、拟机中调试我们的程序,就可以让程序很好地移植到实际硬件平台上执行。ARM系列CPU是目前最成功和最广泛地应用于嵌入式的CPU系列。我们的目标是实现一个基础的ARM体系的虚拟机。实现方法:我们的实现方式遵循从内部到外围逐渐完善的方式迭代完成整个虚拟机的开发。我负责MMU的模拟模拟ARMMMU1.MMU行为1.1地址映射MMU支持基于段或页内存访问:段:由1MB块的内存组成,支持3种不同的页尺寸:nTiny页:由1KB块内存组成。nSmall页:由4KB块内存组成。nLarge页:由64KB块内存组成。MMU支持两级地址转换表:
3、一级表:存有Section转换或者指向Second-level表二级表:存有Large和Small页转换。有些类型二级表也可以完成Tiny页转换。转换表基地址:转换表基地址寄存器(CP15寄存器2)保存着一级表的物理地址。这个过程描述为:FunctionTranslate(INC,INVA,OUTPA):SR;其中C为CPU状态,VA为待转换的虚拟地址,PA为结果物理地址,SR为返回的状态码。一级表转换:一级表转换过程如下:则一级表项地址为:(一级表项获取)A1=(R2&0xFFFFC000)
4、((VA&0xFFF00000
5、)>>18)其中:A1为结果地址,R2为CP15第2号寄存器得到的表项如下:一级表项描述符:这样需要执行(一级表项转换):If([A1]&0x3)=0x0ThenSR=缺页异常ReturnElseif([A1]&0x3)=0x1Then粗页表地址转换…Elseif([A1]&0x3)=0x2Then段地址转换Elseif([A1]&0x3)=0x3Then细页表地址转换…Endif其中,[A1]是取内存物理地址A1所存储的值。段地址转换:段过程转换如下:则物理地址为:PA1=([A1]&0xFFF00000)
6、(VA&0x0
7、00FFFFF)其中:PA1为结果地址,[A1]是取内存物理地址A1所存储的值粗页表转换粗页表转换如下:则二级表项物理地址为:A2=([A1]&0xFFFFFC00)
8、((VA&0x000FF000)>>10)其中:A2为结果地址,[A1]是取内存物理地址A1所存储的值细页表转换细页表转换如下:则二级表项物理地址为:A2=([A1]&0xFFFFF000)
9、((VA&0x000FFC00)>>8)其中:A2为结果地址,[A1]是取内存物理地址A1所存储的值二级表转换二级表项描述符:这样需要执行(二级表转换):If([A2]&
10、0x3)=0x0ThenSR=缺页异常ReturnElseif([A2]&0x3)=0x1ThenLarge页地址转换Elseif([A2]&0x3)=0x2ThenSmall页地址转换Elseif([A2]&0x3)=0x3ThenTiny页地址转换Endif其中,[A2]是取内存物理地址A2所存储的值。Large页地址转换:Large页地址转换过程如下:则物理地址为:PA2=([A2]&0xFFFF0000)
11、(VA&0x0000FFFF)其中:PA2为结果地址,[A2]是取内存物理地址A2所存储的值Small页地址转换
12、:Small页地址转换过程如下:则物理地址为:PA2=([A2]&0xFFFFF000)
13、(VA&0x00000FFF)其中:PA2为结果地址,[A2]是取内存物理地址A2所存储的值Tiny页地址转换:Tiny页地址转换过程如下:则物理地址为:PA2=([A2]&0xFFFFFC00)
14、(VA&0x000003FF)其中:PA2为结果地址,[A2]是取内存物理地址A2所存储的值1.1权限检查访问权限检查:当需要时:对页表项的AP位进行检查,同时检查CP15寄存器1的S和R位来判定访问权限,如下:这个过程如下:(权限检查)AP
15、=当前表项APS=R1[8]R=R1[9]M=0x1F;IfAP=0x0ThenIfS=0ANDR=0ThenSR=访问异常ReturnElseifS=1ANDR=0ThenIfC.CPSR&M=0x10Then’用户模式SR=访问异常ReturnElseSR=只读ReturnEndifE
此文档下载收益归作者所有