Bus Resource Adjustment in Multiple Root Bridge Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computer systems with multiple root bridges often face bus out-of-resource (OOR) conditions due to limited pre-allocated bus numbers, leading to non-deterministic behavior as some bridge devices cannot be assigned resources.

Innovation Solution

Implementing automatic bus resource adjustment firmware that reallocates bus numbers between root bridges, determining the required number of buses for each bridge through depth-first traversal and storing this data for reallocation, ensuring each root bridge receives the necessary resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If bus numbers are pre-allocated equally to each root bridge during system startup, then the allocation process is simple and deterministic, but bus out-of-resource conditions occur when the actual number of buses exceeds the pre-allocated amount

Engineering Contradiction:
Improveease of bus number allocationVSAvoidreliability of bridge device availability
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The firmware performs a preliminary enumeration of all bridges coupled to each root bridge during system startup, determining the actual number of buses required before finalizing the allocation. This preliminary action allows the system to allocate bus numbers based on actual needs rather than fixed pre-assignment, preventing OOR conditions while maintaining deterministic behavior.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If the total number of bus numbers is increased beyond 256, then more bridge devices can be supported, but the PCI bus architecture standard limitation and system complexity increase

Engineering Contradiction:
Improvenumber of available bus numbersVSAvoidcomplexity of bus number management
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The system implements dynamic bus number allocation where the firmware adjusts the number of bus numbers allocated to each root bridge based on the actual number of bridges detected during enumeration. This dynamic approach allows the system to efficiently utilize the existing 256 bus number limit without requiring an increase in the total number of available bus numbers, while also avoiding the complexity of managing a larger bus number space.

Inventive Principle:
Principle #15Dynamics

3Productivity

If bus numbers are allocated without verifying the actual number of bridges, then the allocation process is fast, but non-deterministic behavior occurs when OOR conditions arise

Engineering Contradiction:
Improvespeed of system initializationVSAvoiddeterministic behavior of the system
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The firmware implements a feedback mechanism where the actual number of bridges coupled to each root bridge is enumerated and used to adjust the bus number allocation. This feedback loop ensures that the allocation process is both accurate and deterministic, as the system adapts the allocation based on real system conditions rather than fixed assumptions, while maintaining efficient initialization through automated enumeration.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11372792B1Automatic bus resource adjustment in a multiple root bridge computing system
Publication Date: 2022.06.28 AMERICAN MEGATRENDS
  • US11372792B1 patent drawing
  • US11372792B1 patent drawing
  • US11372792B1 patent drawing

AI summary

A firmware enumerates the buses of root bridges in the computing system. If an OOR condition occurs during enumeration of the buses, the firmware determines the number of required buses for each root bridge causing an OOR condition. The number of required buses for bridge devices connected to each root bridge causing an OOR condition can be identified using the same set of bus numbers. Once the firmware has determined the number of buses required by each root bridge, including those not causing an OOR condition, the firmware reallocates the number of available buses between the root bridges such that each root bridge is allocated a number of the available buses greater than or equal to the number of required buses. The firmware stores data identifying the allocation and restarts the computing device. Upon rebooting, the computing system utilizes the new allocation of bus numbers to eliminate the OOR condition.