FPGA Memory Controller for Hot-Add Initialization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing methods for initializing and configuring hot-add memory modules in computer systems are disruptive and time-consuming, requiring execution in highly privileged states like System Management Mode (SMM), which leads to CPU cycle stealing and prolonged completion times, often taking hours or days.

Innovation Solution

The use of a Field Programmable Gate Array (FPGA) memory controller to perform initialization and configuration of hot-add memory modules, eliminating the need for processor interrupts and allowing privileged operations at unrestricted speed, thereby reducing system disruption and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If hot-add memory module initialization and configuration is performed using software or firmware in highly privileged state (SMM), then the memory module can be initialized and configured, but system disruption increases and completion time extends to hours or days

Engineering Contradiction:
Improvememory module initialization reliabilityVSAvoidhot-add initialization completion time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces a dedicated hardware initialization circuit as an intermediary component between the memory module and the CPU. This hardware circuit performs the initialization and configuration operations directly without requiring CPU intervention or SMM execution, thereby eliminating the time loss associated with CPU cycle stealing while maintaining reliable memory initialization

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the software/firmware-based initialization mechanism with a dedicated hardware initialization circuit. This substitution eliminates the need for CPU-based processing and SMM mode execution, transforming the initialization process from a time-consuming software operation to a fast hardware-based operation that completes without system disruption

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If hot-add memory module initialization and configuration is performed using software or firmware in highly privileged state (SMM), then the memory module can be initialized and configured, but system performance deteriorates due to CPU cycle stealing

Engineering Contradiction:
Improvememory module initialization reliabilityVSAvoidsystem processing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The dedicated hardware initialization circuit acts as an intermediary that handles memory initialization independently of the CPU. This allows the CPU to continue processing without being interrupted for SMM operations, thereby maintaining system productivity while ensuring reliable memory initialization through the specialized hardware circuit

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent substitutes the CPU-based software/firmware initialization system with a dedicated hardware initialization circuit. This replacement eliminates CPU cycle stealing and allows the system to maintain full processing speed during memory hot-add operations, as the initialization occurs in parallel through hardware rather than through CPU interruption

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10649918B2Dynamic reconfiguration and management of memory using field programmable gate arrays
Publication Date: 2020.05.12 INTEL CORP
  • US10649918B2 patent drawing
  • US10649918B2 patent drawing
  • US10649918B2 patent drawing

AI summary

Techniques are provided for managing memory hot-add to a computing platform. A system implementing the techniques according to an embodiment includes a Field Programmable Gate Array (FPGA) memory controller (FMC) including a Memory Reference Code (MRC) Register Transfer Level (RTL) module to perform training of a memory module in response to receiving a memory hot-add event notification associated with the memory module. The MRC training includes memory timing adjustment based on configuration policies. The system also includes a management controller circuit to communicate with a remote administration server over a secure out-of-band network channel. The communication includes the configuration policies to be applied by the FMC circuit to the memory module. The FMC circuit further includes an analytics RTL module to perform bandwidth analysis and traffic prioritization, an encryption RTL module to perform encryption, and an error correction code (ECC) RTL module in conjunction with the configuration policies.