Virtualizing Audio Hardware for Virtual Machines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualization environments, audio hardware such as sound cards cannot be easily partitioned, leading to rigid assignment to one virtual machine, which impairs user experience by limiting access to audio cues and playback from multiple virtual machines.

Innovation Solution

The system intercepts and processes independent audio streams from different virtual machines, employing mixing techniques to provide equal or weighted access to a sound card, with a control virtual machine redirecting audio function calls and managing resource allocation dynamically to prioritize audio processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a sound card is rigidly assigned to one virtual machine, then audio processing conflicts are avoided, but access to audio cues from multiple virtual machines is limited

Engineering Contradiction:
Improveaudio processing stabilityVSAvoidaudio access flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments audio processing into separate audio threads that can be independently managed. Each virtual machine has its own audio thread that can be dynamically allocated to different sound cards, enabling flexible multi-VM audio access while maintaining processing stability through structured thread management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic sound card assignment where audio threads can be reallocated between different sound cards based on system needs. The hypervisor dynamically assigns audio threads to available sound cards, allowing a single sound card to serve multiple virtual machines at different times while preventing conflicts through controlled scheduling.

Inventive Principle:
Principle #15Dynamics

2Reliability

If only one virtual machine can access a sound card at a time, then processing conflicts are avoided, but user experience across multiple virtual machines is impaired

Engineering Contradiction:
Improveaudio instruction processing reliabilityVSAvoidmulti-VM audio usability
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent introduces audio threads as intermediary entities between virtual machines and sound cards. These threads act as mediators that manage the interaction, allowing multiple virtual machines to request audio processing simultaneously while the thread scheduler ensures only one access at a time, maintaining both reliability and usability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically assigns audio threads to available sound cards based on real-time needs. When a sound card becomes available, the hypervisor can dynamically assign an waiting audio thread to it, enabling flexible access patterns that improve user experience while preventing conflicts through controlled dynamic scheduling.

Inventive Principle:
Principle #15Dynamics

3Device complexity

If audio hardware is not partitioned, then hardware simplicity is maintained, but efficient resource allocation across virtual machines is limited

Engineering Contradiction:
Improveaudio hardware structureVSAvoidaudio resource allocation efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments audio processing functionality into independent audio threads that can be dynamically allocated to different sound cards. This software-based segmentation allows efficient resource allocation without physically partitioning the hardware, maintaining hardware simplicity while improving allocation efficiency through virtualization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates virtual copies of audio processing functionality through audio threads that can be independently managed and allocated. Instead of partitioning physical hardware, the system creates software-based audio processing instances that can be dynamically assigned to different sound cards, improving resource allocation efficiency while keeping hardware unchanged.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8972984B2Methods and systems for virtualizing audio hardware for one or more virtual machines
Publication Date: 2015.03.03 CITRIX SYSTEMS INC
  • US8972984B2 patent drawing
  • US8972984B2 patent drawing
  • US8972984B2 patent drawing

AI summary

The present disclosure is directed towards methods and systems for virtualizing audio hardware for one or more virtual machines. A control virtual machine (VM) may translate a first stream of audio functions calls from a first VM hosted by a hypervisor. The translated first stream of audio function calls may be destined for a sound card of the computing device executing the hypervisor. The control VM may detect a second stream of audio functions calls from a second VM hosted by the hypervisor. The control VM may translate the second stream of audio functions calls from the second VM. The control VM may further merge the translated first stream of audio function calls and the translated second stream of the audio function calls in response to the detected second stream. The control VM may transmit the merged stream of audio function calls to the sound card.