ept是什么意思格式

0 李勇郭玉东王晓睿等基于EPT的内存虚拟化研究与实现2010311841010引言在典型的虚拟机监控器virtualmachinemointerVMM模型中VMM管理真实的硬件并为工作在VMM之上的每个客户机各自模拟一套硬件环境使客户机认为自己运行在真实的硬件环境之上1-2。就内存而言VMM管理着真实的物理内存即机器物理内存直接控制着对机器物理内存的访问并为每个客户机中的操作系统guestOS提供一套虚假的内存即客户物理内存GuestOS管理着客户物理内存并利用传统的虚拟地址概念为应用程序提供虚拟内存3-4。由于每个GuestOS认为它所拥有的内存空间总是从0开始的连续空间而机器物理内存中该地址只有一个VMM不可能将这块地址提供给所有的客户机因此VMM必须采用某种机制将从0开始的连续客户物理地址空间映射到其它机器物理地址空间。目前VMM通常采用影子页表解决这个问题5-6。影子页表是一种比较成熟的纯软件的内存虚拟化方式但影子页表固有的局限性影响了VMM的性能。例如若客户机中有多个虚拟CPU多个虚拟CPU之间同步页面数据将导致影子页面更新次数大幅度增加此时影子页表将带来异常严重的性能损失。Intel在最新的Corei7系列处理器上集成了EPT技术以硬件辅助的方式完成客户物理内存到机器物理内存的转换完成内存虚拟化并以有效的方式弥补了影子页表的缺陷。1EPT简介EPT是Intel在VT-x技术基础上增加的一种硬件辅助内存虚拟化技术7-8。支持此类技术的处理器有两种工作模式根模式和非根模式。VMM工作在根模式客户机工作在非根模式。EPT仅在非根模式下有效借助一套EPT页表结构将给定的客户物理地址转换成为机器物理地址这种转换由硬件完成所需的EPT页表结构由VMM创建、维护和更新。1.1EPT页表结构EPT页表结构由PML4tablepagemaplevel4tablePDPTpage-directory-pointertablePDpage-directory和PTpagetable共4级页表构成。每张页表大小4KB共有512个页表项每个页表项占用8个字节。这4级页表项结构很相似下面仅给收稿日期2009-10-16修订日期2009-12-16。作者简介李勇1983男河北藁城人硕士研究生研究方向为内存虚拟化郭玉东1964男河南太康人硕士教授研究方向为操作系统、虚拟化王晓睿1984男河南新密人硕士研究生研究方向为系统虚拟化时光1985男河南鹿邑人硕士研究生研究方向为处理器虚拟化。E-mailliyongaoyun163.com基于EPT的内存虚拟化研究与实现李勇郭玉东王晓睿时光信息工程大学信息工程学院河南郑州450002摘要为降低虚拟机监控器在内存虚拟化方面的开销提高内存虚拟化性能分析了两种的内存虚拟化机制着重对基于Intel扩展页表的内存虚拟化机制进行了研究分析了基于扩展页表的两种内存虚拟化方案优劣并进一步分析了影响内存虚拟化性能的因素。针对扩展页表页故障提出了页池的动态内存分配方案。内存虚拟化实现表明采用扩展页表实现内存虚拟化能简化了设计流程有效地提高了内存虚拟化性能。关键词虚拟机监控器扩展页表客户机操作系统内存虚拟化地址转换中图法分类号TP311.11文献标识码A文章编号1000-7024201018-4101-04Researchandimplementationofmemoryvirtualizatio asedonEPTLIYongGUOYu-dongWANGXiao-ruiSHIGuangCollegeofInformationEngineeringUniversityofInformationEngineeringZhengzhou450002ChinaA tractToreducetheoverheadofmemoryvirtualizationinvirtualmachinemonitorandimprovetheperformanceofmemoryvirtua-lizationtwomechanismofmemoryvirtualizationareanalyzedthemechanismofmemoryvirtualizatio asedonIntelEPTextendedpagetableisresearchedtheprivilegedanddefectoftwoproposal asedonEPTareanalyzedthefactorsaffectingtheperformanceofmemoryvirtualizationarefurtheranalyzed.TosolvethepagefaultofEPTthepagepoolofdynamicmemoryallocatio chemei roposed.Theimplementatio howsthatmemoryvirtualizatio asedonEPTca implifythedesignandimprovetheperformanceofmemoryvirtualizationeffectively.KeywordsVMMEPTguestOSmemoryvirtualizationaddre tra lation开发与应用计算机工程与设计ComputerEngineeringandDesign410220103118计算机工程与设计ComputerEngineeringandDesign出最高级和最低级页表的页表项结构PML4EPML4entry和PTEPTentry如图1、2所示页表项各个域的信息如表1所示。EPT页表项低3位全为0则此页表项不存在。1.2EPT地址转换EPT转换过程如图3所示处理器将48位的客户物理地址GPA转换成对应的机器物理地址。如果客户物理地址小于48位处理器将在客户物理地址高端用零补满。EPTP保存在描述客户机的控制结构中该结构记录着EPT页表结构的机器物理地址。各级页表项PML4E、PDPTE、PDE包含下一级页表项的机器物理地址PTE包含最终转换的机器物理页的基址。具体转换流程1通过EPTP定位PML4table基址以GPA的高9位为索引定位PML4E2用PML4E中包含机器物理地址定位PDPT基址以GPA的38-30位为索引定位PDPTE3用PDPTE中包含的下一级页表地址定位PD基址以GPA的29-21位为索引定位PDE4用PDE中包含的下一级页表地址定位PT基址以GPA的20-12位为索引定位PTE5这时PTE包含着最后转换得到的机器物理页再以GPA的低12位为偏移定位最终的机器物理地址。可见客户物理地址到机器物理地址的转换需要经过PML4table、PDPT、PD、PT四级页表任何一级页表项不存在或设置不当都将导致EPT转换失败导致VM退出。1.3线性地址到机器物理地址的完整转换客户机应用程序使用线性地址访存线性地址到机器物理地址的完整转换如图4所示。其中CR3中保存的是客户页目录的客户物理地址页目录项中保存的是客户页表的客户物理地址页表项保存的是客户页的客户物理地址。1处理器先将CR3中的客户物理地址进行EPT转换得到客户页目录所在的真实地址即机器物理地址再以客户线性地址的高10位为索引定位页目录项。2再将页目录项含有的客户页表的客户物理地址进行EPT转换得到客户页表所在的真实物理地址即机器物理地址再以客户线性地址的中间10位为索引定位页表项。3最后将页表项存储的客户页的客户物理地址进行EPT转换得到客户页所在的真实物理地址即机器物理地址以客户线性地址的最后12位为偏移定位得到最终的机器物理地址。如图4所示整个地址转换需要3次EPT地址转换即CR3、页目录项和页表项中包含的客户物理地址都要进行EPT地址转换而一次EPT地址转换过程需经过4次页表转换整个地址转换要访问12次页表。2基于EPT的内存虚拟化方案基于EPT的内存虚拟化方案基本上分为两种一种是静态构建EPT方案另一种是动态构建EPT方案。2.1静态构建EPT方案静态构建是在创建EPT页表时一次性创建好所有可能用到的页表结构之后不做修改利用创建好的EPT页表进行地址转换不会发生EPT页故障。它要求在创建客户机时就为其建立一套完整的EPT页表结构设置所有要用到的EPT页表项。例如VMM创建一IA-32客户机并为其分配512MB的内存则客户机可访问的最大客户物理地址为512MB因此进行EPT地址转换的客户物理地址不会超过512MB。如图3所示进行EPT地址转换时只用到部分的EPT页表项需要建立一张PML4table一张PDPT一张PD256张PT大约占用1MB内存。EPT页表内存开销较少但EPT页表所映射的512MB内存仅供本客户机使用不允许其它客户机访问。即使客户机仅用了300MB内存那么剩余的212MB内存也不会被其它客户机或VMM使用。此方案虽然简单但是内存浪费严重。创建GuestOS的数量跟机器物理内存大小和VMM给各个GuestOS分配内存图1PML4E格式63图2PTE格式5251NN-11211873210ignoredreserved下一级页表地址ignoredreservedrewignoredreservedignored类型rew732101211635251NN-165页地址表1EPT页表项域信息EPT页表项域含义r读权限w写权限e执行权限n处理器支持的最大物理地址位数reserved不用必须为全零Ignored忽略类型指向机器物理页的内存类型n-1---12位指向下一级EPT页表的机器物理地址在PTE中指向转换所得的机器物理页地址图3EPT地址转换4739383029212012110PEPTPEPML4表PML4EPDPTPDPTEPDPDEPTEPT机器物理地址Addre PhysicalGuest图4客户线性地址到机器物理地址的转换GuestLinearAddre CR3页目录EPTtableEPTtableEPTtable页目录项页表页表项页面物理地址李勇郭玉东王晓睿等基于EPT的内存虚拟化研究与实现201031184103大小有关。2.2动态构建EPT方案动态构建EPT方案借助客户机退出机制当EPT地址转换失败客户机退出时VMM通过EPT页故障处理创建需要的页表。客户机访存时处理器利用EPT页表将客户物理地址转换成机器物理地址成功则客户机正常运行失败则表示本次地址转换所用的EPT页表项设置错误或不存在客户机退出VMM获得控制权处理器进入根模式进行EPT页故障处理重新设置出错的EPT页表项最后将控制权转交给客户机客户机执行上次引起EPT页故障的指令则不会发生错误。随着客户机的运行和EPT页故障处理EPT页表逐步建立和完善。2.3两种方案的比较静态方案是一种较简单的方式创建的客户机数量受限于机器物理内存以及各个客户机分配内存的大小由于客户机内存大小不可动态调整内存浪费严重。动态方案比较复杂充分利用处理器对内存虚拟化提供的支持通过EPT页故障处理创建EPT页表结构。所有客户机都能根据需要动态地从机器物理内存申请内存从而提高内存利用率。本文主要介绍动态方案的实现。3动态构建EPT方案的实现3.1EPT相关的数据结构1页表项为了能有效地表示EPT页表项各种控制信息需要为各级EPT页表项定义专门的结构689。由于EPT各级页表项结构非常相似所以采用统一的结构ept_entry_t。structept_entry_tu64r:1/读权限/w:1/写权限/x:1/执行权限/emt:3/内存类型/igmt:1// _avail:1//avail1:4/可用/mfn:45/指向下一级页表的地址/rsvd:5/保留/avail2:2/可用/ept_entry_t结构中不同的域有不同的意义有些域的意义会因在不同级页表而改变。在不同级的页表而不同。例如emt在最低级页表项中表示内存类型而在最高级页表中emt和igmt共同组成保留项。2页池在EPT页故障处理中VMM为EPT页表申请空闲内存页。假设VMM直接从底层的物理内存页管理器申请空闲内存页当物理内存紧张时内存申请会唤醒内存回收机制。内存回收会扫描过多的页块信息而给EPT叶故障处理带来较大的开销为此采用另一种解决办法页池。页池是存储空闲页的结构保存的空闲页供EPT页表创建使用。在创建客户机时VMM分给页池一定数量的空闲页每次EPT页故障处理都从页池中申请空闲页。当页池中空闲页数量低于下限时就从底层的物理页管理器申请一些空闲页。页池结构如下structpage_poolintlockerstructlist_headfreelistu ignedinttotal_pages/页池中总页数/u ignedintfree_pages/页池中空闲页数/u ignedintept_pages/分给EPT页表的页数/页池结构page_pool中的主要成员有3个total_pagesfree_pages和ept_pages。total_pages记录页池中总页数free_pages表示页池中可用的空闲页数ept_pages是EPT页表使用的页块数。3.2EPT相关的基本函数基本函数有两大类一类与页池有关一类与EPT页表项有关。两大类基本函数如表2所示。前3个函数与页池有关后两个与EPT页表项有关。3.3实现流程基于EPT的内存虚拟化实现主要分3部分EPT初始化、EPT页故障处理和EPT销毁。1EPT初始化在创建客户机时VMM要为EPT设置需要的基本结构如图5所示由于须借助处理器的EPT功能模块所以先确定处理器支持EPT如果不支持则不能使用本方案之后为EPT创建一个页池管理1024个空闲页。从页池中申请一页建立EPT最高级页表PML4table并将PML4table的基址保存到EPTP中。表2与EPT有关的基本函数函数名功能set_ept_pool初始化页池设置页池中空闲页的数量alloc_ept_page从页池中申请空闲页供EPT页表创建使用free_ept_page将不用的EPT页表释放到页池ept_set_entry设置EPT页表项建立客户物理地址与机器物理地址的映射关系ept_get_entry读取EPT页表项获得客户物理地址对应的机器物理地址图5EPT初始化开始CPU支持EPT创建页池为PML4table申请一页设置EPTP出错处理NY410420103118计算机工程与设计ComputerEngineeringandDesign2EPT页故障处理EPT最高级页表PML4table是在EPT初始化过程中建立的其它各级页表由EPT页故障处理负责创建。EPT地址转换失败时VMM进行EPT页故障处理根据出错原因作相应处理。检错流程如图6所示出错的原因有两种一种是EPT各级页表项都存在另一种是EPT页表项不存在。出错原因有两种EPT页表项不存在和访问权限错误。访问权限错误是客户机执行读/写操作时相应的EPT页表项读/写标志为零。通常是写只读页则将此页置为脏页并将页表项中设置正常读写内存页。页表项不存在处理如图7所示对于高三级页表项不存在从页池中申请空闲页来建立EPT页表对于PTE不存在则直接从底层机器物理内存管理器申请空闲页来设置PTE。3EPT销毁客户机注销时VMM会释放客户机所占用的各种资源重点介绍与EPT有关的内存释放。与EPT有关的内存有两类一类是EPT最低级页表项所指向的机器物理页是客户机所使用的真实内存一类是EPT各级页表所占用的机器物理页。第一类内存页依赖于第二类内存页。所以这两类内存页释放次序为第一类内存页第二类内存页。EPT销毁模块负责这两类机器物理页的释放。此模块通过依次扫描EPT页表找到可释放的每个第一类机器物理页mfn再调用底层物理页释放函数将mfn放入VMM空闲页块队列中。当释放掉所有的第一类机器物理页VMM重新便利EPT页表将所有EPT页表释放掉。4结束语本文讨论了基于EPT的内存虚拟化原理EPT能够简化VMM设计并有效地提高虚拟化效率但目前并不完善。处理器在TLB中缓存了客户机标识和线性地址到机器物理地址的转换客户机工作状态的变换仅刷新本客户机的TLB数据而不会刷新其它TLB数据所有客户机的TLB数据互不影响有效降低了页面数据更新量。但当TLB不命中时从线性地址到机器物理地址的转换须访问12次页表带来较大的开销。增加TLB缓存容量提高TLB命中率更能体现EPT优势。参考文献:1金海.计算系统虚拟化原理与应用M.北京:清华大学出版社2008:65-75.2石磊.Xen虚拟化技术M.武汉:华中科技大学出版社2009:227-264.3DavidChi allthe.DefinitiveguidetotheXenhypervisorM.Ma achusetts:PersionEducation2007.4RamiRosen.Xenvirtualization:AnintroductiontotheXenvir-tualmachineZ.2006.5辛晓慧.Xen内存虚拟化实现J.开放系统世界200611:101-107.6郭晓琼.虚拟机Xen及其内存管
基于EPT的内存虚拟化研究与实现
文档简介
基于EPT的内存虚拟化研究与实现
文档日志
暂无日志信息
文档留言
暂无留言信息
文档信息
文档上传人: 文档格式:PDF
文档页数:4
下载积分:
上传日期:2011-04-26 19:02:29
浏览次数:1
文档星级:
相关文档 -
copyright 2008-2011 道客巴巴网站
正在处理,请稍候...宽带山目前机房线路有所调整,会对您的访问带来一定延时,敬请谅解!2011.07.20
登陆论坛
交易商铺
二手市场
热门版块
品牌专区
热门版块 经典栏目
热门版块
热门版块
版主: 按主题
按用户名
公告: 全部
万能求助
KDS俱乐部
文学俱乐部
足球俱乐部
女F俱乐部
手机俱乐部 [
点击:29 回复:2
已被0人关注
主题:哪位发个WE2008EPT_汉化1.5版本rip好的iso格式给我啊
此话题归属 72
来自:上海 注册:2007-10-15
发帖:136+712 :
-------------------------------------------------------------------------------------------
老百姓的事就是国家大事!
发表于:2008-01-28 10:44:28
...楼主...
来自:上海 注册:2007-10-15
发帖:136+713 :
-------------------------------------------------------------------------------------------
老百姓的事就是国家大事!
发表于:2008-01-28 10:47:19
...第1楼... [
回复主题
哪位发个WE2008EPT_汉化1.5版本rip好的iso格式给我啊
手机看宽带山
宽带山微博推荐
宽带山社区应用
宽带山天气预报
kds热图
宽带山交易
人像摄影推荐
Copyright 1996-2011 PChome.net All rights reserved. 电脑之家 版权所有
常用功能
kds生活圈
kds运动圈
kds同人圈
kds车友会
kds交易区
kds游戏新区
游戏元老区
数码俱乐部
IT产品论坛
kds校园基地
kds版务区

参考资料

 

随机推荐