初步总结。所谓“x86虚拟化”并不意味着只要拥有一个处理器就完美了,毕竟计算机还有很多外围设备,尤其是I/O、网络和日益重要的图形核心,这些都需要“高性能虚拟化”。”。”重大项目。
I/O虚拟化:IntelVT-d、AMDVi想要进一步虚拟化I/O系统,让虚拟机可以使用直接内存访问(DMA)和中断重映射(InterruptRemapping)来访问各种I/对于直接硬件来说,硬件必须能够管理和隔离所有外设I/O设备实际使用的DMA虚拟内存地址和中断向量。这不能仅通过处理器虚拟化来实现。它要求系统芯片组借助BIOS、UEFI等固件具备相应的硬件功能。
Intel于2007年中推出的北桥Q35芯片组首次支持VT-d(IntelVirtualizationTechnologyForDirectedI/O)技术,具有改变DMA内存地址的硬件功能,可以隔离不同的虚拟机。使用的I/O设备的内存地址。未来,VT-d将逐渐成为从服务器到台式机到笔记本电脑的所有Intelx86平台的“标准武器”,它还将把北桥和内存控制器与处理器集成在一起,成为处理器的一部分。
AMD在I/O虚拟化方面进展较晚,2009年下半年的SR5690/SR5670系统芯片组推出了IOMMU(I/OMemoryManagementUnit),功能与VT-d类似,当时被称为VT-d。AMDVi。
高级可编程中断控制器虚拟化:AMDAVIC、IntelAPICv分配和协调每个I/O外围设备的访问处理器需求,并知道哪个处理器负责发出中断(Interrupt),是现代多处理器环境下,源自1993年Pentium的高级可编程中断控制器(APIC,AdvancedProgrammableInterruptController)是其技术的核心。然而,与内存虚拟化的情况类似,使VMM创建“ShadowAPIC”软件模拟不仅消耗处理器性能,而且会导致虚拟机频繁地进入和退出执行环境。
来自2013年的IvyBridge微架构。在Broadwell一代,它更加精致,更加彻底地基于硬件。网卡虚拟化:IntelVT-c作为以太网规范的重要制定者之一的英特尔,网络芯片对于他们来说一直是非常重要的业务,所以网卡紧跟虚拟化趋势是理所当然的一件事。其VT-c由2部分组成:
VMDq:网络芯片内置的数据包分类器,首先将不同的虚拟机数据包分开,以减少处理器的负载。
VMDc:使用PCI-SIG定义的SR-IOV(SingleRootI/OVirtualization)技术,多个虚拟机可以直接访问网卡(或其他I/O设备),无需费心VMM分配源。
GPU虚拟化:IntelGVT、AMDMxGPUIntel2014年在Haswell中的IrisPro集成图形核心提供了三种类型的GPU虚拟化:GVT-d分配给单个虚拟机,实现标准驱动程序以允许多个虚拟机进行GVT-g,使用机器分时(分片),GVT-s,使用专用驱动器进行虚拟化,以达到“一个人的幸福不如大家的幸福”。但市场接受度如何,这里不讨论。
AMD于2016年发布了基于SR-IOV的MxGPU,首款产品是FireProS7150x2。当然,有人会记得nVidia更早有vGPU,但这里我就不介绍了,因为“GPU虚拟化”是一个非常复杂且庞大的话题,值得专门写一篇文章。
控制L3缓存和主存的“服务质量”:IntelRDT、AMDQoS指令不过,最后我们还是来谈谈“痴迷”的x86虚拟化技术。
在2013、2013和2014两代Haswell和Broadwell微架构中,Intel延续了一种微妙的控制机制(Broadwell中称为ResouceDirectorTechnology)来控制不同虚拟机占用的L3缓存空间和内存带宽,并实现了“缓存L3级QoS(服务质量)”可防止系统资源被多个虚拟机消耗,或允许VMM将资源集中在最需要的虚拟机上。
结果,时隔多年,AMD也给Zen2添加了类似的QoS指令,有时还蛮同情x86虚拟机管理器厂商的,Intel和AMD都得开发SoKoko的版本人们。
追踪硬科技硬件考古历险之王上一篇:虚拟机linux怎么联网
下一篇:虚拟化架构类型