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

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

作者:Bob Rogers 2018-06-13 15:05:25

云计算

虚拟化 从硬件的角度来看,此时的System/360 Model 67并没有提供虚拟化设备的支持,是CP-67虚拟机管理程序自己提供了所需的虚拟化。然而CP-67并不能虚拟化主内存,它还是需要Model 67的协助来完成。

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

System/360 Model 67可以借助CP-67创建的表,来实施动态地址转换(DAT)。通过这种方式,虚拟机中一个特定内存块可以被映射到实际内存中的任意块。实际内存中非连续的内存块在虚拟机中可能就是连续的。更有趣的是,“虚拟内存”中的块有可能并不映射到实际内存中。相反,它会被CP-67映射到磁盘上的数据块,这个数据块只有在被引用时才读入真实的内存数据。这样的设计使得客户操作系统认为数据一直在内存中。这便所谓的分页技术,同时也是虚拟化技术的基础。今天的z/os系统正是利用这种机制隔离不同的应用和程序。

[[232822]]

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

动态地址转换是一个伟大的想法,但如果每次访问内存中指令或者操作数地址,都需要进行地址转换,那这个时间花费是不可接受的。大多数大型机的指令涉及多个地址,如果没有突破性的创新,动态地址转换反而会降低机器运行效率。这时出现了让动态地址转换依旧可用的创新,那就是转译后备缓冲区(TLB)。TLB是一种可以记录并快速访问前一次转译结果的结构。

在这里我们不会太深入讲解TLB的工程设计,但仍有几点需要留意。TLB是一个二维数组,其内容就是一系列的条目。如图1-01所示,它是长度为32个条目,宽度为4个条目的TLB。每个条目包含一个已被转译的虚拟地址和一个真实地址。使用索引和内容可寻址存储器,我们可以从TLB中获得正确的先前转译。如果先前转译并没有在TLB中,其它电子元件就会读取内存中的表并进行转换,然后将结果写入到TLB的相应列中,以备后续使用。

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

图1-01 一级TLB

***化TLB的容量

起初,单一的TLB可用于转译指令地址和操作数地址。但同时也有两个地方需要转译,那就是指令提取逻辑和操作数访问逻辑。一个能有效增加容量的方法是使用两套TLB,一个用于处理指令地址,另一个用于处理操作数地址。处理指令的TLB一般物理位置上临近指令存取逻辑,处理数据的则被放置在操作数地址逻辑附近。即使这样的设计需要额外逻辑来维护这两个TLB的交互,但这个额外花销是值得的,因为它带来了效率的提升。

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

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

现代的z系统处理器的TLB2有两种类型的条目(如图2-02所示),大小为1MB的段和大小为4K的页。当转译在***层TLB(TLB1)中找不到时,TLB2就会搜索4KB页条目所提供的转译。如果没有找到,TLB2就会在段条目中搜索包含待转译的地址。如果这个条目被找到,就不会再使用内存中表的转译,因为对应的页表可以直接被访问,而无需访问存储器中的段表。因此如使用TLB2,额外的转译可以通过访问内存中的表来实现,至少减少了这些访问的次数。

图2-02 二级TLB的结构

增加TLB有效容量的另一种方法是支持更大的页面,使得仅需要较少的条目就能覆盖给定的虚拟地址。在z系统的处理器中,这个特性得到了支持。首先在Z10的处理器上,TLB1会继续支持4KB的条目,但TLB2可以容纳1MB的页条目。这些1MB的页条目可以无需访问内存中的表来创建TLB1所需的4KB条目。在z196处理器中,TLB1已经可以支持1MB的页条目。在这个处理器中,添加了特殊的数据TLB1用于1MB页条目的处理,同时指令TLB1也被增强用于支持4KB和1MB两个页条目。在zEC12还引入了2GB页条目的支持。在这种结构下,有一个小型的数据TLB1持有一些2GB的页条目,而一些非常大的页条目被用作DB2缓冲区域和JAVA堆的有效映射。

虚拟化的创新还在继续

本文的简介并没有谈到z/VM虚拟机支持客户机的虚拟内存。为了实现这种功能,z系统的处理器支持两层的转译。首先,客户机的虚拟地址被转译成客户机的实际地址。但是客户机的真实地址是主机端的虚拟地址,它需要转译成主机的真实地址。在这里我们不会就本话题做进一步探讨,仅仅有一点提醒大家注意,那便是两层转译涉及到许多表的访问,因为客户表的转译还涉及到额外的主机转译。还有许多更复杂的操作在z系统硬件上实现,这种实现使得对上层操作是透明的。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/302104.html<

(0)
管理的头像管理
上一篇2025-05-24 15:40
下一篇 2025-05-24 15:41

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注