Flexible MMIO Space Definition for Scalable I/O Virtualization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing I/O virtualization technologies, such as SR-IOV, face scalability limitations in supporting a large number of isolated domains and require complex device designs, leading to increased costs and complexity.
Innovation Solution
The Scalable I/O Virtualization (IOV) architecture introduces a flexible and scalable approach by using Assignable Device Interfaces (ADIs) that allow for fine-grained provisioning of device resources, enabling more efficient sharing of I/O devices across isolated domains without the need for complex resource remapping logic in endpoint devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional SR-IOV architecture is used to support I/O virtualization, then device isolation and direct access are achieved, but scalability is limited and device complexity increases
Solution Approach 1:
The patent segments the device interface into multiple Assignable Device Interfaces (ADIs), each representing a fine-grained unit of device functionality. This segmentation allows the device to be divided into smaller, independently assignable units, enabling scalable sharing across multiple isolated domains without requiring complex resource remapping logic in the endpoint device itself.
Solution Approach 2:
The patent creates a universal interface framework where a single device can present multiple ADIs that can be assigned to different isolated domains. This multi-functionality allows the same physical device to serve multiple purposes and multiple domains simultaneously, improving scalability without increasing device complexity.
2Productivity
If fine-grained provisioning of device resources is implemented, then resource sharing efficiency improves, but device design complexity increases
Solution Approach 1:
Device resources are segmented into fine-grained ADIs that can be independently provisioned and assigned to different isolated domains. This segmentation enables efficient resource sharing by allowing each domain to receive only the specific resources it needs, improving productivity without requiring complex remapping logic within the endpoint device.
Solution Approach 2:
The patent introduces an intermediary mechanism where the device presents a standardized set of ADIs that can be assigned to multiple domains. This intermediary layer simplifies the device design by providing a uniform interface for resource sharing, while the complexity of fine-grained provisioning is handled through the assignment mechanism rather than within the device itself.
3Speed
If hardware-assisted I/O virtualization is implemented, then performance is improved, but hardware cost and complexity increase
Solution Approach 1:
The device is segmented into multiple ADIs that can be directly assigned to isolated domains, enabling hardware-assisted I/O virtualization with minimal overhead. This segmentation allows high-performance direct access while avoiding the need for complex resource remapping logic in the endpoint device, thereby improving speed without proportionally increasing hardware cost and complexity.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Examples may include a method of instantiating a virtual machine; instantiating a virtual device to transmit data to and receive data from assigned resources of a shared physical device by receiving input data requesting assigned resources for the virtual device, allocating assigned resources to the virtual device based at least in part on the input data, and mapping a page location in an address space of the shared physical device for a selected one of the assigned resources to a page location in a memory-mapped input/output (MMIO) space of the virtual device; and assigning the virtual device to the virtual machine, the virtual machine to transmit data to and receive data from the physical device via the MMIO space of the virtual device.