ScholarGate
助手

I/O虚拟化与DMA

直接内存访问允许设备在无需处理器逐字参与的情况下,将数据传输到内存或从内存传输数据;而I/O虚拟化则将其扩展到在虚拟机之间安全共享物理设备。这两者都是现代和云系统高效运行的核心。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

直接内存访问是一种机制,通过该机制,设备可以直接将数据传输到主内存或从主内存传输数据,而无需处理器复制每个数据;I/O虚拟化是一组技术,用于在多个虚拟机之间安全高效地呈现和共享物理I/O设备。

Scope

本主题涵盖直接内存访问(DMA)和I/O虚拟化:DMA控制器如何移动批量数据并发出完成信号,IOMMU在设备传输的地址转换和保护中的作用,以及在虚拟机之间共享设备的技术,例如设备仿真、半虚拟化和硬件辅助直通。它处理高效安全的设备数据移动。它不包括基本的设备控制和中断(I/O架构和总线)以及存储介质(辅助存储设备)。

Core questions

  • DMA如何在不占用处理器的情况下传输批量数据?
  • IOMMU如何为设备传输提供地址转换和保护?
  • 物理设备如何在虚拟机之间安全共享?
  • 设备仿真、半虚拟化和直通之间有哪些权衡?

Key concepts

  • 直接内存访问 (DMA)
  • DMA控制器和描述符
  • 完成中断
  • IOMMU和设备地址转换
  • 设备仿真
  • 半虚拟化I/O
  • 设备直通和SR-IOV
  • 隔离和保护

Key theories

直接内存访问
DMA控制器自主地在设备和内存之间传输数据块,仅在完成时中断处理器,这使得I/O与计算重叠,对于高吞吐量数据移动至关重要。

Mechanisms

对于DMA传输,处理器会用源、目标和长度对控制器进行编程,然后继续其他工作,同时设备移动数据并引发完成中断。IOMMU转换设备使用的地址并限制其访问,提供保护并实现安全直通。虚拟机通过仿真设备、半虚拟化驱动程序或直接硬件直通(包括单根I/O虚拟化,允许一个设备呈现多个虚拟功能)访问设备。

Clinical relevance

DMA是高效I/O的基础,在与存储和网络设备进行批量传输时解放了处理器。I/O虚拟化对于云计算和数据中心至关重要,在这些环境中,许多虚拟机共享物理硬件;IOMMU提供了隔离,使得共享和直接设备分配既安全又快速。

History

自早期计算机以来,直接内存访问一直被用于将数据移动从处理器中卸载。随着虚拟化在21世纪初成为服务器和云计算的核心,增加了硬件支持,例如IOMMU和单根I/O虚拟化,以使设备共享和直接分配变得高效和安全。

Debates

直通性能与灵活性
直接设备直通为虚拟机提供了接近原生的I/O性能,但降低了迁移和超额订阅的灵活性;而仿真或半虚拟化I/O更灵活但速度较慢;系统设计者会根据其工作负载平衡这些因素。

Key figures

  • John L. Hennessy
  • David A. Patterson
  • Abraham Silberschatz

Related topics

Seminal works

  • hennessy2019
  • silberschatz2018

Frequently asked questions

IOMMU有什么作用?
IOMMU将设备在DMA期间使用的地址转换为物理内存地址,并限制设备可以访问的内存。这提供了保护和隔离——防止设备或驱动程序损坏任意内存——并使得将设备安全地直接分配给虚拟机成为可能。
DMA为什么对性能很重要?
如果没有DMA,处理器将不得不将每个字复制到设备或从设备复制,这会消耗周期并在慢速传输时停滞。DMA将批量数据移动卸载到专用控制器,让处理器可以执行其他有用的工作,并且只处理一个完成中断。

Methods for this concept

Related concepts