Virtual USB Peripheral Controller Emulation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtualized computing environments, existing USB peripheral controllers require physical hardware and attachment to physical servers, limiting flexibility and testing capabilities, as they must support USB-related hardware and manage connections directly with kernel space and hardware.
Innovation Solution
A virtual USB peripheral controller is implemented in user space, emulating USB data transfer scenarios and intercepting requests to respond without involving kernel space or physical hardware, using a firmware framework module and user-defined logic module to manage and generate customized responses to USB requests.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a physical USB peripheral controller is used in a virtualized computing environment, then USB data transfer functionality is provided, but hardware dependency and system complexity increase
Solution Approach 1:
The patent creates a virtual USB peripheral controller that copies the functionality of a physical USB peripheral controller in software form. This virtual controller runs within the virtualized computing environment and emulates USB device behavior, allowing virtual machines to interact with USB devices through software simulation rather than requiring direct physical hardware attachment for each VM.
Solution Approach 2:
The virtual USB peripheral controller acts as an intermediary layer between the physical USB hardware and the virtual machines. It receives USB requests from VMs, translates them into appropriate physical USB operations, and manages the communication between the virtualized environment and physical hardware, thereby reducing the complexity of direct hardware management.
2Adaptability or versatility
If physical USB peripheral controller is attached to physical server, then USB device support is enabled, but flexibility and testing capabilities are limited
Solution Approach 1:
The virtual USB peripheral controller implements dynamic configuration capabilities where USB device parameters, device descriptors, and operational characteristics can be modified at runtime without requiring physical hardware changes. This allows the system to adapt to different testing scenarios and device types by dynamically adjusting the virtual controller's behavior and parameters.
Solution Approach 2:
The virtual USB peripheral controller is designed to emulate multiple types of USB devices and support various USB protocols and transfer modes within a single software implementation. This multi-functional capability allows one virtual controller to replace multiple physical controllers, enabling versatile testing of different USB device scenarios without requiring actual hardware diversity.
3Ease of operation
If USB arbitrator manages connections between physical USB peripheral controller and virtual machines, then connection management is provided, but kernel space involvement increases complexity
Solution Approach 1:
The patent extracts the USB arbitration and connection management functionality from the kernel space into user space where the virtual USB peripheral controller operates. By moving these management functions to run alongside the virtual machines in user space, the system eliminates the need for complex kernel-space drivers and arbitration mechanisms, simplifying the overall system architecture while maintaining ease of connection management.
Data Source
AI summary
A method to intercept an universal serial bus (USB) related request and to respond the intercepted request in a virtualized environment includes connecting a virtual USB peripheral controller in a virtualization software in the virtualized environment to a virtual machine in the virtualized environment. An USB data access request generated by the virtual machine may be intercept by the virtual USB peripheral controller so that the USB data access request does not reach a kernel space of the virtualization software and physical hardware resources supporting the virtualized environment. The method further includes generating a response according to the USB data access request and a process called by a firmware framework module of the virtual USB peripheral controller and transmitting generated response towards the virtual machine.


