PCIe ECAM Compatibility via Synthetic Segment Identifiers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing devices with SystemReady (SR) compliance and PCIe root complex implementations are often partially or entirely incompatible with the Enhanced Configuration Access Mechanism (ECAM), leading to issues such as incorrect device scanning, faulty Message Signaled Interrupts (MSI) interrupts, and 'mirrors' or 'shadows' that result in multiple detections of the same PCIe endpoint, causing operating system errors and crashes.

Innovation Solution

The implementation of non-standard PCIe configuration space using synthetic segment identifiers and modified Bus, Device, Function (BDF) identifiers, where each physical bus corresponds to a synthetic segment identifier, and the use of ACPI firmware to expose PCIe configuration space as ECAM-compatible, including generation of synthetic address data and configuration space data that corrects granule size issues and filters configuration space accesses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If standard PCIe configuration space implementation is used, then SystemReady compliance is achieved, but ECAM compatibility is lost

Engineering Contradiction:
ImproveSystemReady complianceVSAvoidECAM compatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a translation layer between the PCIe root complex and ECAM that mediates configuration space accesses. This intermediary translates ECAM-standard addresses into the proprietary PCIe configuration space addresses, allowing the system to maintain SystemReady compliance while appearing ECAM-compatible to external systems.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a virtual copy of the PCIe configuration space that conforms to ECAM standards. This synthetic configuration space mirrors the actual PCIe devices but uses ECAM-compliant addressing schemes, allowing ECAM to function correctly without modifying the underlying PCIe implementation.

Inventive Principle:
Principle #26Copying

2Reliability

If proprietary PCIe configuration space ranges are used, then device functionality is maintained, but correct device scanning is prevented

Engineering Contradiction:
Improvedevice functionalityVSAvoiddevice scanning
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent modifies the addressing parameters of the PCIe configuration space to match ECAM standards. By changing the address range, granule size, and encoding schemes to align with ECAM specifications, the system enables correct device scanning while maintaining functionality through the translation layer.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If incorrect Address Translation Unit granule size is used, then hardware implementation is simplified, but ECAM compatibility is broken

Engineering Contradiction:
Improvehardware implementationVSAvoidECAM compatibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent changes the ATU granule size parameter from the hardware-optimized value to the ECAM-standard value. This parameter change ensures ECAM compatibility while the translation layer compensates for any efficiency losses, maintaining overall system functionality.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If TLP filtering for configuration space accesses is not implemented, then processing overhead is reduced, but configuration space access correctness is compromised

Engineering Contradiction:
Improveprocessing overheadVSAvoidconfiguration space access correctness
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent implements preliminary filtering of Transaction Layer Packets at the PCIe root complex level. Configuration space accesses are identified and filtered before being forwarded to devices, ensuring that only valid ECAM-compliant configuration accesses reach the target devices, thereby maintaining access correctness.

Inventive Principle:
Principle #10Preliminary action

5Device complexity

If incorrect offsets are used in configuration space, then memory mapping is simplified, but bus number encoding correctness is lost

Engineering Contradiction:
Improvememory mappingVSAvoidbus number encoding
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The translation layer acts as an intermediary that corrects offset calculations. It receives ECAM-compliant addresses with proper bus number encoding, translates them to the proprietary configuration space offsets, and forwards them to the correct devices, thereby preserving bus number encoding correctness while maintaining simplified memory mapping.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11971839B2Exposing PCIE configuration spaces as ECAM compatible
Publication Date: 2024.04.30 VMWARE INC
  • US11971839B2 patent drawing
  • US11971839B2 patent drawing
  • US11971839B2 patent drawing

AI summary

Disclosed are various approaches for exposing peripheral component interconnect express (PCIe) configuration space implementations as Enhanced Configuration Access Mechanism (ECAM)-compatible. In some examples, a bridge device is identified on a segment corresponding to a root complex of a computing device. An endpoint device is connected to a bus downstream from the bridge device. A synthetic segment identifier is assigned to the bus once the endpoint device is identified as connected to the bus. Synthetic address data is generated for the endpoint device. The synthetic address data includes the synthetic segment identifier for the bus and sets a bus identifier of the bus to zero regardless of a hierarchical position of the bus in a standard peripheral component interconnect express (PCIe) bus hierarchy.