PCIe SR-IOV Virtual Function Shell for Configuration Space Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In PCI Express systems, the increasing number of endpoints and virtual functions leads to inefficient hardware resource utilization and complex configuration spaces due to the need for extensive storage and error handling, limiting the number of combined physical and virtual functions to 64k, and making it difficult to manage growing numbers of functions effectively.
Innovation Solution
The implementation of an extended virtual function shell on the PCIe configuration space that retrieves and performs computations using unique and shared data, reducing data storage needs by only storing unique data in virtual function registers and utilizing shared data from physical functions, thereby simplifying configuration spaces and enabling more instances of virtual functions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the number of virtual functions is increased to improve hardware resource utilization, then the effective hardware resource utilization improves, but the device complexity and configuration space management become more complex
Solution Approach 1:
The patent segments the configuration space by introducing hierarchical domains originating from root complex integrated endpoints and root complex event collectors. This segmentation allows virtual functions to be organized into manageable domains rather than a single flat configuration space, reducing complexity while enabling support for more than 64k combined physical and virtual functions.
Solution Approach 2:
The patent adds a hierarchical dimension to the configuration space organization. Instead of a single-level flat structure limited to 64k functions, it introduces multiple hierarchical domains that can accommodate unlimited numbers of physical and virtual functions by organizing them in a tree-like structure with root ports and integrated endpoints.
2Productivity
If the number of endpoints is increased to improve hardware resource utilization, then the effective hardware resource utilization improves, but the hardware logic and wiring requirements increase
Solution Approach 1:
The patent makes root complex integrated endpoints and root complex event collectors universal by enabling them to originate hierarchical domains that can contain multiple endpoints and virtual functions. This multi-functionality allows a single integrated endpoint or event collector to serve as a domain root for numerous functions, reducing the need for separate hardware logic and wiring for each individual endpoint.
3Adaptability or versatility
If the configuration space is expanded to accommodate more functions, then the number of supported functions increases, but the management and organization of the configuration space becomes more difficult
Solution Approach 1:
The configuration space is segmented into multiple hierarchical domains, each originating from a root complex integrated endpoint or root complex event collector. This segmentation divides the large configuration space into smaller, manageable domains that can be independently organized and controlled, making it easier to manage unlimited numbers of physical and virtual functions.
Solution Approach 2:
Root complex integrated endpoints and root complex event collectors serve as intermediary domain origins that mediate between the root complex and the numerous endpoints and virtual functions within their domains. These intermediaries simplify management by providing a hierarchical structure where configuration and control can be organized in manageable layers rather than a flat unlimited space.
Data Source
AI summary
A method, including receiving, by an extended virtual function shell positioned on a Peripheral Component Interconnect Express (PCIe) configuration space, a virtual function call comprising a request to perform a specific computation, and identifying a physical function associated with the called virtual function, the physical function one of multiple physical functions positioned on the PCIe configuration space. One or more first data values are then retrieved from a virtual function instance stored in the memory, one or more first data values, the virtual function instance associated with the called virtual function, and one or more second data values are retrieved from the identified physical function. The specific computation is then performed using the first data values and the second data values, thereby calculating a result.


