虚拟化技术分析:动态地址转换

Posted 云技术实践

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟化技术分析:动态地址转换相关的知识,希望对你有一定的参考价值。

本文转载自:https://www.ibm.com/developerworks/community/blogs/5144904d-5d75-45ed-9d2b-cf1754ee936a/entry/%E8%99%9A%E6%8B%9F%E5%8C%96%E6%8A%80%E6%9C%AF%E5%88%86%E6%9E%90_%E5%8A%A8%E6%80%81%E5%9C%B0%E5%9D%80%E8%BD%AC%E6%8D%A2?lang=en

翻译原  文http://www.ibmsystemsmag.com/mainframe/administrator/Virtualization/dynamic-address-translation/

 

尽管虚拟化在主机上是很成熟的技术,我们最近还是经常听闻有关该技术的讨论。早在1967年,CP-67虚拟机管理程序就已经支持虚拟机和虚拟化系统镜像。在这个虚拟机管理程序下,整个磁盘可以被虚拟为多个小型磁盘。例如像读卡器、打卡机和打印机等单元记录设备,甚至无需实际物理设备存在就能被虚拟出来。从硬件的角度来看,此时的System/360 Model 67并没有提供虚拟化设备的支持,是CP-67虚拟机管理程序自己提供了所需的虚拟化。然而CP-67并不能虚拟化主内存,它还是需要Model 67的协助来完成。

 


转译后备缓冲区(TLB)提供了实用性

 

 

使用大型的TLB是非常有用的,这样就能最小化内存中表的访问。然而不幸的是,大型电子电路的速度访问会非常缓慢,因为信号必须在更大的结构中传播更远的距离。此外,内容寻址存储器所需的电路数增长是非线性的。所以TLB一般来说都比较小。幸运的是我们已经有一些技术可以提升有效容量,因此无需使用很大的TLB

图1-01 一级TLB


最大化TLB的容量

 

另外可做的是增加TLB的层级,这些额外增加的层级可以是大容量和低速度的设备,因为它们仅会在小型高速TLB未命中时使用。这种添加层级的方法已被用于处理器高速缓存几十年了。每个次级层次都容量更大,同时需要更多的周期来访问。为此IBM工程师用非线性的方式实现了二级转译后备缓冲区(TLB2)。在内存中的DAT表并不再是线性表,而是更复杂的多层结构(如图2-01所示)。例如在双层表中,第一级表称为段表,它包含内存映射到二级表的入口;二级表称为页面表,它包含256个用于映射4K内存的条目

虚拟化技术分析:动态地址转换

图2-01 存储中的DAT表结构

 

虚拟化技术分析:动态地址转换

图2-02 二级TLB的结构

 


虚拟化的创新还在继续

 

IBM一直致力于这方面的创新,用于维持虚拟内存的开销在一个可接受的水平。这种创新会一直继续下去,因为新技术的产生也带来了高效内存虚拟化的需求,这同时也是所有处理器虚拟化所共同追求的目标


译者:谢文江

邮箱:xiewjATcn.ibm.com(替换AT为@)

 

内容声明:本文仅代表作者的个人观点,与IBM立场、策略和观点无关。文中专业名词因译原因,表述中难免存在差异。如有疑惑,请以英文为准。同时数据来源于实验室环境,仅供参考。如果您对我们的话题感兴趣,请通过电子邮箱联系我们。


KVM云社区微信群加入,联系北极熊:


QQ 1群:434720759(已满

QQ 2群:131961942,加入密码大写KVM

1000人VMWare技术交流群494084329,加入密码小写vm

2000人OpenStack开发纯技术群: 334605713 加入密码nova

Cloudstack纯技术交流群:515249455密码cs

2000人桌面云行业讨论: 484979056 加入密码大写VDI

2000超融合行业讨论群:65779632 加入密码大写HC

2000云技术招聘求职群: 279875515 加入密码hr



以上是关于虚拟化技术分析:动态地址转换的主要内容,如果未能解决你的问题,请参考以下文章

Java 虚拟机原理动态字节码技术 | Dalvik & ART 虚拟机 | Android 字节码打包过程

JVM技术专题 虚拟机字节码执行引擎方法调用「 分析篇」

Linux硬件访问技术

华为NAT网络地址转换

kvm总结复习

2017版:KVM 性能优化之内存优化