Extending PCIe Domain Beyond 256-Bus Limit
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing PCIe domain system is limited by 256 buses, restricting the number of PCIe devices and preventing domain extension.
Innovation Solution
A method and apparatus that allocate a configuration space address to a PCIe device in an extended domain, establish a correspondence between the configuration space address and bus number/device number/function number BDF, and perform address translation to enable access to the PCIe device, allowing the PCIe domain to be extended and facilitating communication between the primary and extended domains.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If PCIe bus specifications are followed with 256 buses limit, then PCIe domain structure is simple and standardized, but the number of PCIe devices is restricted and domain extension is prevented
Solution Approach 1:
The PCIe domain is divided into a primary domain and an extended domain. The primary domain contains the root complex and manages the first 256 buses, while the extended domain contains additional PCIe devices that exceed the 256-bus limit. This segmentation allows the system to maintain the original PCIe specification compliance in the primary domain while extending device capacity in the extended domain through separate address space management.
Solution Approach 2:
The patent introduces a new dimension to the PCIe address space by allocating configuration space addresses from the root complex endpoint device's memory address space. This creates an additional address dimension that maps to the extended domain devices, allowing the system to address beyond the traditional 256-bus limitation without disrupting the existing PCIe address structure.
2Quantity of substance
If configuration space address is allocated from root complex endpoint device memory address, then PCIe domain can be extended beyond 256 buses, but address translation complexity increases
Solution Approach 1:
The root complex endpoint device acts as an intermediary between the primary domain and the extended domain. It receives access packets from the primary domain, performs address translation using a pre-saved address mapping table, and forwards the translated packets to the extended domain. This intermediary mechanism enables domain extension while centralizing the address translation complexity in a single device rather than distributing it throughout the entire PCIe domain.
Solution Approach 2:
The address mapping between the root complex endpoint device's memory address space and the extended domain's configuration space addresses is pre-saved in the root complex endpoint device. This preliminary establishment of the address mapping table allows for efficient runtime address translation without requiring complex real-time computation or dynamic address space reconfiguration, thereby reducing the operational complexity despite the extended address space.
3Adaptability or versatility
If address translation is performed by root complex endpoint device, then communication between primary and extended domains is enabled, but processing overhead increases
Solution Approach 1:
The address mapping table is pre-configured and saved in the root complex endpoint device before runtime operations. This preliminary action ensures that during actual packet forwarding, the device can perform quick table lookups rather than computing address translations on-the-fly, significantly reducing the processing overhead and time loss associated with enabling domain communication.
Data Source
Figure 1
Figure 2
Figure 3A
AI summary
Embodiments of the present invention relate to a method for extending a PCIe domain. A configuration space address can be allocated to a PCIe device in an extended domain from a memory address of a root complex endpoint device, a correspondence between the configuration space address and a bus number/device number/function number BDF can be established, and a bus number can be allocated from a second bus set of the extended domain to a PCIe device discovered in the extended domain, where the bus number is used for determining a BDF of the PCIe device discovered in the extended domain, so as to access, according to the correspondence between the configuration space address and the BDF and by using the BDF of the PCIe device discovered in the extended domain, a configuration space register of the PCIe device discovered in the extended domain, which implements extension of the PCIe domain, and solves a problem in the prior art that a PCIe domain cannot be extended, so that the number of PCIe devices in a system is not restricted by 256 buses.