发明名称 一种面向MIPS平台的内存虚拟化方法
摘要 本发明涉及一种面向MIPS平台的内存虚拟化方法。该方法包括面向MIPS平台的内存虚拟化的地址组成方法;面向MIPS平台的内存虚拟化在地址空间组成方法;面向MIPS平台的内存虚拟化的地址组成和地址空间的映射方法;面向MIPS平台的内存虚拟化的地址组成和地址空间的映射维护机制以及面向MIPS平台的内存虚拟化地址映射实现流程。优点是:(1)克服了MIPS处理器无硬件辅助支持、MIPS平台下内存虚拟化三层地址映射、多个虚拟机对物理内存访问之间的隔离与安全等技术难题。(2)系统具有轻量级的优点。(3)可以满足嵌入式领域的虚拟化应用需求,也可以满足服务器领域的虚拟化应用需求。
申请公布号 CN102567217B 申请公布日期 2014.12.24
申请号 CN201210001188.2 申请日期 2012.01.04
申请人 北京航空航天大学 发明人 阮利;肖利民;祝明发
分类号 G06F12/02(2006.01)I;G06F9/455(2006.01)I 主分类号 G06F12/02(2006.01)I
代理机构 北京慧泉知识产权代理有限公司 11232 代理人 王顺荣;唐爱华
主权项 一种面向MIPS平台的内存虚拟化方法,该方法采用宿主模型架构,包括如下模块:物理内存、宿主OS、虚拟机内核、内存虚拟化、宿主QEMU进程、虚拟内存以及客户OS;该内存虚拟化方法包括面向MIPS平台的内存虚拟化的地址组成方法,该地址组成方法是基于以上模块构成,包括四种地址,分别是客户机虚拟地址,即GVA;客户机物理地址,即GPA;宿主机虚拟地址,即HVA;宿主机物理地址,即HPA;其中,该方法进一步包括面向MIPS平台的内存虚拟化在地址空间组成方法,主要包括四种地址空间:分别是客户机虚拟地址空间、客户机物理地址空间、宿主机虚拟地址空间和宿主机物理地址空间;其中,该方法进一步包括面向MIPS平台的内存虚拟化的地址组成和地址空间的映射方法,分别是客户机虚拟地址属于客户机虚拟地址空间,客户机物理地址属于客户机物理地址空间,宿主机虚拟地址属于宿主机虚拟地址空间,宿主机物理地址属于宿主机物理地址空间;其中,该方法进一步包括面向MIPS平台的内存虚拟化的地址组成和地址空间的映射维护机制,包括客户机TLB和页表,客户机物理页描述符表,宿主机TLB和页表,宿主机机物理页描述符表;其中,该方法进一步包括面向MIPS平台的内存虚拟化地址映射实现流程,其流程核心为构建GVA‑>HPA的地址映射,即GVA‑>GPA‑>HVA‑>HPA,具体流程为:S1:客户机模块发出访问某个GVA的命令;S2:映射处理模块获得GVA‑>GPA的映射;S3:映射处理模块获得GPA‑>HVA的映射;S4:映射处理模块获得HVA‑>HPA的映射;S5:映射处理模块将三个映射叠加得到(GVA,HPA)映射,填充影子TLB中;S6:返回客户机;其中,该方法的具体实现流程为:S21:内核GVA的影子TLB填充;S22:执行客户机TLB的填充;S23:非内核GVA的影子TLB填充;其中,S21内核GVA的影子TLB填充的具体流程为:S1:客户机模块发出访问某个GVA的命令;S111:判断GVA是否属于客户机内核地址空间;S1112:非内核GVA的处理;S1111:执行GPA映射;GPA=GVA&某地址;S112:在GPPDT中查找GPA对应的HVA;S113:在宿主机TLB中查找HVA对应的HPA;S114:将(GVA,HPA)映射存入影子TLB中;S6:返回客户机;其中,S22执行客户机TLB的填充的具体流程为:S1:客户机模块发出访问某个GVA的命令;S111:判断GVA是否属于客户机内核地址空间;S1212:内核GVA的处理;S1211:客户机TLB中无(GVA,GPA)映射;S122:向客户机注入TLB缺失异常;S124:执行TLB指令填充客户机TLB;S125:模拟TLB指令;S125:返回客户机代码中断处;S6:返回客户机;其中,S23非内核GVA的影子TLB填充的具体流程为:S1:客户机模块发出访问某个GVA的命令;S111:判断GVA是否属于客户机内核地址空间;S1212:内核GVA的处理;S1311:在客户机TLB中存在(GVA,GPA)映射;S13112:填充客户机TLB;S13111:在GPPDT中查找(GPA,HVA)映射;S132:在宿主机TLB中查找(HVA,HPA)映射;S133:将(GVA,HPA)映射存入影子TLB中;S6:返回客户机。
地址 100191 北京市海淀区学院路37号