PCIe Endpoint Emulation for Virtual Device Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face complexity in managing and provisioning physical computing resources, especially in large-scale data centers, and lack efficient mechanisms to present physical peripheral devices to virtual machines as if they were locally attached, limiting user access and control in virtual desktop environments.
Innovation Solution
The implementation of enhanced PCIe endpoint devices that emulate PCIe compliant hardware devices, allowing for the presentation of physical devices to virtual computers through bus redirection and software emulation of bus controllers, enabling access to peripheral devices from virtual desktops or virtualized computing resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If physical devices are directly connected to virtual machines, then user access and control are improved, but system complexity and provisioning difficulty increase
Solution Approach 1:
The patent introduces a bus controller emulator as an intermediary component that sits between the physical bus controller and virtual machines. This emulator intercepts bus transactions, emulates the appropriate bus controller behavior, and forwards transactions to the physical device, thereby enabling virtual machines to access physical devices without direct connection while maintaining system simplicity
Solution Approach 2:
The patent creates a software emulation copy of the bus controller that replicates the functionality of the physical bus controller. This copy allows virtual machines to interact with physical devices through simulated bus protocols without requiring actual physical connections, simplifying the system architecture while maintaining full device accessibility
2Adaptability or versatility
If bus controller emulation is implemented on PCIe endpoints, then physical device access from virtual environments is enabled, but PCIe endpoint device complexity increases
Solution Approach 1:
The patent implements a universal bus controller emulator on the PCIe endpoint device that can emulate multiple different bus controller types (USB, SATA, PCIe, etc.). This multi-functional emulator allows a single PCIe endpoint device to provide access to various physical devices through different bus protocols, enhancing adaptability without requiring separate hardware for each device type
Solution Approach 2:
The patent utilizes configurable parameters within the PCIe endpoint device to dynamically change the emulation behavior. By modifying emulation parameters and configuration registers, the same hardware can adapt to emulate different bus controllers and protocols, providing versatility while maintaining hardware simplicity
3Adaptability or versatility
If software emulation of bus controllers is used, then flexibility in device presentation is improved, but processing overhead and performance decrease
Solution Approach 1:
The patent segments the bus controller functionality into two parts: the emulation logic (software) and the transaction processing (hardware). The PCIe endpoint device hardware handles the actual bus transactions efficiently, while the software emulation layer provides flexibility in device presentation. This segmentation allows software flexibility without sacrificing hardware processing speed
Data Source
AI summary
A system provides remote computing services using physical or virtualized computing resource instances on various host machines. An enhanced PCIe endpoint card connected to a given host machine may include a local processor (e.g., on an SOC device) that emulates PCIe compliant hardware (e.g., a USB controller) in software. A client receiving computing services from the system may redirect USB traffic from a locally-attached physical USB device (e.g., an input/output, storage, or security device) over the Internet to the enhanced PCIe endpoint card. The enhanced PCIe endpoint card may present an emulated USB controller to an application executing on the host (on the client's behalf) as a device that is locally attached at the given host machine, and the application may access the functionality of the physical USB device by exchanging commands or data with the emulated USB controller through a PCIe controller on the enhanced PCIe endpoint card.


