Hypervisor-Independent Accelerator Communication via I/O Interfaces
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing virtualized data processing systems that use an accelerator as a common shared resource for multiple applications are inflexible due to static connections between virtual machines and the accelerator, requiring specific drivers and incurring high processing costs for command transfer between operating systems.
Innovation Solution
A method and system where operating systems can communicate directly with the accelerator via input/output interfaces independently of the hypervisor, using a common communication protocol, and with isolated memory regions to manage access, allowing dynamic management of connections and reducing the need for application-specific drivers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a static connection between virtual machines and the accelerator is used, then the system structure is simple, but the flexibility and dynamic management capability deteriorates
Solution Approach 1:
The patent introduces an input/output interface as an intermediary component between the virtual machine and the accelerator. This interface includes a command ring buffer and data ring buffer that mediate communication, allowing the virtual machine to access the accelerator dynamically without direct static connections. The intermediary structure enables flexible resource allocation while maintaining system organization.
Solution Approach 2:
The system is segmented into distinct functional components: the virtual machine, the input/output interface with separate command and data ring buffers, and the accelerator. This segmentation allows independent management and dynamic allocation of each component, improving flexibility without overwhelming system complexity.
2Reliability
If specific device drivers are used for each virtual machine interface, then communication with the accelerator is precise, but the device complexity and driver requirements increase
Solution Approach 1:
The input/output interface is designed as a universal component that can serve multiple virtual machines and support different types of accelerator operations. The standardized interface with command and data ring buffers provides a multi-functional solution that reduces the need for specific device drivers for each virtual machine-accelerator pairing, while maintaining reliable communication through structured protocols.
3Adaptability or versatility
If commands are transferred between two operating systems through a graphics driver, then the graphics acceleration can be shared, but the processing overhead and complexity increase significantly
Solution Approach 1:
The patent extracts the command transfer function from the operating system kernel space and places it in a dedicated input/output interface with ring buffers. This extraction eliminates the need for complex inter-operating system command transfer through graphics drivers, reducing processing overhead while maintaining the ability to share graphics acceleration resources between multiple virtual machines.
4Reliability
If the accelerator is split into fixed partitions assigned to virtual machines, then each virtual machine has dedicated access, but the dynamic management and resource allocation flexibility is reduced
Solution Approach 1:
The system implements dynamic resource allocation where the input/output interface can be allocated to different virtual machines as needed. The ring buffer structures allow for dynamic command submission and data transfer, enabling the accelerator resources to be flexibly assigned to different virtual machines based on demand, while maintaining reliable access through the structured interface protocol.
Data Source
AI summary
A data processing system includes one or more processors that each execute one or more operating systems. Each operating system includes one or more applications. An accelerator provides a shared resource for a plurality of the applications and has one or more input/output interfaces for the submission of tasks to the accelerator from an application. A hypervisor manages the allocation of the input/output interfaces to the one or more operating systems and a hypervisor interface enables communication between the hypervisor and the accelerator. The system is capable of being configured such that an operating system that has been allocated an input/output interface is capable of communicating with the accelerator via the input/output interface independently of the hypervisor. A memory management unit is capable of providing an isolated region of a memory for use by the operating system while the operating system retains its allocated input/output interface.


