Programmable ECC Logic for Cross-Host Memory Module Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional Error Correction Code (ECC) memory modules are proprietary and require identical ECC implementations between memory modules and hosts, limiting their use across different hosts and hindering decentralized error correction processes.

Innovation Solution

A programmable memory module with a generalized ECC engine that can be configured using H-matrices or G-matrices to implement various ECC implementations, allowing for flexible error detection and correction without relying on specific proprietary configurations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a manufacturer configures a host with a specific ECC implementation, then error detection and correction can be performed, but the memory module can only be used with hosts that have the identical ECC implementation, limiting adaptability

Engineering Contradiction:
Improveerror detection and correctionVSAvoidcompatibility with different hosts
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The ECC engine is designed with dynamic reconfigurability, allowing it to be programmed with different H-matrices and G-matrices to adapt to various ECC implementations. This dynamic configuration capability enables the same hardware to support multiple proprietary ECC schemes from different manufacturers, resolving the contradiction between maintaining reliable error correction and achieving broad host compatibility.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the parameters of the ECC engine by allowing programmable configuration through H-matrices and G-matrices. By modifying these mathematical parameters, the engine can implement different ECC algorithms while maintaining the same physical hardware, thus enabling both reliable error correction and adaptability to different host systems.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If PIM-based memory modules use result bits for internal error detection and correction, then processing speed is improved, but the host designer may not want the memory vendor to know the ECC implementation, creating information asymmetry

Engineering Contradiction:
Improvedata processing speedVSAvoidECC implementation confidentiality
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The programmable ECC engine acts as an intermediary between the memory module and the host processor. It performs error detection and correction internally using result bits, maintaining high processing speed, while simultaneously providing a standardized interface to the host that does not reveal the specific ECC implementation details. This intermediary function preserves both productivity and information confidentiality.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The ECC functionality is segmented into internal processing (using result bits for fast error correction) and external interface (standardized communication with host). This segmentation allows the memory module to maintain fast processing internally while presenting a neutral interface to the host, protecting the confidentiality of the ECC implementation.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If encoded data is sent over a network, then data can be transmitted, but the receiving device cannot perform error checks without sending requests back to the original encoder, increasing communication overhead

Engineering Contradiction:
Improvedata transmissionVSAvoidcommunication overhead time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The receiving device is pre-configured with the same H-matrix and G-matrix parameters used by the encoder. This preliminary configuration enables the receiver to autonomously perform error detection and correction on incoming encoded data without needing to communicate back with the encoder, thereby eliminating communication overhead and reducing time loss.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If a programmable ECC engine is implemented, then compatibility with multiple hosts is improved, but the device complexity increases due to programmable logic elements

Engineering Contradiction:
Improvehost compatibilityVSAvoidprogrammable logic structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The ECC engine is designed as a universal multi-functional device that can implement various ECC schemes through programming. By using configurable logic elements that can be programmed with different H-matrices and G-matrices, a single device structure achieves multiple functions, reducing the need for separate dedicated ECC engines for each protocol and thereby managing complexity while maintaining high adaptability.

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

Data Source

PatentUS11734114B2Programmable error correction code encoding and decoding logic
Publication Date: 2023.08.22 ADVANCED MICRO DEVICES INC
  • US11734114B2 patent drawing
  • US11734114B2 patent drawing
  • US11734114B2 patent drawing

AI summary

A memory module includes logic elements that are configurable to a particular ECC implementation. As used herein, the term “ECC implementation” refers to ECC functionality for performing error detection and subsequent processing, for example using the results of the error detection to perform error correction and to encode data such that any errors can be later identified and corrected. The approach allows a memory module or computing device to be configured to a specific ECC implementation without requiring requests to be sent back and forth between a host.