Virtual machine 大型机上的虚拟化体系结构(z/体系结构)

Virtual machine 大型机上的虚拟化体系结构(z/体系结构),virtual-machine,virtualization,mainframe,Virtual Machine,Virtualization,Mainframe,我感兴趣地研究了Intel和AMD在x86体系结构中添加的硬件虚拟化扩展(分别称为VMX和SVM)。虽然这仍然是x86CPU的一个相对较新的补充,但我的理解是,自70-80年代以来,大型机体系结构广泛使用了虚拟化,例如以令人尊敬的z/VM操作系统的形式。甚至使用了嵌套虚拟化 我的问题是,是否有z/VM操作系统用于实现此虚拟化的z/Architecture提供的硬件设施的公共文档?即,硬件实现的控制寄存器和数据结构允许虚拟机监控程序模拟来宾状态并捕获必要的指令?另一件我很好奇的事情是,z/体系结构

我感兴趣地研究了Intel和AMD在x86体系结构中添加的硬件虚拟化扩展(分别称为VMX和SVM)。虽然这仍然是x86CPU的一个相对较新的补充,但我的理解是,自70-80年代以来,大型机体系结构广泛使用了虚拟化,例如以令人尊敬的z/VM操作系统的形式。甚至使用了嵌套虚拟化


我的问题是,是否有z/VM操作系统用于实现此虚拟化的z/Architecture提供的硬件设施的公共文档?即,硬件实现的控制寄存器和数据结构允许虚拟机监控程序模拟来宾状态并捕获必要的指令?另一件我很好奇的事情是,z/体系结构是否支持二级地址转换(后来添加到VMX和SVM中)。

为了解决这个问题,System/370及其所有后代都支持虚拟化(他们满足)。从这个意义上说,与英特尔体系结构不同,它不需要任何特殊的硬件支持

System/370、XA、ESA等系统上的VM客户机的性能改进,一直到z/体系结构,传统上都是使用
DIAG
(诊断)指令以及微码(现在是毫码)辅助来实现的。在现代意义上,它更多的是半虚拟化。这些设施都有文档记录,例如,您可以启动

更新-在阅读了大量评论、一些注释和澄清之后

  • S/370及其后代从不需要专门的硬件虚拟化支持来正确运行来宾操作系统——不是因为虚拟化是初始设计和需求的一部分——不是,而是因为该体系结构被正确设计为支持安全的多用户环境。Popek和Goldberg的虚拟化需求实际上非常弱——本质上,只有特权指令才能影响系统配置。这一要求甚至是S/370的前身System/360的一部分,早在第一个虚拟化系统出现之前

  • VM来宾的性能提升沿着两条路线进行

    • 首先,半虚拟化方法——本质上是为来宾系统管理程序通信开发架构良好的API。它不仅用于性能,而且还用于各种其他服务,如VM间通信。API记录在上述手册中

    • 第二种是微码扩展(VM微码辅助),它在微码级(本质上是硬件级)执行一些性能敏感的虚拟机监控程序逻辑。这不是半虚拟化,而是硬件虚拟化支持。但在早期的370台机器中,这种支持并没有架构,这意味着它依赖于模型,并且可能会发生变化。在370/XA中,IBM引入了一种适当的体系结构方法来支持高性能虚拟化,即启动解释性执行(
      SIE
      )指令。本说明未记录在操作原理中,而是记录在单独的出版物中。(本文件在《操作原则》中被多次引用。该链接指的是本文件的第一个版本,您可以下载版本2。我不确定该出版物是否曾经更新过——可能这是最新版本。)此外,I/O子系统还提供了VM assist


  • 我没有提到SIE的
    SIE
    说明和在我的原始答案中记录它的手册,这是故事的关键部分。我很感谢问题的作者和大量的评论,这些评论促使我检查我的记忆,并发现我跳过了一个重要的技术背景。提供了z/VM核心功能的极好概述,涵盖了其他方面,包括内存管理、I/O、网络等。

    为了避免这种情况,System/370及其所有子代都支持虚拟化(它们满足要求)。从这个意义上说,与英特尔体系结构不同,它不需要任何特殊的硬件支持

    System/370、XA、ESA等系统上的VM客户机的性能改进,一直到z/体系结构,传统上都是使用
    DIAG
    (诊断)指令以及微码(现在是毫码)辅助来实现的。在现代意义上,它更多的是半虚拟化。这些设施都有文档记录,例如,您可以启动

    更新-在阅读了大量评论、一些注释和澄清之后

  • S/370及其后代从不需要专门的硬件虚拟化支持来正确运行来宾操作系统——不是因为虚拟化是初始设计和需求的一部分——不是,而是因为该体系结构被正确设计为支持安全的多用户环境。Popek和Goldberg的虚拟化需求实际上非常弱——本质上,只有特权指令才能影响系统配置。这一要求甚至是S/370的前身System/360的一部分,早在第一个虚拟化系统出现之前

  • VM来宾的性能提升沿着两条路线进行

    • 首先,半虚拟化方法——本质上是为来宾系统管理程序通信开发架构良好的API。它不仅用于性能,而且还用于各种其他服务,如VM间通信。API记录在上述手册中

    • 第二种是微码扩展(VM微码辅助),它在微码级(本质上是硬件级)执行一些性能敏感的虚拟机监控程序逻辑。这不是半虚拟化,而是硬件虚拟化支持。但在早期的370台机器中,这种支持并没有被架构,这意味着它依赖于模型,并受变化的影响