USB Virtualization Unit for Multi-Host Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-host computing systems, existing technologies fail to allow simultaneous access to USB devices by multiple host processors, leading to user experience issues as one host processor may need to wait for another to release the device, affecting system efficiency and user interaction.

Innovation Solution

A USB virtualization unit is implemented, comprising per-host register units, pre-fetch direct memory access (DMA), and endpoint specific switching decision logic, which enables multiple host processors to share USB devices by emulating a host processor and presenting itself as a dedicated host controller to each processor, allowing simultaneous and seamless access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single USB host controller is dedicated to one host processor, then the host processor has exclusive access to USB devices, but multiple host processors cannot simultaneously access the same USB device

Engineering Contradiction:
Improvesystem efficiencyVSAvoidmulti-host access capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The USB virtualization unit segments the single USB host controller resources into multiple virtual host controllers, each assignable to different host processors. This segmentation allows multiple hosts to simultaneously access USB devices by dividing the controller resources while maintaining dedicated access paths for each host processor.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The USB virtualization unit enables the USB host controller to serve multiple host processors simultaneously by implementing multi-functionality. The virtualization unit acts as an intermediary that allows a single physical USB controller to be shared across multiple hosts through virtual instances, making the system adaptable to multi-host configurations while maintaining dedicated access for each host.

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

2Productivity

If multiple host processors share a USB device, then resource utilization improves, but one host processor may need to wait for another to release the device

Engineering Contradiction:
Improveresource utilizationVSAvoidwaiting time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The USB virtualization unit serves as an intermediary between multiple host processors and the USB host controller. It manages access requests from multiple hosts, arbitrates concurrent access needs, and coordinates data transfers without requiring hosts to wait for each other to release devices. The virtualization unit maintains separate data paths and buffers for different hosts, enabling simultaneous access operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The USB virtualization unit performs preliminary actions by pre-allocating buffers and establishing data paths for multiple host processors before actual USB device access occurs. This preparation enables seamless switching between hosts and prevents waiting scenarios by having ready-access memory regions and control structures in place for each host processor.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If a USB virtualization unit is implemented to allow simultaneous access, then multi-host capability is achieved, but device complexity increases

Engineering Contradiction:
Improvemulti-host access capabilityVSAvoidcontroller structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The USB virtualization unit creates virtual copies of host controller functionality for each host processor. Instead of implementing complex multi-host logic in the physical controller, the virtualization unit generates multiple virtual controller instances that mimic dedicated controller behavior. Each virtual controller appears as a separate entity to its associated host processor, simplifying the interface while enabling multi-host operation through software-based virtualization layers.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8972624B2USB virtualization
Publication Date: 2015.03.03 SOCTRONICS INC
  • US8972624B2 patent drawing
  • US8972624B2 patent drawing
  • US8972624B2 patent drawing

AI summary

Described herein are methods and systems for virtualization of a USB device to enable sharing of the USB device among a plurality of host processors in a multi-processor computing system. A USB virtualization unit for sharing of the USB device include a per-host register unit, each corresponding to a host processor includes one or more of a host register interface, host data interface, configuration registers, and host control registers, configured to receive simultaneous requests from one or more host processors from amongst the plurality of host processors for the USB device. The USB virtualization unit also includes a pre-fetch direct memory access (DMA) configured to pre-fetch DMA descriptors associated with the requests to store in a buffer. The USB virtualization unit further includes an endpoint specific switching decision logic (ESL) configured to schedule data access based on the DMA descriptors from the host processor's local memory corresponding to each request.