Centralized Device Virtualization Layer for Multi-CPU Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing device virtualization techniques are inadequate for multi-CPU computer systems, as they create bottlenecks and inefficiencies when multiple operating systems attempt to access shared hardware resources, particularly due to the need for separate virtualization of each hardware device for each CPU and the inability to share resources effectively.

Innovation Solution

A centralized device virtualization layer (CDVL) that enumerates hardware and virtualized devices, generates permission lists and virtual address maps to manage access for multiple operating systems, allowing them to share a common pool of resources and arbitrate access requests to prevent conflicts and optimize resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software virtualization is implemented in a multi-CPU computer system, then operating systems can access hardware devices through virtualized instances, but bottlenecks are created when operating systems attempt to access underutilized hardware devices because resources are divided into guest physical resources that cannot be dynamically reallocated

Engineering Contradiction:
Improvehardware device sharing capabilityVSAvoidresource utilization efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the virtualization function into two distinct layers: a hardware virtualization layer that creates virtualized hardware devices with full resource access capability, and a software virtualization layer that manages guest physical resources. This segmentation allows operating systems to access hardware devices through the hardware virtualization layer, bypassing the bottleneck of software virtualization's fixed guest physical resource allocation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hardware virtualization device as an intermediary between operating systems and physical hardware devices. This intermediary layer provides virtualized hardware instances that can be dynamically allocated to different operating systems, eliminating the need for software-based guest physical resource management and its associated bottlenecks.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If hardware virtualization is implemented for each hardware device in a multi-CPU computer system, then each operating system can be assigned a virtualized device instance, but the number of virtualized devices must be created for each operating system on each CPU which significantly increases system resources and complexity

Engineering Contradiction:
Improveoperating system access capabilityVSAvoidvirtualization device quantity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal hardware virtualization device that can serve multiple operating systems across multiple CPUs simultaneously. Instead of creating separate virtualized devices for each operating system-CPU combination, the universal device provides dynamic resource allocation, allowing the same virtualized hardware instance to be shared by multiple operating systems as needed.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent merges the virtualization functions for multiple operating systems and multiple CPUs into a single hardware virtualization device. This consolidation reduces the total number of virtualized devices required while maintaining full access capability for all operating systems to the underlying physical hardware resources.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If separate virtualization is implemented for each CPU in a multi-CPU computer system, then each CPU can manage its own operating systems independently, but the inability to share hardware resources across CPUs creates inefficiency and increases system complexity

Engineering Contradiction:
Improveoperating system isolationVSAvoidvirtualization management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a centralized hardware virtualization device as an intermediary that manages resource allocation across multiple CPUs and operating systems. This intermediary maintains operating system isolation by controlling access to virtualized hardware resources while enabling efficient resource sharing across the multi-CPU system, eliminating the need for separate virtualization implementations on each CPU.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8943584B2Centralized device virtualization layer for heterogeneous processing units
Publication Date: 2015.01.27 NVIDIA CORP
  • US8943584B2 patent drawing
  • US8943584B2 patent drawing
  • US8943584B2 patent drawing

AI summary

A method for providing an operating system access to devices, including enumerating hardware devices and virtualized devices, where resources associated with a first hardware device are divided into guest physical resources creating a software virtualized device, and multiple instances of resources associated with a second hardware device are advertised thereby creating a hardware virtualized device. First and second permission lists are generated that specify which operating systems are permitted to access the software virtualized device and the hardware virtualized device, respectively. First and second sets of virtual address maps are generated, where each set maps an address space associated with either the software virtualized device or the hardware virtualized device into an address space associated with each operating system included in the corresponding permission list. The method further includes arbitrating access requests from each of the plurality of operating systems based on the permission lists and the virtual address maps.