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

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

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

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

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