返回首页  设为首页  加入收藏  今天是:
网站首页电脑主板电脑cpu电脑内存电脑硬盘电脑显卡电脑电源显示器电脑配件电脑维修
相关文章
 虚拟化技术 - 内存虚拟化 [一…
 集成显卡与独立显卡哪个好
 华硕 Dual RTX 4060 IGN 8分…
 《赛博朋克2077》显卡需求测…
 显卡哪个牌子好性价比高 201…
 RTX 40系列显卡溢价还会严重…
 解决了 AMD Ryzen 7000X3D 系…
 主板赏析:第3代数字供电技术
 聊聊ATX 12VO电源:ATX 30都…
 手机出现自动重启现象是什么…
 模拟芯片AI应用拉动长期需求…
 怎么改电脑磁盘名字(怎么改电…
 好听的电脑磁盘命名(如何给…
 作家黄永玉 - 专栏 - 新湖南
 动态磁盘和基本磁盘有什么区…
 你“做主”威刚移动硬盘全新…
 惠普官网现骁龙835 Windows …
 HP(惠普)专区::HP投影机厂…
 惠普宣布修改可终身免费少量…
 HP 惠普_企业_数字媒体及职业…
 惠普召回笔记本型号公布 可通…
 万事利(301066):杭州万事利…
 线上配电脑处处都是坑
 多少年轻人去深圳“批发”黄…
 PC市场
 电脑整机-电脑整机报价-行情…
 HKC发布两款全新电竞显示器 …
 点燃618购物庆典显示器销售热…
 供应高清超薄LED显示屏
 广州超薄LED透明显示透明屏
 液晶电脑显示器驱动板、高压…
 2023年笔记本处理器最新排行
 2015笔记本电脑cpu天梯排名是…
 笔记本电脑处理器排名 笔记本…
 笔记本电脑cpu排名(笔记本电…
 Intel 酷睿 i510500
 苹果代工厂和硕:预计台式机…
 怎么看惠普主板型号 惠普主板…
 笔记本电脑主板芯片BGA底部填…
 像台式电脑一样更换升级硬件…
 台式电脑显卡怎么装在电脑上…
 新型计算机内存大幅减少能耗
 华为Mate 50支持内存卡扩展吗…
 不止 24GB 内存消息称一加、…
 芝奇推出白色款幻锋戟内存条…
 一加Ace2 Pro曝光将首发24GB…
 2G显存128位宽 GTX 960显卡核…
 第一次买整机要怎么验收呀
 RTX 50 系显卡 2025 年到来英…
 求大神指点ps内存不足问题
专题栏目
网络
您现在的位置: 电脑评测网 >> 电脑内存 >> 正文
高级搜索
虚拟化技术 - 内存虚拟化 [一]
作者:佚名 文章来源:本站原创 点击数: 更新时间:2023/6/29 20:48:58 | 【字体:

  限制级恋足大型操作系统(比如Linux)的内存管理的内容是很丰富的,而内存的虚拟化技术在OS内存管理的基础上又叠加了一层复杂性,比如我们常说的虚拟内存(virtual memory),如果使用虚拟内存的OS是运行在虚拟机中的,那么需要对虚拟内存再进行虚拟化,也就是vitualizing virtualized memory。本文将仅从“内存地址转换”和“内存回收”两个方面探讨内存虚拟化技术。

  在Linux这种使用虚拟地址的OS中,虚拟地址经过page table转换可得到物理地址(参考这篇文章):

  可见,如果使用VMM,并且guest VM中的程序使用虚拟地址(如果guest VM中运行的是不支持虚拟地址的RTOS,则在虚拟机层面不需要地址转换),那么就需要两次地址转换。

  但是传统的IA32架构从硬件上只支持一次地址转换,即由CR3寄存器指向进程第一级页表的首地址,通过MMU查询进程的各级页表,获得物理地址。

  VMM层的软件会将gPT本身使用的物理页面设为write protected的,那么每当gPT有变动的时候(比如添加或删除了一个页表项),就会产生被VMM截获的page fault异常,之后VMM需要重新计算GVA-HPA的映射,更改sPT中对应的页表项。可见,这种纯软件的方法虽然能够解决问题,但是其存在两个缺点:

  在一些场景下,这种影子页表机制造成的开销可以占到整个VMM软件负载的75%。

  GVA-GPA的转换依然是通过查找gPT页表完成的,而GPA-HPA的转换则通过查找nPT页表来实现,每个guest VM有一个由VMM维护的nPT。其实,EPT/NPT就是一种扩展的MMU(以下称EPT/NPT MMU),它可以交叉地查找gPT和nPT两个页表:

  假设gPT和nPT都是4级页表,那么EPT/NPT MMU完成一次地址转换的过程是这样的(不考虑TLB):

  首先它会查找guest VM中CR3寄存器(gCR3)指向的PML4页表,由于gCR3中存储的地址是GPA,因此CPU需要查找nPT来获取gCR3的GPA对应的HPA。nPT的查找和前面文章讲的页表查找方法是一样的,这里我们称一次nPT的查找过程为一次nested walk。

  如果在nPT中没有找到,则产生EPT violation异常(可理解为VMM层的page fault)。如果找到了,也就是获得了PML4页表的物理地址后,就可以用GVA中的bit位子集作为PML4页表的索引,得到PDPE页表的GPA。接下来又是通过一次nested walk进行PDPE页表的GPA-HPA转换,然后重复上述过程,依次查找PD和PE页表,最终获得该GVA对应的HPA。

  不同于影子页表是一个进程需要一个sPT,EPT/NPT MMU解耦了GVA-GPA转换和GPA-HPA转换之间的依赖关系,一个VM只需要一个nPT,减少了内存开销。如果guest VM中发生了page fault,可直接由guest OS处理,不会产生vm-exit,减少了CPU的开销。可以说,EPT/NPT MMU这种硬件辅助的内存虚拟化技术解决了纯软件实现存在的两个问题。

  事实上,EPT/NPT MMU作为传统MMU的扩展,自然也是有TLB的,它在查找gPT和nPT之前,会先去查找自己的TLB(前面为了描述的方便省略了这一步)。但这里的TLB存储的并不是一个GVA-GPA的映射关系,也不是一个GPA-HPA的映射关系,而是最终的转换结果,也就是GVA-HPA的映射。

  不同的进程可能会有相同的虚拟地址,为了避免进程切换的时候flush所有的TLB,可通过给TLB entry加上一个标识进程的PCID/ASID的tag来区分(参考这篇文章)。同样地,不同的guest VM也会有相同的GVA,为了flush的时候有所区分,需要再加上一个标识虚拟机的tag,这个tag在ARM体系中被叫做VMID,在Intel体系中则被叫做VPID。

  在最坏的情况下(也就是TLB完全没有命中),gPT中的每一级转换都需要一次nested walk【1】,而每次nested walk需要4次内存访问,因此5次nested walk总共需要(4+1)*5-1=24次内存访问(就像一个5x5的二维矩阵一样):

  虽然这24次内存访问都是由硬件自动完成的,不需要软件的参与,但是内存访问的速度毕竟不能与CPU的运行速度同日而语,而且内存访问还涉及到对总线的争夺,次数自然是越少越好。

  要想减少内存访问次数,要么是增大EPT/NPT TLB的容量,增加TLB的命中率,要么是减少gPT和nPT的级数。gPT是为guest VM中的进程服务的,通常采用4KB粒度的页,那么在64位系统下使用4级页表是非常合适的(参考这篇文章)。

  而nPT是为guset VM服务的,对于划分给一个VM的内存,粒度不用太小。64位的x86_64支持2MB和1GB的large page,假设创建一个VM的时候申请的是2G物理内存,那么只需要给这个VM分配2个1G的large pages就可以了(这2个large pages不用相邻,但large page内部的物理内存是连续的),这样nPT只需要2级(nPML4和nPDPE)。

  如果现在物理内存中确实找不到2个连续的1G内存区域,那么就退而求其次,使用2MB的large page,这样nPT就是3级(nPML4, nPDPE和nPD)。

  注【1】:这里区分一个英文表达,stage和level,查找gPT的转换过程被称作stage 1,查找nPT的转换过程被称作stage 2,而gPT和nPT自身都是由multi-level的页表组成。

电脑内存录入:admin    责任编辑:admin 
  • 上一个电脑内存:

  • 下一个电脑内存: 没有了
  •  
     栏目文章
    普通电脑内存 虚拟化技术 - 内存虚拟化 [一] (06-29)
    普通电脑内存 新型计算机内存大幅减少能耗 (06-29)
    普通电脑内存 华为Mate 50支持内存卡扩展吗 华为E的NFC支持… (06-29)
    普通电脑内存 不止 24GB 内存消息称一加、realme 新机配备 … (06-29)
    普通电脑内存 芝奇推出白色款幻锋戟内存条DDR5-8200 2x24GB… (06-29)
    普通电脑内存 一加Ace2 Pro曝光将首发24GB超大内存未来将下… (06-29)
    普通电脑内存 红魔8S Pro首发24GB内存 比部分电脑配置强多了 (06-28)
    普通电脑内存 环球热门:CSGO开箱电脑最低配置要求是什么?… (06-28)
    普通电脑内存 为什么要买大内存笔记本 (06-28)
    普通电脑内存 体验华硕无畏Pro16 2023旗舰版:性能释放堪比… (06-28)
    普通电脑内存 电脑监控软件预防电脑内存占用过高 (06-28)
    普通电脑内存 容量翻倍!笔记本内存条推出48GB单条选项! (06-28)
    普通电脑内存 国产机配24G内存!苹果才6G这是方向错了么? (06-28)
    普通电脑内存 CXL是什么?它是如何工作的? (06-28)
    普通电脑内存 iOS的墓碑机制这么厉害为啥Windows和安卓等系… (06-28)
    普通电脑内存 首款24GB内存手机来了 小米14代号曝光 (06-28)
    普通电脑内存 CSGO开箱电脑最低配置要求是什么?内存需要多… (06-27)
    普通电脑内存 首发24GB超大内存和第二代骁龙8领先版 红魔8S… (06-27)
    普通电脑内存 疯抢价!16G高频内存跌破170元 (06-27)
    普通电脑内存 三星将大规模量产HBM内存芯片以满足AI市场需求 (06-27)