PCI Device Discovery and Partitioning via MMIO Tree Walk

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing PCI interconnect systems face inefficiencies in device configuration and boot-up times due to the complexity of scanning the entire configuration space and the use of specialized configuration packets, which slows down the initialization process and frustrates users.

Innovation Solution

The proposed solution involves an efficient device detection and partition assignment method using a common configuration MMIO address, where devices are automatically accessible and configured in a tree walk process, eliminating the need for dedicated configuration packets and cycles, and allowing devices to be configured in the order of their proximity to the CPU, with standard message packets and transactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the entire configuration space is scanned to discover devices, then device discovery is comprehensive, but the boot-up time increases significantly

Engineering Contradiction:
Improvedevice discovery completenessVSAvoidboot-up time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The configuration space is segmented into multiple regions or segments that can be scanned independently and in parallel. Instead of scanning the entire configuration space sequentially, the scanning process is divided into smaller units that can be processed concurrently, reducing the total time required while maintaining comprehensive device discovery.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by maintaining a cached representation of the configuration space structure beforehand. During device discovery, instead of scanning the entire configuration space from scratch, the system uses the pre-prepared structural information to quickly identify and access only the relevant portions where devices may be located.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If specialized configuration packets and cycles are used to identify and configure devices, then device configuration is accurate, but the system architecture becomes complex

Engineering Contradiction:
Improvedevice configuration accuracyVSAvoidinterconnect architecture complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system employs universal standard message packets that can serve multiple functions including device discovery, configuration, and status querying. Instead of having separate specialized packet types for each function, a single versatile packet format is used that can be configured to perform different operations, thereby reducing architectural complexity while maintaining functional accuracy.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system merges the device discovery and configuration processes into a single unified operation. By combining these functions and using the same standard message packets for both purposes, the system eliminates the need for separate specialized configuration packets and cycles, thereby simplifying the interconnect architecture while preserving configuration accuracy.

Inventive Principle:
Principle #5Merging (Combining)

3Speed

If the configuration space is densely populated with device information, then device identification is faster, but the memory usage increases

Engineering Contradiction:
Improvedevice identification speedVSAvoidconfiguration space memory usage
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system performs preliminary indexing and organization of configuration space data before device discovery. By pre-processing and structuring the configuration information in an optimized format, the system enables faster device identification during operation without requiring the entire configuration space to be densely populated with redundant information, thus balancing speed and memory usage.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7457900B2Method for discovering and partitioning PCI devices
Publication Date: 2008.11.25 TAHOE RES LTD
  • US7457900B2 patent drawing
  • US7457900B2 patent drawing
  • US7457900B2 patent drawing

AI summary

Embodiments provide an efficient system of device configuration and detection for a peripheral component interconnect (PCI) system. Each connected device provides a descriptor and is accessed at a predetermined address. The device is then configured by the operating system based on the device descriptor and assigned a device address for further operation. The system also supports the assignment of devices to different partitions in the computer system.