Virtualizing USB Channels via Data Block Subdivision

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing virtualization systems face complexity and inefficiency when enabling virtual machines to access hardware devices, particularly due to the need for duplicated effort and potential confusion between host and virtual machine drivers, which complicates I/O operations and device management.

Innovation Solution

A method is introduced to virtualize a communications channel by dividing data blocks into sub-blocks, allowing guest drivers to generate sub-block buffers that are then aggregated into host data block buffers, enabling seamless communication between virtual and physical devices through a virtualization software that emulates a USB interface, thereby simplifying device access and management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If virtualization systems use duplicated driver efforts for host and virtual machine drivers, then device access capability is improved, but system complexity increases

Engineering Contradiction:
Improvedevice access capabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a virtualization layer as an intermediary between the host driver and guest driver. This layer virtualizes the communications channel, allowing the host driver to operate independently while the guest driver communicates through virtualized interfaces. The virtualization layer handles the complexity of interfacing between different driver models, eliminating the need for duplicated driver logic while maintaining device access capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the driver functionality into distinct layers: the host driver handles physical device communication, the virtualization layer manages data block subdivision and channel virtualization, and the guest driver handles virtual device communication. This segmentation allows each layer to operate independently with well-defined interfaces, reducing overall system complexity while preserving adaptability.

Inventive Principle:
Principle #1Segmentation

2Productivity

If data blocks are divided into multiple sub-blocks for conveyance, then communication efficiency is improved, but processing complexity increases

Engineering Contradiction:
Improvecommunication efficiencyVSAvoidprocessing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides data blocks into multiple sub-blocks for transmission through the virtualized communications channel. This segmentation enables parallel processing and more efficient utilization of the communication channel, as multiple sub-blocks can be transmitted concurrently. The virtualization layer manages this subdivision transparently, so the complexity is contained within the virtualization layer rather than propagating through the entire system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The virtualization layer acts as an intermediary that automatically handles the complex task of subdividing data blocks into sub-blocks and reassembling them at the destination. This intermediary function isolates the processing complexity within a single layer, allowing the host and guest drivers to operate with simpler logic while still benefiting from the efficiency gains of block subdivision.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of manufacture

If host and guest drivers operate independently, then driver modularity is improved, but coordination difficulty increases

Engineering Contradiction:
Improvedriver modularityVSAvoidcoordination difficulty
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The virtualization layer serves as a coordinating intermediary between independently operating host and guest drivers. It provides standardized interfaces and protocols that enable seamless communication between the two drivers without requiring them to be tightly coupled. This intermediary layer manages the coordination of data flow, error handling, and resource allocation, allowing drivers to remain modular while maintaining effective coordination.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7478180B1Virtualizing a communications channel in which blocks of data are divided into multiple sub-blocks for conveyance
Publication Date: 2009.01.13 VMWARE INC
  • US7478180B1 patent drawing
  • US7478180B1 patent drawing
  • US7478180B1 patent drawing

AI summary

An interface for a communications channel, in which blocks of data are divided into multiple sub-blocks for conveyance, such as a USB (Universal Serial Bus) interface, is virtualized. One or more host drivers may provide an interface with a physical device that supports the communications channel. Virtualization software emulates a virtual device that appears to support the communications channel, and one or more guest drivers may provide an interface with the virtual device, so that the guest drivers receive one or more guest data block buffers for use in conveying data over the communications channel and generate multiple corresponding guest data sub-block buffers for each guest data block buffer, and the virtualization software obtains access to the guest data sub-block buffers. The guest data sub-block buffers are scanned for an indication of a boundary between multiple guest data block buffers, such as an IOC (Interrupt on Complete) flag being set. When consecutive guest data block boundaries are encountered, a new host data block buffer is formed between the consecutive guest data block boundaries. The new host data block buffer is then made available to the host drivers.