[发明专利]X86体系结构内存管理单元虚拟化方法无效

专利信息
申请号: 200910043830.1 申请日: 2009-07-03
公开(公告)号: CN101620573A 公开(公告)日: 2010-01-06
发明(设计)人: 易晓东;谭郁松;刘晓建;张卫华;戴华东;吴庆波;孔金珠 申请(专利权)人: 中国人民解放军国防科学技术大学
主分类号: G06F12/08 分类号: G06F12/08;G06F12/10;G06F9/455
代理公司: 国防科技大学专利服务中心 代理人: 郭 敏
地址: 410073湖*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: x86 体系结构 内存 管理 单元 虚拟 方法
【说明书】:

技术领域

发明涉及计算机体系结构及操作系统领域内存管理方法,尤其是X86体系结构的内存管理单元(Memory Management Unit,MMU)虚拟化方法。

背景技术

当前,计算机的处理能力不断快速提升,而根据相关统计,运行于其上的服务软件在系统空闲时段往往只用到了不到10%的处理能力,在忙时也往往用不到50%。与此同时,计算机的能耗不断加大,电能的消耗已经逐渐成为IT业的主要开销之一。另外,出于安全和可靠等方面的考虑,大量的服务提供商必须使用多台服务器以满足数据备份、冗余容错和服务的安全隔离等方面的需求,这不仅大大增加了设备购置的资金投入、成倍提高了电能消耗,而且由于大量服务器的利用率较低,造成了性价比严重低下。

为了解决这个问题,人们提出了虚拟化(virtualization)的概念,即通过虚拟机监控器(Virtual Machine Monitor,VMM),对真实计算机的CPU(Central Processing Unit,中央处理单元)、内存管理单元MMU和外设进行虚拟化,在一台真实的计算机上虚拟出多台“虚拟机(Virtual Machine,VM)”,每台虚拟机都可分别运行一个操作系统。这样,就能进行服务器整合(server consolidation),即将多台服务器整合为一台物理服务器,从而大大提高服务器利用率、降低能源消耗和提高安全性与可靠性。在桌面计算领域,虚拟化技术使得用户能够同时运行多个不同的操作系统,满足了用户对不同计算平台的需求。

X86计算机所装配的物理内存从0开始编址,每个内存单元的地址称为物理地址(physical address),CPU基于物理地址访问内存的不同单元。为了在X86计算机上同时运行多个虚拟机,虚拟机监控器中必须包含一个名为“MMU虚拟化模块”的组成模块,由该模块进行内存管理单元MMU的虚拟化。当前国际上的MMU虚拟化方法都包括以下步骤:

第一步,为虚拟机分配物理内存,即根据用户的配置,将X86计算机的物理内存划分为多块,每一块内存对应一个虚拟机。目前有两种方法实现物理内存分配:第一种方法是借助操作系统提供的内存分配接口分配,例如KVM项目(http://www.linux-kvm.org/),这种分配方法直接调用操作系统提供的服务,实现简单,但不能保证所分配物理内存的物理地址的连续性;第二种方法是在X86计算机引导时预留出相应的物理内存,例如Xen项目(http://www.xen.org/),这种方法能够保证预留物理内存的物理地址的连续性,但实现复杂。

第二步,为虚拟机创建E820表。在X86计算机中,并非所有的物理内存都是可用的。例如,物理地址区间0xA0000至0xC0000被保留给显卡的显示缓冲区,从而这部分物理内存是不可用的。为了描述X86计算机的物理内存是否可用,X86计算机定义了所谓的E820表,E820表中记录了每一段物理地址区间对应的物理内存是否可用。当今所有的操作系统都通过查询E820表获得可用内存信息,以保证只使用可用物理内存。

假设在第一步中为某个虚拟机分配的物理内存的物理地址区间是[M,M+N),则当前国际上MMU虚拟化方法所构建的E820表中将物理地址区间[0,N)标识为可用内存(不考虑其它保留的物理地址区间)。例如,如果为某虚拟机分配256MB物理内存,则不管这些物理内存处于哪个物理地址区间,该虚拟机的E820表中从0开始至256MB的物理地址区间被标识为可用。

第三步,当虚拟机加载新页表时,为其构建影子页表(shadow page table)和反向映射(backmap)。X86体系结构MMU虚拟化的核心是分页(paging)机制,即将机器的物理内存划分为若干个固定大小的内存页(memory page),再引入虚拟地址(virtual address)的概念,并构造页表(page table),在页表中记录每个虚拟地址页所对应的内存页的物理地址(physical address)。应用程序使用虚拟地址来访问内存,CPU通过查找页表,将对应的虚拟地址转换为真实的物理地址后完成内存访问。例如,X86体系结构规定的最小页大小是4KB,假设页表中记录的虚拟地址页0x12345000对应的物理地址页是0x00055000,那么虚拟地址0x12345678经该页表转换后的物理地址是0x00055678。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200910043830.1/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top