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

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

作者: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

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

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