Hypervisor-Free GPU Sharing Through Isolated OS State Registers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing virtualization methods using hypervisors introduce additional processing overheads and bottlenecks when managing access to graphics processing units (GPUs) in computer systems, particularly in scenarios involving multiple virtual machines, and require costly licensing and certification for safety-critical applications.
Innovation Solution
A computer system architecture that allows multiple operating systems to share a GPU without a hypervisor by using memory management units to mediate access to GPU state registers, ensuring each operating system can only access its own registers, and employing a host GPU driver to initialize and manage the GPU, with watchdog processes to handle crashes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a hypervisor is used to manage access to GPU by multiple virtual machines, then security and isolation are improved, but processing overhead and system performance deteriorate
Solution Approach 1:
The patent extracts and removes the hypervisor layer from the system architecture. Instead of using a hypervisor to mediate between operating systems and the GPU, the system allows multiple operating systems to directly access the GPU through hardware-supported virtualization mechanisms, eliminating the performance overhead while maintaining security through other means
Solution Approach 2:
The patent introduces a new intermediary mechanism - a GPU driver in each operating system that directly communicates with the GPU firmware, replacing the traditional hypervisor intermediary. This direct communication path eliminates the performance penalty of hypervisor mediation while maintaining the necessary control and isolation
2Adaptability or versatility
If a hypervisor is used to mediate access to GPU, then resource sharing is improved, but processing overhead and bottlenecks worsen
Solution Approach 1:
The patent enables each operating system to independently manage its own GPU access through its own driver, which directly communicates with the GPU firmware. The GPU firmware itself handles resource allocation and scheduling without external hypervisor intervention, allowing the system to serve itself and eliminating the complexity of hypervisor-mediated resource sharing
3Reliability
If hypervisor is used for virtualization, then security isolation is improved, but system cost and certification requirements worsen
Solution Approach 1:
The patent removes the hypervisor component entirely from the architecture, eliminating the need for costly hypervisor licensing and the complex safety certifications that would be required for hypervisor-based virtualization in safety-critical applications
Solution Approach 2:
The patent uses lightweight, OS-specific GPU drivers instead of expensive, complex hypervisors. These drivers are simpler, cheaper to implement and maintain, and can be individually managed by each operating system without requiring expensive certification processes
Data Source
Figure 1
Figure 2~3
Figure 4~5
AI summary
A computer system comprising: a plurality of operating systems, each operating system including a GPU driver; a graphics processing unit (GPU) including GPU firmware for controlling the execution of tasks at the graphics processing unit and, for each operating system: a firmware state register modifiable by the GPU firmware and indicating whether the GPU firmware is online; and an OS state register modifiable by the GPU driver of the respective operating system and indicating whether the GPU driver is online; and a memory management unit configured to mediate access to the registers of the GPU such that each operating system can access its respective registers but not those of other operating systems; wherein: one of the GPU drivers at the plurality of operating systems is a host GPU driver configured to initialise the GPU and bring the GPU firmware online; each GPU driver is configured to submit tasks for processing at the GPU only if its respective firmware state register indicates that the GPU firmware is online; and the GPU is configured to process tasks for an operating system if the respective OS state register of that operating system indicates that the GPU driver is online.