VT-D technology:
We know that an important component of the server is I/O. Although the CPU computing capability can be improved to process data faster, the premise is that the data can smoothly reach the CPU, therefore, whether it is storage, network, graphics card, memory, and so on, I/O capabilities are an important part of enterprise-level architecture. To this end, people not only invest in transmission bandwidth (for example, from Mbit/s Ethernet to Mbit/s Ethernet ), A large amount of investment has also been made in various systems and architectures (such as raid series with higher throughput and multi-layer data centers)
The key to I/O virtualization is to solve the problem of data exchange between I/O devices and virtual machines, which is mainly related to direct memory access by DMA and request interruption by IRQ, as long as the isolation, protection, and performance problems are solved, I/O virtualization is successful. Like intel VT-I and VT-X on the processor, Intel VT-D technology is a hardware-aided virtualization technology based on the North Bridge Chip, by providing built-in DMA virtualization and IRQ virtualization hardware in the North Bridge, the new I/O virtualization mode is realized, intel VT-D can greatly improve the reliability, flexibility, and performance of I/O in virtual environments.
The traditional iommus (I/O memory management units, I/O Memory Management Unit) provides a centralized way to manage all the DMA resources-apart from the traditional internal DMA, it also includes such special DMA as AGP Gart, TPT, rdma over TCP/IP, etc. It distinguishes devices by memory address range, so it is easy to implement, but not easy to Implement DMA isolation, therefore, VT-D implements the existence of multiple DMA protection areas by updating the iommu architecture, and ultimately achieves DMA virtualization. This technology is also called DMA remapping.
I/O devices generate many interrupt requests. I/O virtualization must correctly separate these requests and route them to different virtual machines. The interrupt request of traditional devices can be routed through an I/O interrupt controller, or an MSI (Message signaled interrupts, message interruption). Because the target memory address needs to be embedded in the DMA request, this architecture requires full access to all memory addresses, the interrupt-remapping architecture implemented by VT-D cannot solve this problem by redefining the MSI format, the new MSI is still in the form of a DMA write request, but is not embedded in the target memory address. Instead, it is a message id. By maintaining a table structure, the hardware can identify different virtual machine regions with different message IDs. The interrupt re ing implemented by VT-D can support all I/O sources, including ioapics and all interrupt types, such as common MSI and extended MSI-X.
There are still many changes made by VT-D, such as hardware buffering and address translation. Through these measures, VT-D achieves I/O device virtualization at the chip level of beiqiao. VT-D is embodied in the virtualization model by adding two new device virtualization methods:
Direct I/O device allocation, and virtual machines directly allocate physical I/O devices to virtual machines. In this model, the driver in the virtual machine directly communicates with the hardware device, only a small amount of data is required, or not managed by vmm. To ensure system robustness, hardware virtualization is required to isolate and protect hardware resources for the specified virtual machine only, the hardware also requires multiple I/O container partitions to serve multiple virtual machines at the same time. This model almost completely eliminates the need to run the driver in the vmm. For example, although the CPU is not a general I/O device, it is indeed allocated to the virtual machine in this way, of course, the CPU resources are still under vmm management.
Using VT-D technology, virtual machines can use direct I/O device allocation or I/O device sharing instead of traditional device analog/additional device interface methods, this greatly improves the I/O performance of virtualization.