[发明专利]内存静态划分虚拟化方法有效
申请号: | 201310076740.9 | 申请日: | 2013-03-11 |
公开(公告)号: | CN103116556A | 公开(公告)日: | 2013-05-22 |
发明(设计)人: | 王星焱;殷红武;沈金祥;何升;许国春 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F12/10 | 分类号: | G06F12/10 |
代理公司: | 北京众合诚成知识产权代理有限公司 11246 | 代理人: | 龚燮英 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 静态 划分 虚拟 方法 | ||
技术领域
本发明涉及计算机设计领域,更具体地说,本发明涉及一种内存静态划分虚拟化方法。
背景技术
内存虚拟化是在虚拟地址到物理地址映射的基础上增加一层映射关系,使虚拟地址映射到虚拟物理地址,再将虚拟物理地址映射到物理地址,同时使得每个虚拟机(Virtual Machine,VM)都认为自己独立运行在从0开始的虚拟物理地址上。
内存虚拟化的实现形式有很多种方式,从内存分配角度看,有动态分配和静态分配两种形式。现有X86上商用或开源虚拟机管理器(VMM)均采用动态分配的方式实现内存虚拟化,虚拟机需要内存时再向宿主机请求内存。其中,虚拟机管理器是提供虚拟机环境底层基础技术支撑,并对虚拟机环境进行管理的底层系统软件。
从底层技术基础上看,X86上商用或开源虚拟机管理器有两种实现方式。一种是采用软件方法修改虚拟机内核页表装填代码,管理虚拟地址到虚物理地址的代换,并配合虚拟机管理器为硬件提供影子页表,硬件并不使用虚拟机内核提供的页表,而是使用影子页表,将虚拟地址代换到机器地址。另外一种是基于X86硬件提供的NPT(AMD)或VT(Intel)内存虚拟化接口,由虚拟机管理器管理该硬件接口相关设置来实现内存虚拟化,该方法对虚拟机操作系统内核透明。
现有方法的缺点主要是开销大:
内存动态分配性能开销大:采用内存动态分配的方式时,内存分配由每一次虚拟机内页面缺失时触发,需要硬件捕获该异常,并保留虚拟机状态,然后切换到宿主机,由宿主机分配好内存,并设置好相应的硬件接口后再返回虚拟机,此时虚拟机才具备可用的物理内存。该流程较长,且属于串行操作,使得虚拟机内内存分配的性能较低。
X86基于NPT或VT硬件的性能开销大:硬件提供了这些接口后,可不使用影子页表,也无需修改虚拟机内核,使得内存虚拟化对虚拟机完全透明,但该类接口的引入导致旁路转换缓冲(Translation Lookaside Buffer,TLB)缺失(Miss)(在本说明书中,旁路转换缓冲缺失简称“TLBMiss”)后装填时的访存次数大大增加,虚拟机的TLB性能开销较大。
基于影子页表的方式空间开销大:具体地说,针对没一个虚拟机内核管理的页表,均需要构建另外一份该页表的影子页表提供给硬件使用,该方法使得页表所占用的空间加倍。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种能够解决内存虚拟机的性能和空间开销问题的基于TLB Miss装填的内存静态划分虚拟化方法。
根据本发明,提供了一种内存静态划分虚拟化方法,其特征在于包括:在进行虚地址转换时,首先查询TLB表,如果虚地址在表中命中,则直接根据TLB中的页表项PTE中的页帧号PFN确定虚地址所对应的物理地址;如果没有命中,则转入TLB的不命中处理流程。
优选地,在TLB的不命中处理流程中,从虚拟地址VA获得物理地址PA,再通过虚拟机控制寄存器中存储的虚拟机地址偏移Offset计算出物理地址PA对应的机器地址MA,再将机器地址MA装填至TLB中,其中,虚拟机地址偏移Offset为虚拟机控制寄存器中存放的虚拟机地址偏移量Offset。
优选地,TLB的不命中处理流程包括:
a)页表基地址寄存器中填的页表基地址是虚拟物理地址,先从虚拟机控制寄存器得到虚拟机地址偏移量Offset,加上页表基地址寄存器中的虚拟物理地址,得到页表基地址的机器地址MAL1,其中,虚拟机地址偏移Offset为虚拟机控制寄存器中存放的虚拟机地址偏移量Offset;
b)从页表基地址的机器地址MAL1所对应的页面中,取出第一级Level1的页表,从中取出页帧号,将页帧号乘以PAGE_SIZE,得到作为下一级页表的第二级Level2的页表的基地址的物理地址PAL1,再根据公式MAL2=PA L1+Offset计算出作为下一级页表的第二级Level2的页表的基地址的机器地址MAL2,其中,PAGE_SIZE为页面大小;
c)从上一步得到的机器地址MAL2所对应的页面中取出第二级Level2的页表,从中取出页帧号,将页帧号乘以PAGE_SIZE,以得到作为下一级页表的第三级Level3的页表的基地址的物理地址PAL2,再根据公式MAL3=PAL2+Offset计算出作为下一级页表的第三级Level3的基地址的机器地址MAL3;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310076740.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于船舶救生艇的太阳能风帆
- 下一篇:零能耗的自行车信号指示装置