Virtual PCIe Hot Plug for Remote Physical Function Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional PCIe hot plug mechanisms require physical intervention and are not suitable for remote management, especially in datacenter applications where devices are far from management sites, and they lack flexibility for dynamic allocation of Physical Functions.
Innovation Solution
A virtual hot plug controller manages a pool of Physical Functions via FPGA soft logics and software intervention, enabling remote configuration and dynamic allocation without a physical switch, mimicking PCIe switch behavior to support hot addition and removal of virtual devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If physical PCIe devices are hot-plugged during operation, then device replacement is enabled, but system instability and data corruption may occur
Solution Approach 1:
The patent creates a virtual copy of the physical PCIe device in the host system's memory space. This virtual device replica allows the physical device to be removed and replaced without affecting the running virtual machine, as the virtual machine continues to interact with the virtual copy rather than the physical hardware directly.
Solution Approach 2:
The virtual PCIe device acts as an intermediary layer between the virtual machine and the physical PCIe device. This intermediary enables hot-plugging by decoupling the virtual machine from direct physical device dependencies, allowing physical device changes without disrupting virtual machine operation.
2Adaptability or versatility
If physical PCIe devices are hot-plugged, then device updates are enabled, but application performance may deteriorate due to re-detection and re-initialization
Solution Approach 1:
The virtual PCIe device is pre-configured and initialized in the virtual machine's address space before any physical device changes occur. This preliminary setup ensures that the virtual machine has a ready-to-use device interface, eliminating the need for re-detection and re-initialization when physical devices are updated.
Solution Approach 2:
By maintaining a virtual copy of the PCIe device that persists across physical device changes, the system avoids the performance penalty of re-initialization. The virtual copy retains its configuration and state, allowing seamless device updates without application performance deterioration.
3Adaptability or versatility
If virtualization technology is used to enable hot-plugging, then device replacement is enabled, but system complexity increases
Solution Approach 1:
The virtual PCIe device serves multiple functions: it acts as a device replica for the virtual machine, a translation layer between virtual and physical devices, and a hot-plug enabler. This multi-functionality reduces the need for separate complex mechanisms, as the virtual device itself handles hot-plugging without requiring additional virtualization infrastructure.
4Reliability
If virtual address space mapping is used, then device isolation is improved, but address translation overhead increases
Solution Approach 1:
The virtual PCIe device is pre-mapped into the virtual machine's address space during virtual machine initialization. This preliminary mapping establishes fixed address translations that persist across physical device changes, eliminating the need for repeated address translation operations and reducing overhead while maintaining device isolation.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method for managing a pool of physical functions in a PCIe integrated endpoint includes receiving a configuration instruction indicating a topology for a PCIe connected integrated endpoint (IE), and implementing the topology on the IE. The method further includes receiving a hot plug instruction, and, based at least in part, on the hot plug instruction, adding or removing a virtual endpoint (vEP) to or from a virtual downstream port (vDSP) on the IE.