Software Bus Bridge Configuration for Cross-Platform Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software designed for one type of processor or bus configuration may not adapt seamlessly to different configurations, such as the 'Naples' and 'Rome' processors, due to varying bus number ranges, leading to potential compatibility issues and the need for extensive modifications.

Innovation Solution

The software is structured to minimize adaptation requirements by arranging handles in the ascending order of bus numbers, allowing it to work on both 'Naples' and 'Rome' systems by determining the processor type and mapping physical bridges to software bridges with corresponding bus number ranges, ensuring compatibility across different configurations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software is designed for a specific processor type with fixed bus number ranges, then the software can operate correctly on that processor, but it cannot adapt to different processor types without extensive modifications

Engineering Contradiction:
Improvesoftware adaptabilityVSAvoidsoftware complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-organizing bridge handles in ascending order of bus numbers and pre-determining processor types during system initialization. This allows the software to automatically adapt to different processor configurations without requiring complex runtime adjustments or extensive modifications, resolving the contradiction between adaptability and software complexity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent utilizes parameter changes by detecting the processor type and dynamically adjusting the bus number range parameters accordingly. The software structure allows bus number ranges to be modified based on the detected processor type, enabling the same software to operate correctly across different processor architectures without requiring complex conditional logic throughout the codebase

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If the software structure is made more flexible to accommodate different bus configurations, then adaptability improves, but the complexity of managing different configurations increases

Engineering Contradiction:
Improveconfiguration flexibilityVSAvoidconfiguration management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the bridge handles into distinct segments organized by bus number ranges. Each processor type has its own segmented configuration structure, which simplifies management by allowing the software to work with predefined segments rather than managing a monolithic complex configuration system

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements universality by creating a software structure that can handle multiple processor types and bus configurations through a unified interface. The same software code can operate on different processor types by detecting the processor type and using the appropriately organized bridge handles, eliminating the need for separate software versions for each configuration

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

Data Source

PatentUS11200187B2Configuring programmatic interfaces of bus bridges in computer systems
Publication Date: 2021.12.14 DELL PROD LP
  • US11200187B2 patent drawing
  • US11200187B2 patent drawing
  • US11200187B2 patent drawing

AI summary

Software bus bridges (410.xy) are ordered in an order of associated bus identifiers (B), to allow programs accessing the corresponding physical bridges (310.xy) to find the correct software bus bridge either based on the bus identifiers, in which case the particular ordering of software bridges is unimportant, or based on the order of the software bridges. In some cases, this facilitates software porting across platforms with similar programmatic interfaces to the physical bridges but with different bus identifier ranges associated with physical bridges or with programmatic interfaces. A procedure is provided for determining the correct software bridge from a bus identifier. Other embodiments are also provided.