SPD Table Loading via GPIO Jumper Settings

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer systems face inefficiencies and increased costs due to the need for multiple serial presence detect (SPD) tables for various memory configurations, requiring complex and costly methods to determine which SPD table to load during boot-up.

Innovation Solution

Utilizing general-purpose input/output (GPIO) pins as memory configuration flags, where jumper settings across these pins indicate the memory configuration, allowing the firmware to determine and load the appropriate SPD table from a plurality of stored tables in non-volatile random access memory (NVRAM).

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If multiple SPD tables are stored for different memory configurations, then memory configuration accuracy is improved, but device complexity and manufacturing cost increase

Engineering Contradiction:
Improvememory configuration accuracyVSAvoidfirmware complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The single SPD table is segmented into multiple version-specific SPD tables (first version SPD table and second version SPD table) stored at different memory locations. The firmware segments the lookup process by first determining system version through GPIO pin states, then selecting the appropriate version-specific SPD table. This segmentation allows accurate memory configuration for different system versions while maintaining a structured, manageable firmware architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary version detection by checking GPIO pin states before loading the SPD table. The firmware preliminarily determines which version of the computer system is present, then uses this information to select the appropriate SPD table version. This preliminary action prevents the need for complex runtime detection and ensures the correct SPD table is loaded from the start.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If multiple SPD tables are stored for different memory configurations, then memory configuration accuracy is improved, but manufacturing cost increases

Engineering Contradiction:
Improvememory configuration accuracyVSAvoidmanufacturing cost
Core Design Contradiction:
Measurement precisionVSEase of manufacture

Solution Approach 1:

The firmware is designed with universal functionality to support multiple system versions through a single codebase. The same firmware image can serve both first version and second version computer systems by detecting GPIO pin states and automatically selecting the appropriate version-specific SPD table. This universality eliminates the need for separate firmware images for different versions, reducing manufacturing complexity and cost while maintaining accurate memory configuration support.

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

Solution Approach 2:

The system uses GPIO pin state parameters as indicators to differentiate between system versions. By changing the electrical state (high/low) of specific GPIO pins during manufacturing, the system can indicate which version it is without requiring hardware changes. This parameter-based version identification simplifies manufacturing processes and reduces costs compared to physical hardware differentiation.

Inventive Principle:
Principle #35Parameter changes

3Ease of manufacture

If GPIO pins are used as memory configuration flags, then ease of manufacture is improved, but device complexity increases

Engineering Contradiction:
Improvemanufacturing simplicityVSAvoidfirmware logic complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The GPIO pins are configured to automatically indicate system version information through their electrical states without requiring external intervention or complex configuration. The firmware simply reads the GPIO pin states and uses them to determine the appropriate SPD table version. This self-service approach simplifies manufacturing (as the GPIO configuration is straightforward) while the firmware logic efficiently handles the version detection and SPD table selection.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10628309B1Loading a serial presence detect table according to jumper settings
Publication Date: 2020.04.21 AMERICAN MEGATRENDS
  • US10628309B1 patent drawing
  • US10628309B1 patent drawing
  • US10628309B1 patent drawing

AI summary

Technologies are disclosed herein for configuring a system memory of a computer system by determining which, of a plurality, of serial presence detect (SPD) tables to utilize, based at least in part on settings of one or more GPIO pins. The computer system may be available with variations of the configuration of system memory. The SPD tables corresponding to each of the different configurations of the system memory may be stored on the computer system, such as on an NVRAM of the computer system. After identifying the appropriate SPD table, a processor may load the SPD table to a memory reference code of the computer system. In some cases, the state GPIO pins indicating the system memory configuration is set at the time of manufacture of the computer system.