USB Virtualization Unit for Multi-Host Sharing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Adaptability or versatility
If a USB virtualization unit is implemented to allow simultaneous access, then multi-host capability is achieved, but device complexity increases
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.
Data Source
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.


