前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >英特尔的VT-d技术是什么?-虚拟化技术快速入门教程

英特尔的VT-d技术是什么?-虚拟化技术快速入门教程

作者头像
jack.yang
发布于 2025-04-05 11:23:41
发布于 2025-04-05 11:23:41
2400
举报

VT-d技术:

我们知道对于服务器而言,很重要的一个组成部分就I/O,CPU的计算能力提升虽然可以更快地处理数据,但是前提是数据能够顺畅的到达CPU,因此,无论是存储,还是网络,以及图形卡、内存等,I/O能力都是企业级架构的一个重要部分。为此,人们不但在传输带宽上投资(比如从百兆以太网到千兆以太网再到万兆以太网),还在各种系统和架构上进行了大量的投入(比如吞吐量更高的RAID系列、多层数据中心

I/O虚拟化的关键在于解决I/O设备与虚拟机数据交换的问题,而这部分主要相关的是DMA直接内存存取,以及IRQ中断请求,只要解决好这两个方面的隔离、保护以及性能问题,就是成功的I/O虚拟化。和处理器上的Intel VT-i和VT-x一样,Intel VT-d技术是一种基于North Bridge北桥芯片的硬件辅助虚拟化技术,通过在北桥中内置提供DMA虚拟化和IRQ虚拟化硬件,实现了新型的I/O虚拟化方式,Intel VT-d能够在虚拟环境中大大地提升 I/O 的可靠性、灵活性与性能。

    传统的IOMMUs(I/O memory management units,I/O内存管理单元)提供了一种集中的方式管理所有的DMA——除了传统的内部DMA,还包括如AGP GART、TPT、RDMA over TCP/IP等这些特别的DMA,它通过在内存地址范围来区别设备,因此容易实现,却不容易实现DMA隔离,因此VT-d通过更新设计的IOMMU架构, 实现了多个DMA保护区域的存在,最终实现了DMA虚拟化。这个技术也叫做DMA Remapping。

I/O设备会产生非常多的中断请求,I/O虚拟化必须正确地分离这些请求,并路由到不同的虚拟机上。传统设备的中断请求可以具有两种方式:一种将通过I/O中断控制器路由,一种是通过DMA写请求直接发送出去的MSI(message signaled interrupts,消息中断),由于需要在DMA请求内嵌入目标内存地址,因此这个架构须要完全访问所有的内存地址,并不能实现中断隔离VT-d实现的中断重映射(interrupt-remapping)架构通过重新定义MSI的格式来解决这个问题,新的MSI仍然是一个DMA写 请求的形式,不过并不嵌入目标内存地址,取而代之的是一个消息ID,通过维护一个表结构,硬件可以通过不同的消息ID辨认不同的虚拟机区域。VT-d实现 的中断重映射可以支持所有的I/O源,包括IOAPICs,以及所有的中断类型,如通常的MSI以及扩展的MSI-X。

 VT-d进行的改动还有很多,如硬件缓冲、地址翻译等,通过这些种种措施,VT-d实现了北桥芯片级别的I/O设备虚拟化。VT-d最终体现到虚拟化模型上的就是新增加了两种设备虚拟化方式:

     直接I/O设备分配, 虚拟机直接分配物理I/O设备给虚拟机,这个模型下,虚拟机内部的驱动程序直接和硬件设备直接通信,只需要经过少量,或者不经过VMM的管理。为了系统的健壮性,需要硬件的虚拟化支持,以隔离和保护硬件资源只给指定的虚拟机使用,硬件同时还需要具备多个I/O容器分区来同时为多个虚拟机服务,这个模型几乎完全消除了在VMM中运行驱动程序的需求。例如CPU,虽然CPU不算是通常意义的I/O设备——不过它确实就是通过这种方式分配给虚拟机,当然CPU的资源还处在VMM的管理之下。

运用VT-d技术,虚拟机得以使用直接I/O设备分配方式或者I/O设备共享方式来代替传统的设备模拟/额外设备接口方式,从而大大提升了虚拟化的I/O性能。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
虚拟化技术概述(一)1. 虚拟化概述2. 虚拟化分类3. 虚拟化的实现
区别与直接调度片上资源/使用物理平台,使用虚拟化技术对于资源的调度会更加灵活和高效,而且可以达到硬隔离的目的;
战神伽罗
2021/01/06
16.3K0
深入理解SR-IOV和IO虚拟化
Leo Hou,目前就职于IC行业某硬件数据加速独角兽企业,从事虚拟化方向,聚焦于基于QEMU/KVM的IO虚拟化和系统虚拟化,主要负责虚拟化相关方案和团队建设。
Linux阅码场
2022/02/11
11K1
深入理解SR-IOV和IO虚拟化
Intel 虚拟化技术(Intel® VT):CPU 虚拟化与内存虚拟化
目前主要的 CPU 虚拟化技术是 Intel 的 VT-x/VT-i 和 AMD 的 AMD-V 这两种技术。
Flowlet
2023/08/11
4.1K0
Intel 虚拟化技术(Intel® VT):CPU 虚拟化与内存虚拟化
CPU硬件辅助虚拟化技术
目前主要有Intel的VT-x和AMD的AMD-V这两种技术。其核心思想都是通过引入新的指令和运行模式,使VMM(Virtual-machine monitor)和Guest OS分别运行在不同模式(ROOT模式和非ROOT模式)下,且Guest OS运行在Ring 0下。通常情况下,Guest OS的核心指令可以直接下达到计算机系统硬件执行,而不需要经过VMM。当Guest OS执行到特殊指令的时候,系统会切换到VMM,让VMM来处理特殊指令。 1、Intel VT-x技术
孙杰
2019/10/29
3.7K0
CPU硬件辅助虚拟化技术
关于虚拟化,你得知道SR-IOV
SR-IOV是什么,它和virtio、Device assignment的IO虚拟化的技术有什么区别,本文章中将会解答。
虚拟化云计算
2018/04/08
5.4K0
关于虚拟化,你得知道SR-IOV
虚拟化技术发展编年史
我已经想不起来是从什么时候开始的,突然就对计算机历史产生了浓厚的兴趣。于是我想着,要不以后所有系列文章的开篇都先和大家聊聊历史吧。其实说来挺有意思,看过去到底是为了看未来,因为历史总是惊人的相似,几乎所有的问题都能够在历史长河中寻得答案。可惜的是,但凡历史,最是难写,笔者碍于能力有限,还望大家多指点一二。
SammyLiu
2019/09/02
6.7K0
虚拟化技术发展编年史
下一代IO虚拟化技术
在Intel最新至强Sapphire Rapids处理器中有个新的feature引起了我的注意,它叫SIOV。
虚拟化云计算
2023/03/28
1.7K0
下一代IO虚拟化技术
【重识云原生】计算第2.4节——主流虚拟化技术之KVM
KVM:Kernel-based Virtual Machine,是基于Linux内核的开源虚拟化解决方案,从2.6.20版本开始被合入kernel主分支维护。最初只支持X86平台的上支持VMX或者SVM的CPU,不久后被确认为标准Linux内核的虚拟化方案并逐步支持S390、IA64和PowerPC等体系架构;KVM本身只提供部分的虚拟化功能(虚拟CPU和内存),而由经过特殊改造后的Qemu(Qemu-kvm)来帮助下提供完整的平台虚拟化功能。
江中散人_Jun
2022/04/08
3.1K0
【重识云原生】计算第2.4节——主流虚拟化技术之KVM
xen虚拟化基础篇
Xen介绍: xen是一个开放的源代码虚拟机监视器,有剑桥大学研发。它打算在单个计算机上运行多达128个满足特征的操作系统,操作系统必须进行显示地修改("移植")以在Xen上运行(但是提供对用户应用
小小科
2018/05/02
1.7K0
xen虚拟化基础篇
虚拟化技术总览
虚拟化本质上是软/硬件层的抽象 说起虚拟化,相信大家应该都不陌生,像虚拟内存、Java 虚拟机、Android 模拟器这些都是虚拟化技术的体现,为什么这样说,这个就要回到虚拟化技术的本质上——虚拟化就
Linux云计算网络
2018/01/11
2.2K0
虚拟化技术总览
IOMMU(五)-interrupt remmaping
惠伟:IOMMU(四)-dma remapping​zhuanlan.zhihu.com
惠伟
2021/05/14
1.6K0
虚拟化与云计算硬核技术内幕 (10) —— 事事有人管,人人有事管
在数据平面,外设可以通过DMA方式直接从系统RAM读写数据,如将从外部接收到的数据写入到RAM,或从RAM直接读取需要输出到外部的数据。而在控制平面,外设可以通过中断,将数据输入和输出完成事件,以异步方式通知CPU。
用户8289326
2022/09/08
5040
虚拟化与云计算硬核技术内幕 (10) —— 事事有人管,人人有事管
虚拟化与云计算硬核技术内幕 (12) —— 独立自主,自力更生 (中)
在上期,大家了解了虚拟机中的纯虚拟化设备(Emulation)和半虚拟化(Para-virtualiazation)是如何工作的。
用户8289326
2022/09/08
9060
虚拟化与云计算硬核技术内幕 (12) —— 独立自主,自力更生 (中)
智能汽车虚拟化技术(下)
上篇内容主要介绍了虚拟化技术本身的基本概念,以及车载虚拟化技术的一些特点。而本篇的内容则主要围绕一些虚拟化的技术路线以及行业内的部分应用来展开,同时也带来我们的虚拟机管理器产品(Photon Hypervisor)的介绍。
刘盼
2023/12/13
8600
智能汽车虚拟化技术(下)
内核级虚拟化技术
这篇可能讲的有一点点的无聊,因为基本上是概念性的东西,我也是理解了很久才慢慢的搞懂的。 一、虚拟化与虚拟化技术   1.1、虚拟化的定义   虚拟化主要指的是特殊的技术,通过隐藏特定计算平台的实际物理
用户1195962
2018/01/18
2.1K0
内核级虚拟化技术
CPU 虚拟化
前面 虚拟化技术总览 中从虚拟平台 VMM 的角度,将虚拟化分为 Hypervisor 模型和宿主模型,如果根据虚拟的对象(资源类型)来划分,虚拟化又可以分为计算虚拟化、存储虚拟化和网络虚拟化,再细一些,又有中断虚拟化,内存虚拟化,字符/块设备虚拟化,网络功能虚拟化等。 我会将此作为一个系列来写,本文先看 CPU 虚拟化。在这之前,我们先来笼统看下虚拟化的本质是什么,它到底是如何做到将 Host 的硬件资源虚拟化给 Guest 用,我这里用两个词来定义,intercept 和 virtualize,中文翻译
Linux云计算网络
2018/01/11
2.2K0
CPU  虚拟化
x86中断和中断虚拟化
网上有很多写中断虚拟化的博客,讲qemu/kvm是怎么模拟中断的,贴了大段大段的代码,看起来很吃力,对于一个虚拟化新手来说太困难太困难,我这儿写点简单的,讲讲中断和中断虚拟化的原理和来龙去脉,争取让大家好理解一点,也同时加深自己的理解,中断和中断虚拟机实在太绕了,直接看代码那就是看天书,先掌握原理和设计再看代码会好一点,争取后面再写写细节和代码分析,一步一步来搞定它。
惠伟
2021/02/24
2.6K0
x86中断和中断虚拟化
虚拟化技术概念学习总结
过去一直在做客户端的开发工作,过程中多少了解和使用过虚拟化技术产品,但对虚拟化技术和实现原理没有一个系统性的认识。这两天抽空学习相关材料,对整体有个印象,这里做一下总结。
tyrionchen
2021/01/31
3.4K0
虚拟化技术的总结
虚拟化是一种广泛使用的技术,支撑了几乎所有现代云计算和企业基础设施。开发人员基于虚拟化功能可以在单台机器上运行多个操作系统,从而完成软件测试而不会存在破坏主计算环境的风险。虚拟化为芯片和基础设施带来了许多特性,包括良好的隔离性、不同资源的可及性、同一资源的工作负载平衡、隔离保护等。
刘盼
2023/01/05
1.6K0
虚拟化技术的总结
虚拟化技术(一)
  虚拟化技术是伴随着计算机的出现而产生和发展起来的,虚拟化意味着对计算机资源的抽象。虚拟化技术已经成为构建云计算环境的一项关键技术。
Francek Chen
2025/01/23
1760
虚拟化技术(一)
相关推荐
虚拟化技术概述(一)1. 虚拟化概述2. 虚拟化分类3. 虚拟化的实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档