SMBus Address Assignment for Hybrid Microcontrollers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Assigning unique System Management Bus (SMBus) addresses to hybrid microcontrollers (hECs) on add-in cards in hybrid computing systems is challenging due to incompatibility with existing Address Resolution Protocol (ARP) and complexity in OEM motherboard configurations, making it difficult for the System Basic Input/Output System (SBIOS) and graphics drivers to communicate with hECs, especially when they are powered off.

Innovation Solution

A computing system configuration where the SBIOS stores a list of available SMBus addresses and a graphics driver selects and programs these addresses for hECs through the GPU, allowing direct control of hECs even when they are initially powered off, using a method that is compatible with different hEC types and motherboard configurations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If ARP protocol is used to dynamically resolve SMBus addresses, then address assignment can be automated, but the protocol is incompatible with many hECs and too complex for OEM implementation

Engineering Contradiction:
Improveautomated address assignmentVSAvoidprotocol complexity
Core Design Contradiction:
Extent of automationVSDevice complexity

Solution Approach 1:

The patent extracts the address assignment functionality from the complex ARP protocol and implements a simplified custom protocol. The graphics driver directly requests and receives an available SMBus address from the SBIOS without using ARP's broadcast, response, and conflict resolution mechanisms. This extraction eliminates the complexity of ARP while maintaining automated address assignment.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the operational parameters of address assignment by modifying how devices respond during initialization. Instead of using ARP's default listening address and broadcast mechanism, the invention uses a custom protocol where the graphics driver directly communicates with SBIOS to obtain an address, and then programs the hEC with this address through a simplified sequence of operations.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If fixed address scheme is used for SMBus devices, then address assignment is simple, but it cannot accommodate dynamic system configurations with add-in cards being added, removed, or replaced

Engineering Contradiction:
Improveaddress assignment simplicityVSAvoidsystem configuration adaptability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic address assignment where the SBIOS maintains a list of available SMBus addresses that can be allocated as needed. When a graphics driver needs an address, it requests one from this dynamic list, allowing the system to adapt to changing configurations as add-in cards are added, removed, or replaced during system operation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent creates a universal address assignment mechanism that works across different device types and system configurations. The graphics driver-based assignment protocol can handle various hEC implementations and works with different motherboard configurations, making the system universally adaptable without requiring device-specific or manufacturer-specific address schemes.

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

3Use of energy by moving object

If hEC is powered off to save power, then power consumption is reduced, but the graphics driver cannot communicate with or determine the SMBus address of the hEC

Engineering Contradiction:
Improvepower consumptionVSAvoiddevice accessibility
Core Design Contradiction:
Use of energy by moving objectVSEase of operation

Solution Approach 1:

The patent performs preliminary address assignment during system initialization when the hEC is still powered on and accessible. The graphics driver requests and assigns the SMBus address before the hEC is powered off for energy savings. This preliminary action ensures the address is already determined and stored, allowing the system to communicate with the hEC when needed without requiring it to remain powered on continuously.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses the GPU and graphics driver as intermediaries to program the hEC with its SMBus address. This intermediary mechanism allows address assignment to occur through the graphics processing pathway, enabling the system to configure the hEC even when power management requirements would otherwise prevent direct communication during normal operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Speed

If SBIOS is pre-programmed with SMBus addresses for each PCIe slot, then address lookup is fast, but it cannot know which slot corresponds to the hEC on a particular add-in card

Engineering Contradiction:
Improveaddress lookup speedVSAvoidslot-to-device mapping information
Core Design Contradiction:
SpeedVSLoss of information

Solution Approach 1:

The patent implements a self-service address assignment mechanism where the graphics driver itself requests and receives the SMBus address from the SBIOS. The SBIOS maintains a list of available addresses and allocates them on-demand to graphics drivers, eliminating the need for pre-programmed slot-to-address mappings. This self-service approach allows the system to dynamically determine addresses based on actual device presence rather than relying on static pre-configured information.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7827333B1System and method for determining a bus address on an add-in card
Publication Date: 2010.11.02 NVIDIA CORP
  • US7827333B1 patent drawing
  • US7827333B1 patent drawing
  • US7827333B1 patent drawing

AI summary

One embodiment of the present invention sets forth a technique to determine a bus address for an add-in card on a System Management bus (SMbus) that includes a hybrid microcontroller (hEC) and discrete graphics processing unit (dGPU). A graphics driver requests the System Basic Input/Output System (SBIOS) for a list of available slave addresses. The graphics driver receives the list and selects an available slave address to be assigned to the hEC. The graphics driver assigns the selected address to the hEC through an Inter-Integrated Circuit bus backdoor. The graphics driver then passes the selected address back to the SBIOS and the selected address is removed from the list of available addresses. Advantageously, this approach to dynamically assigning bus addresses provides compatibility with different types of hECs as well as with different motherboard configurations and other SMbus devices.