Extending PCIe Domain Beyond 256-Bus Limit

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvenumber of PCIe devicesVSAvoidPCIe domain structure
Core Design Contradiction:
Quantity of substanceVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

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

Engineering Contradiction:
ImprovePCIe domain capacityVSAvoidaddress translation mechanism
Core Design Contradiction:
Quantity of substanceVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvedomain communication capabilityVSAvoidaddress translation time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP4089544B1Method and apparatus for extending pcie domain
Publication Date: 2024.01.31 HUAWEI TECH CO LTD
  • EP4089544B1 patent drawingFigure 1
  • EP4089544B1 patent drawingFigure 2
  • EP4089544B1 patent drawingFigure 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.